ฉันติดตั้งโมเดล lognormal โดยใช้ R พร้อมชุดข้อมูล พารามิเตอร์ผลลัพธ์คือ:
meanlog = 4.2991610
sdlog = 0.5511349
ฉันต้องการถ่ายโอนโมเดลนี้ไปยัง Scipy ซึ่งฉันไม่เคยใช้มาก่อน เมื่อใช้ Scipy ฉันสามารถรับรูปร่างและมาตราส่วน 1 และ 3.1626716539637488e + 90 - ตัวเลขที่แตกต่างกันมาก ฉันยังพยายามใช้ exp ของ meanlog และ sdlog แต่ยังคงได้กราฟที่แปลกประหลาด
ฉันได้อ่านเอกสารทุกฉบับที่ฉันสามารถทำได้ใน scipy และฉันยังสับสนเกี่ยวกับความหมายของพารามิเตอร์รูปร่างและขนาดในกรณีนี้ มันจะสมเหตุสมผลหรือไม่ที่จะเขียนโค้ดฟังก์ชันเอง ที่ดูเหมือนว่าจะเกิดข้อผิดพลาดในขณะที่ฉันใหม่เพื่อ scipy
SCIPY Lognormal (BLUE) กับ R Lognormal (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's":
รูปร่าง, loc, สเกล (1.0, 50.03445923295007, 19.074457156766517)
รูปร่างของกราฟนั้นคล้ายกันมาก แต่มีจุดสูงสุดเกิดขึ้นประมาณ 21