Jak przeprowadzić analizę dwuwymiarową w pythonie: z przykładami
Termin analiza dwuwymiarowa odnosi się do analizy dwóch zmiennych. Możesz to zapamiętać, ponieważ przedrostek „bi” oznacza „dwa”.
Celem analizy dwuwymiarowej jest zrozumienie związku między dwiema zmiennymi
Istnieją trzy popularne sposoby przeprowadzania analizy dwuwymiarowej:
1. Chmury punktów
2. Współczynniki korelacji
3. Prosta regresja liniowa
Poniższy przykład pokazuje, jak przeprowadzić każdy z tych typów analizy dwuwymiarowej w Pythonie, używając następującej ramki DataFrame pandy, która zawiera informacje o dwóch zmiennych: (1) godzinach spędzonych na nauce i (2) wynikach egzaminu uzyskanych przez 20 różnych uczniów:
import pandas as pd #createDataFrame df = pd. DataFrame ({' hours ': [1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 8], ' score ': [75, 66, 68, 74, 78, 72, 85, 82, 90, 82, 80, 88, 85, 90, 92, 94, 94, 88, 91, 96]}) #view first five rows of DataFrame df. head () hours score 0 1 75 1 1 66 2 1 68 3 2 74 4 2 78
1. Chmury punktów
Możemy użyć następującej składni, aby utworzyć wykres rozrzutu godzin przestudiowanych w porównaniu z wynikami egzaminów:
import matplotlib. pyplot as plt #create scatterplot of hours vs. score plt. scatter (df. hours , df. score ) plt. title (' Hours Studied vs. Exam Score ') plt. xlabel (' Hours Studied ') plt. ylabel (' Exam Score ')
Oś x pokazuje liczbę przepracowanych godzin, a oś y ocenę uzyskaną na egzaminie.
Wykres pokazuje, że istnieje pozytywna zależność między tymi dwiema zmiennymi: wraz ze wzrostem liczby godzin nauki zwiększają się również wyniki egzaminów.
2. Współczynniki korelacji
Współczynnik korelacji Pearsona to sposób na ilościowe określenie liniowej zależności między dwiema zmiennymi.
Możemy użyć funkcji corr() w pandach, aby utworzyć macierz korelacji:
#create correlation matrix df. corr () hours score hours 1.000000 0.891306 score 0.891306 1.000000
Współczynnik korelacji okazuje się wynosić 0,891 . Wskazuje to na silną dodatnią korelację pomiędzy przestudiowanymi godzinami a oceną z egzaminu.
3. Prosta regresja liniowa
Prosta regresja liniowa to metoda statystyczna, którą możemy zastosować do ilościowego określenia związku między dwiema zmiennymi.
Możemy użyć funkcji OLS() z pakietu statsmodels, aby szybko dopasować prosty model regresji liniowej dla przestudiowanych godzin i otrzymanych wyników egzaminów:
import statsmodels. api as sm #define response variable y = df[' score '] #define explanatory variable x = df[[' hours ']] #add constant to predictor variables x = sm. add_constant (x) #fit linear regression model model = sm. OLS (y,x). fit () #view model summary print ( model.summary ()) OLS Regression Results ==================================================== ============================ Dept. Variable: R-squared score: 0.794 Model: OLS Adj. R-squared: 0.783 Method: Least Squares F-statistic: 69.56 Date: Mon, 22 Nov 2021 Prob (F-statistic): 1.35e-07 Time: 16:15:52 Log-Likelihood: -55,886 No. Observations: 20 AIC: 115.8 Df Residuals: 18 BIC: 117.8 Model: 1 Covariance Type: non-robust ==================================================== ============================ coef std err t P>|t| [0.025 0.975] -------------------------------------------------- ---------------------------- const 69.0734 1.965 35.149 0.000 64.945 73.202 hours 3.8471 0.461 8.340 0.000 2.878 4.816 ==================================================== ============================ Omnibus: 0.171 Durbin-Watson: 1.404 Prob(Omnibus): 0.918 Jarque-Bera (JB): 0.177 Skew: 0.165 Prob(JB): 0.915 Kurtosis: 2.679 Cond. No. 9.37 ==================================================== ============================
Dopasowane równanie regresji okazuje się mieć postać:
Wynik egzaminu = 69,0734 + 3,8471*(godziny nauki)
To mówi nam, że każda dodatkowa godzina nauki wiąże się ze średnim wzrostem wyniku egzaminu o 3,8471 .
Możemy również użyć dopasowanego równania regresji, aby przewidzieć wynik, jaki otrzyma uczeń na podstawie całkowitej liczby przestudiowanych godzin.
Przykładowo student studiujący 3 godziny powinien uzyskać wynik 81,6147 :
- Wynik egzaminu = 69,0734 + 3,8471*(godziny nauki)
- Wynik egzaminu = 69,0734 + 3,8471*(3)
- Wynik egzaminu = 81,6147
Dodatkowe zasoby
Poniższe samouczki zawierają dodatkowe informacje na temat analizy dwuwymiarowej:
Wprowadzenie do analizy dwuwymiarowej
5 przykładów danych dwuwymiarowych w prawdziwym życiu
Wprowadzenie do prostej regresji liniowej
Wprowadzenie do współczynnika korelacji Pearsona