我已经使用R与一组数据拟合了对数正态模型。结果参数为:
meanlog = 4.2991610
sdlog = 0.5511349
我想将此模型转移到Scipy,这是我以前从未使用过的模型。使用Scipy,我可以得到1和3.1626716539637488488 + 90的形状和比例-非常不同的数字。我也尝试过使用meanlog和sdlog的exp,但是继续得到奇怪的图形。
我已经阅读了所有关于scipy的文档,但是对于这种情况下的形状和比例参数仍然感到困惑。自己编写该函数是否有意义?不过,这似乎容易出错,因为我是scipy的新手。
SCIPY对数正态(BLUE)与R对数正态(RED):
对采取什么方向有任何想法吗?顺便说一下,这些数据非常适合R模型,因此,如果看起来像Python中的其他内容,请随时共享。
谢谢!
更新:
我正在运行Scipy 0.11
这是数据的子集。实际样本为38k +,平均值为81.53627:
子集:
x
[60,170,137,138,81,140,78,46,1,168,138,148,145,35,82,126,66,147,88,106,80,54,83,13,
102、54、134、34 ] numpy.mean(x)
99.071428571428569
或者:
我正在研究捕获pdf的功能:
def lognoral(x, mu, sigma):
a = 1 / (x * sigma * numpy.sqrt(2 * numpy.pi) )
b = - (numpy.log(x) - mu) ^ 2 / (2 * sigma ^ 2)
p = a * numpy.exp(b)
return p
但是,这给了我以下数字(我尝试了几种,以防我混淆了sdlog和meanlog的含义):
>>> lognormal(54,4.2991610, 0.5511349)
0.6994656085799437
>>> lognormal(54,numpy.exp(4.2991610), 0.5511349)
0.9846125119455129
>>> lognormal(54,numpy.exp(4.2991610), numpy.exp(0.5511349))
0.9302407837304372
有什么想法吗?
更新:
用“ UPQuark”的建议重新运行:
形状,位置,比例(1.0,50.03445923295007,19.074457156766517)
该图的形状非常相似,但峰值出现在21附近。