简介:我有一个超过30 000个值的列表,范围从0到47,例如[0,0,0,0,...,1,1,1,1,...,2,2,2,2, ......,47等]是连续分布.
问题:基于我的分布,我想计算任何给定值的p值(看到更大值的概率).例如,正如您所见,0的p值接近1,较高的数值的p值趋于0.
我不知道我是否正确,但是为了确定概率,我认为我需要将我的数据拟合到最适合描述我的数据的理论分布.我认为需要某种拟合优度测试来确定最佳模型.
有没有办法在Python中实现这样的分析(Scipy或Numpy)?你能举个例子吗?
谢谢!
我试图用自定义概率密度函数拟合一些实验值的分布.显然,所得到的函数的积分应该总是等于1,但简单scipy.optimize.curve_fit(功能,dataBincenters,dataCounts)的结果从未满足该条件.解决这个问题的最佳方法是什么?
我正在尝试评估/测试我的数据与特定分布的匹配程度.
有几个问题,我被告知使用scipy.stats.kstest或scipy.stats.ks_2samp.这似乎很简单,给它:(A)数据; (2)分配; (3)拟合参数.唯一的问题是我的结果没有任何意义?我想测试我的数据的"好",它适合不同的发行版,但从输出结果来看kstest,我不知道我是否能做到这一点?
"[SciPy]包含KS"
使用Scipy的stats.kstest模块进行拟合优度测试说
"第一个值是测试统计数据,第二个值是p值.如果p值小于95(对于5%的显着性水平),这意味着你不能拒绝Null-Hypothese这两个样本分布完全相同."
这只是展示如何拟合: 拟合分布,拟合优度,p值.用Scipy(Python)可以做到这一点吗?
np.random.seed(2)
# Sample from a normal distribution w/ mu: -50 and sigma=1
x = np.random.normal(loc=-50, scale=1, size=100)
x
#array([-50.41675785, -50.05626683, -52.1361961 , -48.35972919,
# -51.79343559, -50.84174737, -49.49711858, -51.24528809,
# -51.05795222, -50.90900761, -49.44854596, -47.70779199,
# ...
# -50.46200535, -49.64911151, -49.61813377, -49.43372456,
# -49.79579202, -48.59330376, -51.7379595 , -48.95917605,
# -49.61952803, -50.21713527, -48.8264685 , -52.34360319])
# Try against a Gamma Distribution
distribution = "gamma"
distr = …Run Code Online (Sandbox Code Playgroud)