Yavaşça beni deli eden scipy'de t-testi yapmakta bir sorunum var. Çözülmesi basit olmalı, ama hiçbir şey işe yaramıyor ve kapsamlı arama ile bulabileceğim bir çözüm yok. En son Anaconda dağıtımında Spyder kullanıyorum.NaN değerleri ile Scipy'de T-Testi
Özellikle: Bir csv dosyasından aldığım bir pandalar veri çerçevesindeki iki sütun –– 'Trait_A' ve 'Trait_B' –– arasındaki ortalamaları karşılaştırmak istiyorum. Sütunlardan birindeki değerlerin bazıları 'Nan' ('Not A Number'). Bağımsız örnekler scipy t-testi işlevindeki varsayılan ayar, 'NaN' değerlerini barındırmaz. Bununla birlikte, setting the 'nan_policy' parameter to 'omit' should deal with this. Yine de, yaptığım zaman, test istatistiği ve p değeri 'NaN' olarak geri geliyor. Gerçek sayılarla kapsanan değer aralığını kısıtladığımda, test iyi çalışıyor. Verilerim ve kodum aşağıda; yanlış yaptığımı kim önerebilir? Teşekkürler!
veri:
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
Kodum:
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'))
Benim sonucu:
Ttest_indResult(statistic=nan, pvalue=nan)
Çok teşekkürler! Bu tam olarak umduğum gibi çalışır; kesin bir böcek gibi görünüyor. Scipy geliştiricilerine rapor edeceğim. – Lodore66
Hangi scipy sürümünü kullanıyorsunuz? (Nan_policy, 0.17 sürümünde yenidir.) Eğer 0.17 veya üzerindeyse, lütfen –
bir hata dosyası hazırladım 0.17'yi kullanıyorum –– evet, hata dosyalanacak. – Lodore66