如何使用两个样本t检验计算R中每个特征的p值

如何使用两个样本t检验计算R中每个特征的p值,r,statistics,R,Statistics,我有两个数据框案例和对照,我执行了两个样本t检验,如下所示。但我从特征集(1299个特征/列)中提取特征,所以我想计算每个特征的p值。基于为每个特征生成的p值,我想拒绝或接受零假设 有人能给我解释一下下面的输出是如何解释的,以及如何计算每个特征的p值吗 t.test(New_data_zero,New_data_one) Welch Two Sample t-test data: New_data_zero_pca and New_data_one_pca t = -29.086,

我有两个数据框案例和对照,我执行了两个样本t检验,如下所示。但我从特征集(1299个特征/列)中提取特征,所以我想计算每个特征的p值。基于为每个特征生成的p值,我想拒绝或接受零假设

有人能给我解释一下下面的输出是如何解释的,以及如何计算每个特征的p值吗

t.test(New_data_zero,New_data_one)
    Welch Two Sample t-test

data:  New_data_zero_pca and New_data_one_pca
t = -29.086, df = 182840000, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.02499162 -0.02183612
sample estimates:
 mean of x  mean of y 
0.04553462 0.06894849 
t.test(新数据0,新数据1)
韦尔奇双样本t检验
数据:新数据0主成分分析和新数据1主成分分析
t=-29.086,df=182840000,p值<2.2e-16
替代假设:平均值的真实差异不等于0
95%置信区间:
-0.02499162 -0.02183612
样本估计:
x的平均值y的平均值
0.04553462 0.06894849 

看看t测试。x和y应该是向量而不是矩阵。因此,函数会自动将它们转换为向量。假设列是特征,并且两个矩阵具有相同的特征,则要执行的操作是:

pvals=vector()
for (i in seq(ncol(New_data_zero))){
 pvals[i]=t.test(New_data_zero[,i], New_data_one[,i])$p.value
}

然后你可以看看pvals(可能是对数尺度)和多重假设检验校正后(请参见?p.adjust)。

让我们也来谈谈这种发现特征差异的方法非常糟糕的想法。即使这些1299特性之间的所有影响实际上都为零,您也会在所有可能的1299双向比较中的0.05中发现*显著的结果,这使得该策略实际上毫无意义。我强烈建议在继续之前先看一看介绍性统计文本,特别是关于家庭类型I错误率的部分