-2

我运行的每个 t 测试都输出 nan 的统计量和 p 值我检查了我的数据框,它们看起来很好。有谁知道发生了什么?提前致谢!

e_tr.groupby('Rest Periods')['Wages and Hours'].mean()

#t test
cat1 = e_tr[e_tr['Rest Periods']==0]
cat2 = e_tr[e_tr['Rest Periods']==1]
# cat1['Wages and Hours'].value_counts()
sp.stats.ttest_ind(cat1.dropna()['Rest Periods'], cat2.dropna()['Rest Periods'])
ttest_ind(cat1['Wages and Hours'], cat2['Wages and Hours'])

输出:Ttest_indResult(statistic=nan, pvalue=nan)

4

1 回答 1

2

这可能是因为您在“工资和工时”列中的测试和控制 仍然包含np.nan. 尝试先清理数据:

e_tr=e_tr[e_tr['Wages and Hours'].notnull()]

然后像你一样分配案例和控制:

cat1 = e_tr[e_tr['Rest Periods']==0]
cat2 = e_tr[e_tr['Rest Periods']==1]

所以现在如果你运行:

ttest_ind(cat1['Wages and Hours'], cat2['Wages and Hours'])

应该给你预期的统计数据。

于 2020-04-08T10:54:11.307 回答