gpt4 book ai didi

python - 具有 NaN 值的 Scipy 中的 T 检验

转载 作者:太空狗 更新时间:2023-10-29 20:44:54 24 4
gpt4 key购买 nike

我在 scipy 中做 t 检验时遇到问题,这让我慢慢发疯。它应该很容易解决,但我所做的一切都不起作用,而且我无法通过广泛的搜索找到解决方案。我在 Anaconda 的最新发行版上使用 Spyder。

具体来说:我想比较我从 csv 文件导入的 pandas 数据框中的两列(“Trait_A”和“Trait_B”)之间的均值。其中一列中的某些值是“Nan”(“不是数字”)。独立样本 scipy t 检验函数的默认设置不包含“NaN”值。然而,setting the 'nan_policy' parameter to 'omit' should deal with this .然而,当我这样做时,测试统计量和 p 值返回为“NaN”。当我将涵盖的值范围限制为实际数字时,测试工作正常。我的数据和代码如下;谁能建议我做错了什么?谢谢!

数据:

     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

我的代码:

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'))

我的结果:

Ttest_indResult(statistic=nan, pvalue=nan)

最佳答案

这似乎是一个错误。您可以在将 nan 传递给 t 检验之前删除它们:

sp.stats.ttest_ind(data.dropna()['Trait_A'], data.dropna()['Trait_B'])
Ttest_indResult(statistic=0.88752464718609214, pvalue=0.38439692093551037)

关于python - 具有 NaN 值的 Scipy 中的 T 检验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com