python - QQ-plot python均值和标准差
问题描述
我正在尝试使用 python 绘制一个 QQ 图。我正在检查 scipy.stats.probplot,输入似乎是针对正常分布的测量。
import numpy as np
import pylab
import scipy.stats as stats
measurements = np.random.normal(loc = 20, scale = 5, size=100)
stats.probplot(measurements, dist="norm", plot=pylab)
pylab.show()
在我的代码中,我有
stats.probplot(mean, dist="norm", plot=plt)
比较分布。
但我想知道在哪里可以输入标准偏差?我认为在比较分布时这是一个非常重要的因素,但到目前为止我只能输入平均值。
谢谢
解决方案
假设您有一个浮动列表
X = [-1.31,
4.82,
2.18,
1.99,
4.37,
2.58,
7.22,
3.93,
6.95,
2.41,
2.02,
2.48,
-1.01,
2.3,
2.87,
-0.06,
2.13,
3.62,
5.24,
0.57]
如果要进行 QQ_plot 测试,则需要将 X 与分布进行比较。例如:N(0, 1) 一个正态分布,其均值 = 0 且 sigma = 1
在 OpenTURNS 中,它是这样的:
import openturns as ot
sample = ot.Sample([[p] for p in X])
graph = ot.VisualTest.DrawQQplot(sample, ot.Normal(0,1))
View(graph);
解释:我告诉 OpenTURNS 我有一个来自 X 的 20 个点 [p] 的样本,而不是维度 20 中的 1 个点。然后我ot.VisualTest.DrawQQplot
用 2 个参数调用:sample
和正态分布 (0,1) ot.Normal(0,1)
。
我们在图表上看到测试失败:
现在的问题是:拟合样本的最佳正态分布是什么?感谢NormalFactory()
答案很简单:
BestNormalDistribution = ot.NormalFactory().build(sample)
如果你print(BestNormalDistribution)
得到这个分布的参数: Normal(mu = 2.76832, sigma = 2.27773)
推荐阅读
- vb.net - 我有这个倒数计时器,我希望它从变量中设置的数字开始
- python - 使用 matplotlib 制作交互式 svg
- c++ - 如何在不存储的情况下读取并立即丢弃 C++ 中的某些数据?
- android-studio - 如何在 Android Studio/Intellij-idea 的工具栏中添加自定义命令(操作)按钮以执行 bash?
- javascript - 从 VueJS 中的 API 获取后更新 DOM
- python - 如何以漂亮的方式显示包含字典的列表?
- c - 为什么程序没有因信号值变化而终止?
- selenium - Selenium 测试有时会因天蓝色管道而失败并在本地通过
- java - 如何避免表单中文本字段在数据库中的重复
- c++ - 反正有传递函数作为模板参数吗?