首页 > 解决方案 > 是否有任何将其图形最大值和 x 范围作为输入的统计分布?

问题描述

请看下图,我有“p”和“val”和“min,max”值。我需要一个将它们作为输入的分布。任何想法?

在此处输入图像描述

标签: mathstatistics

解决方案


具有给定最小值、最大值和众数的最简单分布是三角分布,例如使用 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 分布,其中参数alphabeta可以从给定的模式和浓度 ( )中计算出来。= 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()

贝塔分布


推荐阅读