在增加样本量的同时使用ttest

问题描述 投票:0回答:1

我有一个具有不同功能的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'的分布是正态分布:

dist 'x'

当我在我的sampleSize上绘制ttest的p时,得到以下图:

ttest

我的代码或方法是否有错误。我希望使用更高的sampleSize可以得到更好的p值,但是对于每个sampleSize而言并非如此。 〜1500的sampleSize怎么比〜450的样本差呢?

python pandas scipy statistics statsmodels
1个回答
0
投票

[pull来自相同数据的采样,即第二个采样是来自相同总体的随机采样,并且两个采样具有相同的平均值(期望值)。

p值在原假设为真时均匀分布,在这种情况下。这与样本量无关,因此我们希望看到测试的p值出现波动或随机性。

但是,在这种情况下,您没有两个独立的样本,这是t检验的基础假设。据我了解您的代码,在N变大的限制内,第二个样本将包括整个“填充”,并且与第一个样本相同。在这种情况下,p值将变为1,因为您正在比较两个基本相同的样本。

© www.soinside.com 2019 - 2024. All rights reserved.