Log-Cauchy การสร้างตัวเลขสุ่ม


11

ฉันต้องการวาดตัวเลขสุ่มจากการแจกแจงล็อก - โคชีซึ่งมีความหนาแน่น: ใครช่วยฉันหรือชี้ให้ฉันเห็นหนังสือ / กระดาษที่สามารถแสดงให้ฉันได้อย่างไร

(x;μ,σ)=1xπσ[1+(ล.n(x)-μσ)2].

คำตอบ:


12

ตัวแปรมีการแจกแจงล็อก -Cauchy ถ้าบันทึก( X )มีการแจกแจงโคชี ดังนั้นเราเพียงแค่ต้องสร้างตัวแปรสุ่ม cauchy และยกกำลังพวกเขาเพื่อให้ได้สิ่งที่มีการกระจาย log-cauchyXเข้าสู่ระบบ(X)

μσ

F(x)=1πarctan(x-μσ)+12

มันตรงไปตรงมาเพื่อคว่ำฟังก์ชั่นนี้เพื่อหาสิ่งนั้น

F-1(Y)=μ+σสีน้ำตาล[π(Y-12)]

ยู~ยูnผมโอRม.(0,1)Y=μ+σสีน้ำตาล[π(ยู-12)]μσประสบการณ์(Y)Rrcauchy

rlogcauchy <- function(n, mu, sigma)
{
    u = runif(n)
    x = mu + sigma*tan(pi*(u-.5))
    return( exp(x) ) 
}

หมายเหตุ:เนื่องจากการกระจาย cauchy เป็นหางยาวมากเมื่อคุณยกกำลังพวกเขาในคอมพิวเตอร์คุณอาจได้รับค่าที่เป็นตัวเลข "ไม่มีที่สิ้นสุด" ฉันไม่แน่ใจว่ามีอะไรที่ต้องทำเกี่ยวกับเรื่องนี้

ประสบการณ์(μ+σสีน้ำตาล[π(ยู-12)])


1
นี่คือ +1 สำหรับมาโคร
Michael R. Chernick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.