我试图将分布曲线拟合到某些数据的直方图 . (我在这里使用了一些模型数据,因为很难上传实际数据 . 我在问题之后已经包含了完整的代码 . )
因为当我在logscale中绘制x轴时,直方图看起来是正态分布的,所以我在将正态分布拟合到数据之前先对数据进行转换,得到以下结果:
>>pdn=fitdist(log(data),'Normal')
pdn =
Normal distribution
mu = -0.334458 [-0.34704, -0.321876]
sigma = 0.351478 [0.342804, 0.360605]
当我用直方图绘制出pdf时,我得到了这个:
结果对我来说似乎很合理 . 然后我发现在Matlab fitdist() 中,它已经有一个'Lognormal'选项,我真的不需要先转换我的数据,这就是我得到的:
>>pdln = fitdist(data,'Lognormal')
pdln =
Lognormal distribution
mu = -0.334458 [-0.34704, -0.321876]
sigma = 0.351478 [0.342804, 0.360605]
与我之前完全相同的均值和标准差