Rを使用して、データのセットで対数正規モデルを近似しました。結果のパラメーターは次のとおりです。
meanlog = 4.2991610
sdlog = 0.5511349
このモデルを、これまで使用したことがないScipyに転送したいと思います。Scipyを使用して、1と3.1626716539637488e + 90という非常に異なる数の形状とスケールを取得することができました。また、meanlogとsdlogのexpを使用しようとしましたが、奇妙なグラフが引き続き表示されます。
私はscipyでできるすべてのドキュメントを読みましたが、この場合の形状とスケールのパラメーターの意味についてまだ混乱しています。関数を自分でコーディングするのは理にかなっていますか?私はscipyが初めてなので、エラーが発生しやすいようです。
SCIPYログノーマル(青)対Rログノーマル(赤):
どの方向に進むかについての考えはありますか?ちなみに、データは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's」の提案で再実行:
形状、場所、スケール(1.0、50.03445923295007、19.074457156766517)
グラフの形状は非常によく似ていますが、ピークは21前後で発生しています。