Quantiles จากการรวมการแจกแจงแบบปกติ


13

ฉันมีข้อมูลเกี่ยวกับการแจกแจงสัดส่วนมิติของร่างกาย (เช่นช่วงไหล่) สำหรับเด็กทุกวัย สำหรับแต่ละอายุและมิติฉันมีค่าเฉลี่ยส่วนเบี่ยงเบนมาตรฐาน (ฉันมีแปดควอนไทล์ แต่ฉันไม่คิดว่าฉันจะได้สิ่งที่ฉันต้องการจากพวกเขา)

สำหรับแต่ละมิติฉันต้องการประเมินจำนวนเฉพาะของการกระจายความยาว หากฉันสมมติว่าแต่ละมิติมีการกระจายตามปกติฉันสามารถทำได้ด้วยค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐาน มีสูตรสวยที่ฉันสามารถใช้เพื่อรับค่าที่เกี่ยวข้องกับ quantile เฉพาะของการกระจายหรือไม่

การย้อนกลับค่อนข้างง่าย: สำหรับค่าใดค่าหนึ่งให้หาพื้นที่ทางด้านขวาของค่าสำหรับการแจกแจงปกติ (อายุ) แต่ละค่า รวมผลลัพธ์และหารด้วยจำนวนการแจกแจง

ปรับปรุง : นี่คือคำถามเดียวกันในรูปแบบกราฟิก สมมติว่าการแจกแจงสีแต่ละแบบนั้นปกติจะกระจาย คำถามเดียวกันในรูปแบบกราฟิก

นอกจากนี้ฉันเห็นได้ชัดว่าสามารถลองความยาวหลาย ๆ แบบและเปลี่ยนมันต่อไปเรื่อย ๆ จนกว่าฉันจะได้ค่าที่ใกล้เคียงกับควอนไทล์ที่ต้องการเพื่อความแม่นยำของฉัน ฉันสงสัยว่ามีวิธีที่ดีกว่านี้หรือไม่ และถ้านี่เป็นแนวทางที่ถูกต้องมีชื่อไหม?


3
คุณจะถามว่ามีสูตรง่ายๆในการคำนวณ quantiles ของส่วนผสมของการกระจายปกติ? ในแอปพลิเคชั่นนี้คุณจะถามหาควอไทล์ (พูด) ของช่วงไหล่โดยไม่คำนึงถึงอายุตามพารามิเตอร์เฉพาะอายุ นี่เป็นการตีความที่ถูกต้องหรือไม่?
whuber

คำตอบ:


16

น่าเสียดายที่มาตรฐานปกติ (ซึ่งคนอื่น ๆ สามารถกำหนดได้เนื่องจากปกติเป็นฟังก์ชันระดับครอบครัว) ที่ไม่ยอมรับรูปแบบปิด (เช่น 'สูตรสวย') สิ่งที่ใกล้เคียงที่สุดกับรูปแบบปิดคือฟังก์ชั่นควอไทล์มาตรฐานปกติคือฟังก์ชั่น,ที่เป็นไปตามสมการเชิงอนุพันธ์w

d2wdp2=w(dwdp)2

และเงื่อนไขเริ่มต้นและปี่} ในสภาพแวดล้อมการคำนวณส่วนใหญ่มีฟังก์ชั่นที่คำนวณตัวเลขฟังก์ชันควอนไทล์ปกติ ใน R คุณจะต้องพิมพ์w(1/2)=0w(1/2)=2π

qnorm(p, mean=mu, sd=sigma)

ที่จะได้รับ 'quantile ของวันที่การจัดจำหน่ายpN(μ,σ2)


แก้ไข:ด้วยความเข้าใจที่ถูกต้องของปัญหาข้อมูลจะถูกสร้างขึ้นจากส่วนผสมของบรรทัดฐานเพื่อให้ความหนาแน่นของข้อมูลที่สังเกตได้คือ:

p(x)=iwipi(x)

ที่และแต่ละเป็นบางหนาแน่นปกติที่มีค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐาน{i} มันตามมาว่า CDF ของข้อมูลที่สังเกตได้คือiwi=1pi(x)μiσi

F(y)=yiwipi(x)dx=iwiypi(x)=iwiFi(y)

ที่เป็น CDF ปกติที่มีค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐาน{i} การรวมเข้าด้วยกันและการรวมกันสามารถรวมเข้าด้วยกันเพราะอินทิกรัลเหล่านี้มีขอบเขต จำกัด CDF นี้ต่อเนื่องและง่ายพอที่จะคำนวณบนคอมพิวเตอร์ดังนั้น CDF,ซึ่งเป็นที่รู้จักกันในชื่อฟังก์ชัน quantile สามารถคำนวณได้โดยทำการค้นหาบรรทัด ฉันเริ่มต้นที่ตัวเลือกนี้เพราะไม่มีสูตรง่าย ๆ สำหรับฟังก์ชันควอนไทล์ของส่วนผสมของนอร์มซึ่งเป็นฟังก์ชั่นของควอไทล์ของการแจกแจงส่วนประกอบFi(x)μiσiF1

รหัส R ต่อไปนี้จะคำนวณเป็นตัวเลขโดยใช้การแบ่งออกเป็นสองส่วนสำหรับการค้นหาบรรทัด ฟังก์ชั่น F_inv () เป็นฟังก์ชั่น quantile คุณจำเป็นต้องจัดหาเวกเตอร์ที่มีในแต่ละและ quantile ที่จะแก้ไขสำหรับพีF1wi,μi,σip

# evaluate the function at the point x, where the components 
# of the mixture have weights w, means stored in u, and std deviations
# stored in s - all must have the same length.
F = function(x,w,u,s) sum( w*pnorm(x,mean=u,sd=s) )

# provide an initial bracket for the quantile. default is c(-1000,1000). 
F_inv = function(p,w,u,s,br=c(-1000,1000))
{
   G = function(x) F(x,w,u,s) - p
   return( uniroot(G,br)$root ) 
}

#test 
# data is 50% N(0,1), 25% N(2,1), 20% N(5,1), 5% N(10,1)
X = c(rnorm(5000), rnorm(2500,mean=2,sd=1),rnorm(2000,mean=5,sd=1),rnorm(500,mean=10,sd=1))
quantile(X,.95)
    95% 
7.69205 
F_inv(.95,c(.5,.25,.2,.05),c(0,2,5,10),c(1,1,1,1))
[1] 7.745526

# data is 20% N(-5,1), 45% N(5,1), 30% N(10,1), 5% N(15,1)
X = c(rnorm(5000,mean=-5,sd=1), rnorm(2500,mean=5,sd=1),
      rnorm(2000,mean=10,sd=1), rnorm(500, mean=15,sd=1))
quantile(X,.95)
     95% 
12.69563 
F_inv(.95,c(.2,.45,.3,.05),c(-5,5,10,15),c(1,1,1,1))
[1] 12.81730

2
ย่อหน้าสุดท้ายของคำถามบอกเป็นนัยถึงสิ่งอื่นที่กำลังถูกขอ ฉันขอคำชี้แจง
whuber

ลางสังหรณ์ของ whuber นั้นถูกต้อง ฉันเพิ่มรูปภาพเพื่อทำให้คำถามสับสนน้อยลง
โทมัสเลวีน

1
ขณะนี้มีแพ็คเกจ R เพื่อจัดการกับปัญหานี้ดูstats.stackexchange.com/questions/390931/ …
Christoph Hanck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.