gpt4 book ai didi

python - 将峰度应用于 python 中的分布

转载 作者:行者123 更新时间:2023-11-28 22:02:45 31 4
gpt4 key购买 nike

我有一个格式为

的数据集

频率、方向、归一化功率谱密度、展宽、偏度、峰度

我能够使用 skew normal distribution in scipy 中顶部答案中的代码可视化特定记录的分布但我不确定如何将峰度值应用于分布?

from scipy import linspace
from scipy import pi,sqrt,exp
from scipy.special import erf
from pylab import plot,show

def pdf(factor, x):
return (100*factor)/sqrt(2*pi) * exp(-x**2/2)

def cdf(x):
return (1 + erf(x/sqrt(2))) / 2

def skew(x,e=0,w=1,a=0, norm_psd=1):
t = (x-e) / w
return 2 / w * pdf(norm_psd, t) * cdf(a*t)

n = 540
e = 341.9 # direction
w = 59.3 # spread
a = 3.3 # skew
k = 4.27 # kurtosis
n_psd = 0.5 # normalised power spectral density
x = linspace(-90, 450, n)


p = skew(x, e, w, a, n_psd)
print max(p)
plot(x,p)
show()

编辑: 我从标题中删除了正态偏斜,因为我认为实际上不可能将峰度值应用于上述分布,我认为需要不同的分布,因为方向是涉及循环统计的分布可能更合适?

感谢下面的答案,我可以使用下面代码中演示的 pdf_mvsk 函数应用峰度,不幸的是我的偏斜值导致负 y 值,但答案满足了我的问题。

import numpy as np
import matplotlib.pyplot as plt
import statsmodels.sandbox.distributions.extras as extras

pdffunc = extras.pdf_mvsk([341.9, 59.3, 3.3, 4.27])
range = np.arange(0, 360, 0.1)
plt.plot(range, pdffunc(range))
plt.show()

最佳答案

如果您有均值、标准差、偏度和峰度,那么您可以使用 Gram-Charlier 展开来构建具有这些矩的近似正态分布。

我前一段时间调查过这个,scipy.stats 有一个函数是错误的,被删除了。

我不记得这是什么状态,因为很久以前我把它放在 statsmodels 沙箱里了 http://statsmodels.sourceforge.net/devel/generated/statsmodels.sandbox.distributions.extras.pdf_mvsk.html#statsmodels.sandbox.distributions.extras.pdf_mvsk

关于python - 将峰度应用于 python 中的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10814363/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com