Ho un problema nel fare un test t in scipy che mi sta facendo impazzire lentamente. Dovrebbe essere semplice da risolvere, ma niente di ciò che faccio funziona e non c'è una soluzione che possa trovare attraverso una ricerca approfondita. Sto usando Spyder nell'ultima distribuzione di Anaconda.Test T in Scipy con valori NaN
In particolare: voglio confrontare i mezzi tra due colonne - "Trait_A" e "Trait_B" - in un dataframe panda che ho importato da un file csv. Alcuni dei valori in una delle colonne sono "Nan" ("Not a Number"). L'impostazione predefinita sulla funzione scipy t-test dei campioni indipendenti non supporta i valori 'NaN'. Tuttavia, setting the 'nan_policy' parameter to 'omit' should deal with this. Tuttavia, quando lo faccio, la statistica del test e il valore p tornano come "NaN". Quando limito l'intervallo di valori coperti da numeri reali, il test funziona correttamente. I miei dati e il codice sono sotto; qualcuno può suggerire cosa sto facendo di sbagliato? Grazie!
dati:
Trait_A Trait_B
0 1.714286 0.000000
1 4.275862 4.000000
2 0.500000 4.625000
3 1.000000 0.000000
4 1.000000 4.000000
5 1.142857 1.000000
6 2.000000 1.000000
7 9.416667 1.956522
8 2.052632 0.571429
9 2.100000 0.166667
10 0.666667 0.000000
11 2.333333 1.705882
12 2.768145 NaN
13 0.000000 NaN
14 6.333333 NaN
15 0.928571 NaN
Il mio codice:
import pandas as pd
import scipy.stats as sp
data= pd.read_csv("filepath/Data2.csv")
print (sp.stats.ttest_ind(data['Trait_A'], data['Trait_B'], nan_policy='omit'))
Il mio risultato:
Ttest_indResult(statistic=nan, pvalue=nan)
Grazie mille! Funziona esattamente come speravo; sembra che sia un bug di sicuro. Lo segnalerò agli sviluppatori Scipy. – Lodore66
Quale versione di Scipy stai usando? (nan_policy è nuovo nella versione 0.17.) se è 0.17 o superiore, si prega di fare un errore di file –
Sto usando la versione 0.17 - quindi sì, il bug sarà archiviato. – Lodore66