วิธีค้นหา / ประมาณความหนาแน่นของความน่าจะเป็นจากฟังก์ชันความหนาแน่นใน R


17

สมมติว่าฉันมีตัวแปรเช่นเดียวXกับการกระจายที่ไม่รู้จัก ใน Mathematica โดยใช้SmoothKernelDensityฟังก์ชั่นที่เราสามารถมีประมาณ function.This ความหนาแน่นของฟังก์ชั่นความหนาแน่นประมาณสามารถนำมาใช้ควบคู่ไปกับPDFฟังก์ชั่นฟังก์ชั่นความหนาแน่นของการคำนวณความน่าจะเป็นของมีค่าเช่นXในรูปแบบของPDF[density,X]สมมติว่า "ความหนาแน่น" SmoothKernelDensityเป็นผลมาจาก มันจะดีถ้ามีคุณสมบัติดังกล่าวใน R นี่คือวิธีการทำงานใน Mathematica

http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html

เป็นตัวอย่าง (ขึ้นอยู่กับฟังก์ชั่น Mathematica):

data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)

density= SmoothKernelDistribution[data]; #estimated density

PDF[density, 2.345] returns 0.0588784 

คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับ PDF ได้ที่นี่

http://reference.wolfram.com/mathematica/ref/PDF.html

ฉันรู้ว่าฉันสามารถวางแผนฟังก์ชั่นความหนาแน่นของมันโดยใช้density(X)ใน R และโดยการใช้ecdf(X)ฉันสามารถได้รับฟังก์ชั่นการแจกแจงสะสมเชิงประจักษ์มันเป็นไปได้ที่จะทำสิ่งเดียวกันใน R ตามสิ่งที่ฉันอธิบายเกี่ยวกับ Mathematica?

ความช่วยเหลือและความคิดใด ๆ ที่ชื่นชม


density(x)ให้ค่าประมาณของ pdf ตามที่คุณได้บันทึกไว้ แต่ความเหมาะสมของมันขึ้นอยู่กับวัตถุประสงค์ที่คุณต้องการให้มีความหนาแน่น หมายเหตุตัวอย่างเช่นความแปรปรวนนั้นมีอคติมากขึ้น (ในการดำเนินการโน้มน้าวใจคุณเพิ่มความแปรปรวนของเคอร์เนลให้กับความแปรปรวนของข้อมูลซึ่งเป็นค่าประมาณที่ไม่เอนเอียง) - การแลกเปลี่ยนความแปรปรวนแบบอคตินั้นเป็นที่แพร่หลาย มีทางเลือกอื่น ๆ เช่นการประมาณความหนาแน่นของ log-spline เช่น - แต่อีกครั้งความเหมาะสมของมันขึ้นอยู่กับสิ่งที่คุณต้องการจะทำกับมัน
Glen_b

@Glen_b ฉันต้องการใช้ความหนาแน่นโดยประมาณสำหรับการค้นหาความน่าจะเป็นของค่าอื่น ๆ ในการแจกแจง ตัวอย่างเช่นฉันมีเวกเตอร์ของข้อมูลตั้งแต่ 0 ถึง 10 ชุดข้อมูลนี้มีค่าที่ไม่ซ้ำกัน 70 ค่าระหว่าง 0 ถึง 10 ฉันสามารถวางแผนความหนาแน่นได้ ทีนี้สมมติว่าฉันสนใจที่จะค้นหาความน่าจะเป็นที่จะมี X = 7.5 ซึ่งไม่ได้อยู่ในข้อมูลที่สังเกตได้ในการสุ่มตัวอย่างฉันจะหาได้อย่างไร ฉันรู้ว่านั่นecdf(X)ให้เปอร์เซ็นต์ที่เทียบเท่ากับ 7.5 แต่ไม่ใช่สิ่งที่ฉันกำลังมองหา
อามิน

" การค้นหาความน่าจะเป็นที่จะมี X = 7.5 " - มีปัญหาของคุณ! ไม่ว่าคุณจะมีการแจกแจงแบบต่อเนื่อง (ในกรณีที่คำตอบที่แท้จริงคือ "0") หรือไม่ (ในกรณีนี้คุณไม่ควรใช้การประมาณค่าความหนาแน่นเนื่องจากคุณไม่มีความหนาแน่น)
Glen_b -Reinstate Monica

1
ecdf(b)-ecdf(a)P(a<X)<X P(X=7.5)โดยการคำนวณสัดส่วนตัวอย่างของค่าที่ 0.75
Glen_b -Reinstate Monica

