gnuplot和倍频程:一条有倾斜的分布曲线

gnuplot和倍频程:一条有倾斜的分布曲线,gnuplot,octave,Gnuplot,Octave,我正在尝试绘制一些分布曲线,我使用倍频程获得了以下结果: 卑鄙 中间带 标准差 差异 偏斜 经过长时间的互联网搜索,我只找到了正态/高斯分布曲线的例子: 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 这画了一条漂亮的曲线。 然而,我试图画一个偏

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

  • 卑鄙
  • 中间带
  • 标准差
  • 差异
  • 偏斜
经过长时间的互联网搜索,我只找到了正态/高斯分布曲线的例子:

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
这画了一条漂亮的曲线。 然而,我试图画一个偏斜的,通过均值,中值和偏斜度的差异来判断,比如

我怎样才能画出这样一条曲线? gnuplot示例显示了一些非常类似的内容,但他们没有解释如何绘制/绘制它

编辑

为了计算实际的函数并找到它的参数,我问了在哪里我得到了一个彻底的答复。 我现在意识到这是两个问题,但似乎我需要的是使用
octave
获取数据的PDF,然后获取CDF。 Cristoph的维基百科链接表明我需要的是:

f(x) = 2*stdnormal_pdf(x)*stdnormal_cdf(a*x)
当然,我可能错了。 获取形状的alpha是不清楚的(我建议先对delta进行求解,然后对alpha进行求解,这对我来说非常复杂)。 我敢打赌,
八度音程中有一个函数,我无法做到这一点。

函数定义。然后,您可以使用

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'

嗨,非常感谢你的回答。我问math.stackexchange如何计算实际公式。我猜我只需要计算数据的sigma和alpha,然后使用你定义的函数?