我有一个具有不同功能的df。我将重点介绍一个称为“ x”的功能:
count 2152.000000
mean 95.162587
std 0.758480
min 92.882304
25% 94.648659
50% 95.172078
75% 95.648485
max 97.407068
我想在df上采样数据时对df进行ttest。我想看看sampleSize的效果。如我所料,它会在大量采样后饱和。因此,我为特定的random_state循环了sampleSize:
for N in np.arange(1,2153,1):
pull = helioPosition.sample(N,random_state= 140)
ttest_pull.append(stats.ttest_ind(df['x'],pull['x'])[1])
'x'的分布是正态分布:
当我在我的sampleSize上绘制ttest的p时,得到以下图:
我的代码或方法是否有错误。我希望使用更高的sampleSize可以得到更好的p值,但是对于每个sampleSize而言并非如此。 〜1500的sampleSize怎么比〜450的样本差呢?
[pull
来自相同数据的采样,即第二个采样是来自相同总体的随机采样,并且两个采样具有相同的平均值(期望值)。
p值在原假设为真时均匀分布,在这种情况下。这与样本量无关,因此我们希望看到测试的p值出现波动或随机性。
但是,在这种情况下,您没有两个独立的样本,这是t检验的基础假设。据我了解您的代码,在N变大的限制内,第二个样本将包括整个“填充”,并且与第一个样本相同。在这种情况下,p值将变为1,因为您正在比较两个基本相同的样本。