在 Python 3 中执行卡方检验以检验正态性

Performing a chi-quare test in Python 3 to test normality

我得到了以下文件:

我想测试这个数据集的正态性。 我想通过卡方检验来做到这一点。

我在 excel 中执行了它,得到了以下结果(我想在 Python 中实现):

chisquare = 5.53
p-value = 0.14

我在excel中的公式如下:

我首先计算了每列中每个值的 z 值。 然后,我根据标准正态分布 (n(0,1)) 计算了低于 -1、介于 -1 和 0 之间、介于 0 和 1 之间以及大于 +1 的预期值。然后我计算了这些范围内的实际值(基于 z 值)。

然后我可以通过(观察值-期望值)^2/期望值计算每个范围的卡方值。

对卡方值求和,得出 5.53。 因为我使用了 4 个范围,所以我使用了 3 个自由度。 5.53 和 3 个自由度给出的 p 值为 0.14(公式称为 CHIDIST(卡方值,自由度)。

问题是:如何在 Python 中执行此计算并用多行进行计算?

我制作了一个快速电子表格来测试这些值,它看起来像

a,b,c 
1,2,3

然后,Pandas

import pandas as pd
df = pd.read_csv('test.csv')  # above
df.iloc[:, 1:].values
> array([[2, 3]], dtype=int64)

但这是一个嵌套数组。 chisquaredocs 建议使用扁平数组,因此您可能想尝试

df.iloc[:, 1:].values.flatten()
> array([2, 3], dtype=int64)