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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *