math - 是否有任何将其图形最大值和 x 范围作为输入的统计分布?
解决方案
具有给定最小值、最大值和众数的最简单分布是三角分布,例如使用 scipy 的triang
:
import numpy as np
from scipy.stats import triang
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
a, mode, b = 1, 3, 10
scale = b - a
shape = (mode - a) / scale
loc = a
x = np.linspace(a, b, 200)
ax.plot(x, triang.pdf(x, shape, loc, scale))
plt.show()
p = pdf(mode, triang.pdf(x, shape, loc, scale))
请注意,的值为2 / (b - a)
。
更复杂的分布是beta 分布,其中参数alpha
和beta
可以从给定的模式和浓度 ( )中计算出来。= alpha + beta
import numpy as np
from scipy.stats import triang, beta
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
a, mode, b = 1, 3, 10
scale = b - a
shape = (mode - a) / scale
loc = a
x = np.linspace(a, b, 200)
for concentration in np.arange(2, 20, 3):
alpha = shape * (concentration - 2) + 1
bet = (1 - shape) * (concentration - 2) + 1
ax.plot(x, beta.pdf(x, alpha, bet, loc, scale), label=concentration)
ax.legend(title='concentration')
plt.show()
推荐阅读
- asp.net-identity - 有没有比通过 userManager.CreateAsync() 更快地批量创建身份用户(1M 行)的方法?
- exception - vue axios Uncaught (in promise) 取消
- c# - 带有 2 个参数的 ASP.NET 2.0 Web API 问题
- reactjs - Detox:条件测试用例编写
- c# - 将 NLog.Extended 从 2.0 升级到 4.6 后抛出“无法加载类型 NLog.Web.NLogHttpModule”
- python - 在python中交换十六进制字节数组中的字节对
- c++ - 如何在 C++ 中将 JWK 公钥转换为 PEM 格式
- r - R中的最大阶乘数
- windows - 从 CMD 返回特定字段
- c - 为什么需要确保在包含使用它的预编译头文件之前不扩展 gcc 的 __COUNTER__ 宏?