如何将数据转换为正态分布



我有一个数据集,包括 6 个月内 30k 客户的页面浏览量。它还包括以下内容:

  • 使用的唯一操作系统数
  • 唯一浏览器用户数
  • 使用的唯一饼干数量 所有这些数字都是在六个月内得出的。

现在我确实尝试使用以下方法进行正常测试:

from scipy.stats import normaltest
k2, p = normaltest(df)
print(p)

返回 0.0 表示数据不服从正态分布。

现在我想知道这是为什么?我认为通常随着大小的增加,我们看到数据中的正态分布,因为数据的大小为 30k,我无法理解为什么它不是正态分布的。

我确实尝试将它们转换为 Z 分数,但仍然没有运气。我是否可以转换数据,以便具有正态分布?有什么方法可以做到这一点吗?

在我工作的领域,我们通常使用像您一样异方差的日志转换数据。在我的领域(质谱法(,小值比大值更有可能,所以我们最终得到指数分布。

我猜你的数据看起来像我的,在这种情况下,你需要对你的数据进行对数转换,使其呈正态分布。我会这样做,以便我可以应用 t 检验和其他统计模型。

类似的东西

df_visits = df_visits.apply(lambda x: np.log(x))

当然,您还需要在记录转换之前删除任何零。

显示日志转换前与日志后转换的图像

最新更新