1
ขออภัยนั่นเป็นข้อผิดพลาด ฉันหมายถึงสัดส่วนตัวอย่างของค่าที่ 7.5 ลูกชายของฉันกวนใจฉันเมื่อฉันพิมพ์คำสองคำสุดท้าย ค่าประมาณความน่าจะเป็นของเหตุการณ์ที่ไม่ได้สังเกตเห็นของคุณคือศูนย์ คุณต้องการสมัครล่วงหน้าหรือไม่? คุณต้องการช่วงความมั่นใจสำหรับสัดส่วนแทนการประมาณค่าจุดหรือไม่? ปัญหาที่แท้จริงของคุณยังไม่เป็นปัญหา R ปัญหาของคุณอยู่ในการอธิบายสิ่งที่คุณต้องการได้อย่างถูกต้อง คุณควรแก้ไขคำถามของคุณหรือโพสต์คำถามใหม่
Glen_b -Reinstate Monica

คำตอบ:


35

?densityชี้ให้เห็นว่ามันใช้approxเพื่อทำการแก้ไขเชิงเส้นแล้ว ?approxชี้ให้เห็นว่าapproxfunสร้างฟังก์ชั่นที่เหมาะสม:

x <- log(rgamma(150,5))
df <- approxfun(density(x))
plot(density(x))
xnew <- c(0.45,1.84,2.3)
points(xnew,df(xnew),col=2)

ป้อนคำอธิบายรูปภาพที่นี่

โดยใช้การintegrateเริ่มต้นจากระยะทางที่เหมาะสมด้านล่างต่ำสุดในตัวอย่าง (หลาย - พูด 4 หรือ 5, บางที - ของแบนด์วิดท์ที่ใช้ในdfโดยทั่วไปจะทำสำหรับระยะทางที่เหมาะสม), หนึ่งสามารถได้รับการประมาณที่ดีของ cdf df.


สิ่งนี้น่าสนใจ มันดูเหมือนว่าdf(2.3)จะให้ค่าของฟังก์ชั่นความหนาแน่นประมาณที่x=2.3แต่สิ่งที่PDFจะอยู่ใน Mathematica x=2.3จะให้พื้นที่ใต้เส้นโค้งดังกล่าวข้างต้น ฉันไม่แน่ใจเกี่ยวกับเรื่องนี้นี่เป็นเพียงการคาดเดาของฉันคุณสามารถสร้างสิ่งที่ฉันทำใน Mathematica ใหม่ได้หรือไม่
อามิน

ฟังก์ชั่นของฉันด้านบนแสดงให้เห็นถึงการประมาณโดยใช้เคอร์เนลของ "ฟังก์ชันความหนาแน่นของความน่าจะเป็น" "... " ประเมินที่ x " ไม่ว่าคุณต้องการหรือไม่ ถ้าคุณทำไม่ได้คุณต้องอธิบายสิ่งที่คุณไม่ต้องการ - ในแง่สถิติไม่เพียง แต่เป็น 'ทำซ้ำพฤติกรรมนี้'
Glen_b

ฉันคิดว่าฉันตั้งใจผิดและไม่ได้ตั้งใจที่จะส่งเสริมความหนาแน่นนั่นคือความน่าจะเป็นซึ่งไม่ใช่ ฉันไม่ได้ตั้งใจจะทำให้เข้าใจผิดถ้าคุณคิดว่าPDFใน Mathematica ทำสิ่งที่คุณอธิบายไว้ในคำตอบของคุณ (เช่นการหาค่าของฟังก์ชั่นความหนาแน่นสำหรับค่า X ที่กำหนด) จากนั้นฉันคิดว่าฉันได้รับคำตอบ มีเพียงความสับสนมากมายในการใช้คำ!
อามิน

2
จากPDFหน้าเว็บที่ระบุว่าทำอะไรมันจะส่งกลับสิ่งเดียวกันกับที่ฉันทำ แต่วิธีการที่ใช้ในการคำนวณในกรณีนี้มีแนวโน้มที่จะมีความแม่นยำมากกว่า (สำหรับวัตถุประสงค์ดังกล่าวความแม่นยำเพิ่มเติมนั้นมีค่าเพียงเล็กน้อย) สำหรับการอภิปรายของความแตกต่างที่น่าจะเป็น / ความหนาแน่นของบางอย่างให้ดูที่นี่และที่นี่
Glen_b -Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.