Come usare la distribuzione t in python
La distribuzione t è una distribuzione di probabilità simile alla distribuzione normale , tranne per il fatto che ha “code” più pesanti rispetto alla distribuzione normale.
In altre parole, nella distribuzione si trovano più valori alle estremità che al centro rispetto alla distribuzione normale:
Questo tutorial spiega come utilizzare la distribuzione t in Python.
Come generare per distribuire
Puoi utilizzare la funzione t.rvs(df, size) per generare valori casuali da una distribuzione con gradi di libertà e dimensioni del campione specifici:
from scipy. stats import t #generate random values from t distribution with df=6 and sample size=10 t. rvs (df= 6 , size= 10 ) array([-3.95799716, -0.01099963, -0.55953846, -1.53420055, -1.41775611, -0.45384974, -0.2767931, -0.40177789, -0.3602592, 0.38262431])
Il risultato è una tabella di 10 valori che si susseguono secondo una distribuzione a 6 gradi di libertà.
Come calcolare i valori P utilizzando la distribuzione t
Possiamo usare la funzione t.cdf(x, df, loc=0, scale=1) per trovare il valore p associato a una statistica t-test.
Esempio 1: trovare un valore P unilaterale
Supponiamo di eseguire un test di ipotesi unilaterale e di ottenere una statistica del test di -1,5 e gradi di libertà = 10 .
Possiamo utilizzare la seguente sintassi per calcolare il valore p che corrisponde a questa statistica del test:
from scipy. stats import t #calculate p-value t. cdf (x=-1.5, df=10) 0.08225366322272008
Il valore p unilaterale che corrisponde alla statistica del test di -1,5 con 10 gradi di libertà è 0,0822 .
Esempio 2: trovare un valore P bidirezionale
Supponiamo di eseguire un test di ipotesi a due code e di ottenere una statistica del test di 2,14 e gradi di libertà = 20 .
Possiamo utilizzare la seguente sintassi per calcolare il valore p che corrisponde a questa statistica del test:
from scipy. stats import t #calculate p-value (1 - t. cdf (x=2.14, df=20)) * 2 0.04486555082549959
Il valore p bilaterale che corrisponde alla statistica del test di 2,14 con 20 gradi di libertà è 0,0448 .
Nota : puoi verificare queste risposte utilizzando il calcolatore della distribuzione t inversa.
Come tracciare la distribuzione
È possibile utilizzare la seguente sintassi per tracciare una distribuzione con gradi di libertà specifici:
from scipy. stats import t import matplotlib. pyplot as plt #generate t distribution with sample size 10000 x = t. rvs (df= 12 , size= 10000 ) #create plot of t distribution plt. hist (x, density= True , edgecolor=' black ', bins= 20 )
In alternativa, puoi creare una curva di densità utilizzando il pacchetto di visualizzazione seaborn :
import seaborn as sns #create density curve sns. kdeplot (x)
Risorse addizionali
I seguenti tutorial forniscono ulteriori informazioni sulla distribuzione:
Distribuzione normale vs distribuzione t: qual è la differenza?
Calcolatore della distribuzione t inversa