我有一个数据集,包括3个月的30k客户的页面浏览量。它还包括以下内容:
现在我尝试使用以下方法进行正常测试:
from scipy.stats import normaltest
k2, p = normaltest(df)
print(p)
返回0.0表示数据不遵循正态分布。
现在我想知道为什么会这样?我认为通常随着大小的增加,我们看到数据的正态分布,因为数据的大小为30k,我无法理解为什么它不是正常分布的。
我确实尝试将它们转换成Z分数,但仍然没有运气。我可以转换我的数据,以便我可以正常分布吗?我有什么方法可以做到吗?
在我工作的区域中,我们通常使用Log变换数据,这可能与您的异常相似。在我的区域(质谱),小值远远大于大值,因此我们最终得到指数分布。
我猜你的数据看起来像我的,在这种情况下,你需要对数据进行日志转换,使其正常分布。我会这样做,以便我可以应用t检验和其他统计模型。
就像是
df_visits = df_visits.apply(lambda x: np.log(x))
当然,在记录变换之前,您还需要删除任何零。