Come eseguire l'analisi bivariata in python: con esempi
Il termine analisi bivariata si riferisce all’analisi di due variabili. Puoi ricordarlo perché il prefisso “bi” significa “due”.
L’obiettivo dell’analisi bivariata è comprendere la relazione tra due variabili
Esistono tre modi comuni per eseguire l’analisi bivariata:
1. Nuvole di punti
2. Coefficienti di correlazione
3. Regressione lineare semplice
L’esempio seguente mostra come eseguire ciascuno di questi tipi di analisi bivariata in Python utilizzando il seguente DataFrame panda che contiene informazioni su due variabili: (1) Ore trascorse a studiare e (2) Punteggio dell’esame ottenuto da 20 studenti diversi:
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. Nuvole di punti
Possiamo utilizzare la seguente sintassi per creare un grafico a dispersione delle ore studiate rispetto ai risultati degli esami:
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 ')
L’asse x mostra le ore studiate e l’asse y mostra il voto ottenuto all’esame.
Dal grafico emerge che esiste una relazione positiva tra le due variabili: all’aumentare del numero di ore di studio, anche i punteggi degli esami tendono ad aumentare.
2. Coefficienti di correlazione
Un coefficiente di correlazione di Pearson è un modo per quantificare la relazione lineare tra due variabili.
Possiamo usare la funzione corr() nei panda per creare una matrice di correlazione:
#create correlation matrix df. corr () hours score hours 1.000000 0.891306 score 0.891306 1.000000
Il coefficiente di correlazione risulta essere 0,891 . Ciò indica una forte correlazione positiva tra le ore studiate e il voto dell’esame.
3. Regressione lineare semplice
La regressione lineare semplice è un metodo statistico che possiamo utilizzare per quantificare la relazione tra due variabili.
Possiamo utilizzare la funzione OLS() del pacchetto statsmodels per adattare rapidamente un semplice modello di regressione lineare per le ore studiate e i risultati degli esami ricevuti:
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 ==================================================== ============================
L’equazione di regressione adattata risulta essere:
Punteggio esame = 69,0734 + 3,8471*(ore studiate)
Questo ci dice che ogni ora aggiuntiva studiata è associata a un aumento medio di 3,8471 nel punteggio dell’esame.
Possiamo anche utilizzare l’equazione di regressione adattata per prevedere il punteggio che uno studente riceverà in base al numero totale di ore studiate.
Ad esempio, uno studente che studia per 3 ore dovrebbe ottenere un punteggio di 81,6147 :
- Punteggio esame = 69,0734 + 3,8471*(ore studiate)
- Punteggio dell’esame = 69,0734 + 3,8471*(3)
- Risultato dell’esame = 81.6147
Risorse addizionali
Le seguenti esercitazioni forniscono informazioni aggiuntive sull’analisi bivariata:
Un’introduzione all’analisi bivariata
5 esempi di dati bivariati nella vita reale
Un’introduzione alla regressione lineare semplice
Un’introduzione al coefficiente di correlazione di Pearson