0

我正在尝试使用基于卡方的标准来估计误差正态分布的拟合优度。

具体来说,我有一个样本和它的估计值。从那里我计算近似误差。我现在将这些误差用作新的假设正态分布的观测值 O,其中预期的理论观测值 E 现在是这些误差的平均值或 0(您希望估计是完美的)。

使用https://en.wikipedia.org/wiki/Goodness_of_fit卡方统计量应该等于 1 以进行精确拟合,这是我事先不期望的。

我想要近似拟合,我得到的是等于 ~1.3 - 1.5 的卡方统计量。在小样本上,这些有时会变成 2-3。

这被认为是可以忍受的合身吗?

我在python中实现了这个,所以代码是

def chi_squared(error,mean,var,N,n):
    return ((error)**2/var).sum(0)/(N - n - 1)

或者

def chi_squared(error,mean,var,N,n):
    return ((error - mean)**2/var).sum(0)/(N - n - 1)

其中 N 是观察的数量(len(error))和 n = 2(我试图拟合的参数数量,它们是均值和 var)。

它工作得相当好(我认为)只有 6-8 个观察值,这很奇怪,因为您需要足够的统计数据来近似高斯(至少 10 个样本等......) - 我希望 chi-statistics 的值更高.. .

数据样本:

[-0.626637 -0.466102 0.235232 -1.803282 -0.376370 -0.891675 -0.347168 0.000000]

从这里我计算平均值和 var 并应用上述过程(我的真实数据是一个 pd.DF,其中每列包含一个如上所述的系列,因此 .sum(0)。可以在使用其他数据类型时与 sum() 一起使用)

根据@tom 的评论:我使用的数据是数字的而不是分类的,因此使用 scipy.stats.chisquare 是不可能的。看来我需要自己计算 chi-statistics 和 p-values,除非有办法直接从 python 中做到这一点?

先感谢您。

4

0 回答 0