假设A和B是两个数据集。每个数据集可能有 100 个特征。如何对这些独立数据集进行假设检验以比较统计显着性?
我尝试用Python编写代码。我已经对这两个数据集进行了预处理,并且考虑到列已标准化,我尝试使用学生 t 检验。数据集是具有连续值的表格数据,并且对分类特征执行了一次热编码。我尝试对数字列执行 t 检验两个数据集。但我似乎无法弄清楚如何在整个数据集上执行。我使用了 scipy.stats 库。
这可能是https://stats.stackexchange.com/的问题。
但我会尝试给出一种使用 python 代码的方法。这使用学生 T 检验或Welch T 检验,这是一种更严格的检验,因为它不假设两个分布的方差相似。
请注意,这会检查两个分布的均值在统计上是否相似。
Python 中虚拟数据的示例代码:
import numpy as np
from scipy import stats
arr1 = np.random.normal(loc=1,size=(10000,2))
arr2 = np.random.normal(loc=1,size=(10000,2))
print(stats.ttest_ind(arr1, arr2, equal_var=True, axis=0))
输出:
TtestResult(statistic=array([-2.13993016, 0.87158797]), pvalue=array([0.03237248, 0.38344366]), df=array([19998., 19998.]))
上面的代码逐列比较是否均值相等,并给出每个列的 p 值(和 t 统计量)。
您可以对数据集的所有特征应用 t 检验,如下所示:
p_values = []
for i in range(df1.shape[1]):
_, p_value = stats.ttest_ind(df1[:, i], df2[:, i])
p_values.append(p_value)