我试图做一个两样本t检验,以检查两个数据集之间的平均值是否存在显著差异
我有两个数据集,每个数据集有5个试验,每个试验有3个特征。每个试验都有不同的独特标签,但3个特征(X1、X2、X3在所有试验中都是相同的)。在每次单独试验中,我们测量3个特征,测量值如下所示。 我试图计算两个数据集中每个特征的平均差异
当我从SQL中获取数据时,数据就是这样处理的
数据集1:
T1 X1 0.93
T1 X2 0.3
T1 X3 -2.9
T2 X1 1.3
T2 X2 0.8
T2 X3 1.9
T3 X1 2.3
T3 X2 -1.8
T3 X3 0.9
T4 X1 0.3
T4 X2 0.8
T4 X3 0.9
T5 X1 0.3
T5 X2 0.8
T5 X3 0.9
数据集2:
T10 X1 1.3
T10 X2 -2.8
T10 X3 0.09
T11 X1 3.3
T11 X2 0.8
T11 X3 1.9
T12 X1 0.3
T12 X2 -4.8
T12 X3 2.9
T13 X1 1.3
T13 X2 2.8
T13 X3 0.19
T14 X1 2.3
T14 X2 0.08
T14 X3 -0.9
这就是我希望输出的外观,我希望ttest应用于每个特征,以便获得每个特征的p值
Feature Mean-DataSET1 Mean-DataSET2 P-value
X1
X2
X3
当我执行stats.ttest_ind(set1['value'],set2['value']).pvalue时,我得到一个单独的pvalue
谢谢
如果我理解正确,您可以使用Groupby获得每个特征的平均值,然后在一个数据集中获得每个特征的p值。首先我要创建数据集
然后,为了获得特征的平均值,您可以使用group by并将结果发送到此新数据集
现在据我所知,p-tests返回整个列的值,因此我将在一个位置获取两个值列,然后将数据拆分为临时数据集,并获取这些数据的p值
这样你就可以像以前一样执行相同的函数,得到所有的值
因此,数据子集上的示例输出如下所示:
这不是最优雅的答案,但现在应该还可以,因为您只有小数据集
我将上面的输出写入了两个以制表符分隔的文件,并在下面进行了阅读,并添加了一列以指示它来自的dataframe或table:
然后我们将它们连接起来,并直接计算平均值:
p.value需要在应用程序中进行多一点编码:
您始终可以选择执行
res.reset_index()
以获取表相关问题 更多 >
编程相关推荐