gnuplot 和 octave:有偏斜的分布曲线

gnuplot and octave: a distribution curve with a skew

我正在尝试绘制一些分布曲线,并且我使用 octave 获得了以下结果:

据我所知,经过长时间的互联网搜索,我只找到了 normal/Gaussian 分布曲线的示例:

std=0.1674766919608221
mean=0.6058016666666665
normal(x, mu, sd) = (1/(sd*sqrt(2*pi)))*exp(-(x-mu)**2/(2*sd**2))
plot normal(x,mean,std) with lines

画出漂亮的曲线。 但是,我试图画一个偏斜的,通过均值、中位数和偏度的差异来判断,例如 shown here.

如何在 gnuplot 中绘制这样的曲线? gnuplot 示例显示了一些非常相似的东西 at the bottom example 但他们没有解释它们是如何 draw/plot 的。

编辑

为了计算实际函数并找到其参数,我在math.stackexchange中询问了我得到了详尽的答复。 我现在意识到这是两个问题,但看来我需要的是使用 octave 获取我的数据的 PDF,然后获取 CDF。 Cristoph 的维基百科 link 到 skew normal distribution 表明我需要的是:

f(x) = 2*stdnormal_pdf(x)*stdnormal_cdf(a*x)

当然我可能是错的。 获得形状不清楚的 alpha (我的 math post 建议先求解 delta 然后再求解 alpha 这对我来说似乎很复杂)。 我敢打赌 octave 中有一个功能让我无法做到这一点。

Skew normal distribution 用于函数定义。然后,您可以使用

绘制 skew-normal 分布的概率密度函数
normal(x) = 1.0 / sqrt(2*pi) * exp(-(x**2)/2.0)
cdf(x) = 0.5 * (1 + erf(x / sqrt(2)))
skewed_normal(x, x0, sigma, alpha) = (2.0 / sigma) * normal((x - x0) / sigma) * cdf(alpha * (x - x0) / sigma)

set xrange [-4:4]
plot skewed_normal(x, 0, 1, -4) title 'α = -4',\
     skewed_normal(x, 0, 1, -1) title 'α = -1',\
     skewed_normal(x, 0, 1, 0) title 'α = 0',\
     skewed_normal(x, 0, 1, 1) title 'α = 1',\
     skewed_normal(x, 0, 1, 4) title 'α = 4'