คุณต้องใส่ข้อมูล binnedเหล่านี้กับแบบจำลองการกระจายบางอย่างเพื่อให้เป็นวิธีเดียวที่จะคาดการณ์ถึงควอไทล์ส่วนบน
แบบจำลอง
ตามคำนิยามรูปแบบดังกล่าวจะได้รับโดยcadlagฟังก์ชั่นเพิ่มขึ้นจากที่จะ1ความน่าจะเป็นที่จะกำหนดให้กับช่วงเวลาใด ๆคือเพื่อให้เหมาะสมคุณจะต้องวางตำแหน่งของฟังก์ชันที่เป็นไปได้ที่จัดทำดัชนีโดยพารามิเตอร์ (เวกเตอร์) , . สมมติว่ากลุ่มตัวอย่างสรุปกลุ่มคนที่เลือกแบบสุ่มและเป็นอิสระจากประชากรที่อธิบายโดยเฉพาะบางคน (แต่ไม่ทราบ) , ความน่าจะเป็นของกลุ่มตัวอย่าง (หรือความน่าจะเป็น , ) เป็นผลิตภัณฑ์ของแต่ละบุคคล ความน่าจะเป็นในตัวอย่างมันจะเท่ากันF01(a,b]F(b)−F(a)θ{Fθ}FθL
L(θ)=(Fθ(8)−Fθ(6))51(Fθ(10)−Fθ(8))65⋯(Fθ(∞)−Fθ(16))182
เนื่องจากคนมีความน่าจะเป็นที่เกี่ยวข้อง ,มีความน่าจะเป็นและอื่น ๆ51Fθ(8)−Fθ(6)65Fθ(10)−Fθ(8)
การปรับโมเดลให้เหมาะสมกับข้อมูล
ประมาณการสูงสุดโอกาสของเป็นค่าซึ่งจะเพิ่ม (หรือเท่ากันลอการิทึมของ )θLL
การแจกแจงรายได้มักจะเป็นแบบจำลองโดยการแจกแจงแบบปกติ (ดูตัวอย่างเช่นhttp://gdrs.sourceforge.net/docs/PoleStar_TechNote_4.pdf ) กำลังเขียนตระกูลของการแจกแจงแบบปกติคือθ=(μ,σ)
F(μ,σ)(x)=12π−−√∫(log(x)−μ)/σ−∞exp(−t2/2)dt.
สำหรับตระกูลนี้ (และอื่น ๆ อีกมากมาย) มันเป็นเรื่องง่ายที่จะเพิ่มประสิทธิภาพเชิงตัวเลข ตัวอย่างเช่นเราจะเขียนฟังก์ชันเพื่อคำนวณแล้วปรับให้เหมาะสมเพราะค่าสูงสุดของเกิดขึ้นพร้อมกับค่าสูงสุดของและ (ปกติ)ง่ายต่อการคำนวณและมีเสถียรภาพในการทำงานกับตัวเลข:LR
log(L(θ))log(L)Llog(L)
logL <- function(thresh, pop, mu, sigma) {
l <- function(x1, x2) ifelse(is.na(x2), 1, pnorm(log(x2), mean=mu, sd=sigma))
- pnorm(log(x1), mean=mu, sd=sigma)
logl <- function(n, x1, x2) n * log(l(x1, x2))
sum(mapply(logl, pop, thresh, c(thresh[-1], NA)))
}
thresh <- c(6,8,10,12,14,16)
pop <- c(51,65,68,82,78,182)
fit <- optim(c(0,1), function(theta) -logL(thresh, pop, theta[1], theta[2]))
วิธีการแก้ปัญหาในตัวอย่างนี้คือที่พบในค่าθ=(μ,σ)=(2.620945,0.379682)fit$par
การตรวจสอบสมมติฐานรูปแบบ
อย่างน้อยเราต้องการตรวจสอบว่าสิ่งนี้สอดคล้องกับ lognormality ที่คาดเดาได้อย่างไรดังนั้นเราจึงเขียนฟังก์ชันเพื่อคำนวณ :F
predict <- function(a, b, mu, sigma, n) {
n * ( ifelse(is.na(b), 1, pnorm(log(b), mean=mu, sd=sigma))
- pnorm(log(a), mean=mu, sd=sigma) )
มันถูกนำไปใช้กับข้อมูลเพื่อรับประชากร bin ที่ "คาดการณ์"
pred <- mapply(function(a,b) predict(a,b,fit$par[1], fit$par[2], sum(pop)),
thresh, c(thresh[-1], NA))
เราสามารถวาดฮิสโตแกรมของข้อมูลและการคาดคะเนเพื่อเปรียบเทียบกับภาพที่แสดงในแถวแรกของพล็อตเหล่านี้:
เพื่อเปรียบเทียบพวกเราสามารถคำนวณสถิติไคสแควร์ สิ่งนี้มักถูกอ้างถึงการแจกแจงแบบไคสแควร์เพื่อประเมินความสำคัญ :
chisq <- sum((pred-pop)^2 / pred)
df <- length(pop) - 2
pchisq(chisq, df, lower.tail=FALSE)
"ค่า p" ของมีขนาดเล็กพอที่จะทำให้หลายคนรู้สึกว่าไม่พอดี เมื่อมองไปที่แปลงปัญหานั้นจะเน้นไปที่ถังที่ต่ำที่สุด บางทีเทอร์มินัลที่ต่ำกว่าน่าจะเป็นศูนย์? ถ้าในแบบสำรวจเราต้องลดให้เหลือน้อยกว่าเราจะได้ขนาดที่พอดีในแถวล่างของแปลง ค่า p-chi-squared อยู่ที่ซึ่งบ่งชี้ (สมมุติฐานเพราะเราอยู่ในโหมดสำรวจตอนนี้) ว่าสถิตินี้ไม่พบความแตกต่างอย่างมีนัยสำคัญระหว่างข้อมูลและความพอดี0.00876−8630.40
ใช้ความพอดีในการประมาณปริมาณ
ถ้าเรายอมรับก็คือ (1) รายได้มีการกระจายโดยประมาณ lognormally และ (2) ขีด จำกัด ล่างของรายได้น้อยกว่า (พูด ) แล้วการประเมินความน่าจะเป็นสูงสุดคือ =0.405454) การใช้พารามิเตอร์เหล่านี้เราสามารถสลับเพื่อให้ได้เปอร์เซ็นต์ไทล์ :3 ( μ , σ ) ( 2.620334 , 0.405454 ) F 75 th63(μ,σ)(2.620334,0.405454)F75th
exp(qnorm(.75, mean=fit$par[1], sd=fit$par[2]))
ค่าเป็น18.06(หากเราไม่เปลี่ยนขีด จำกัด ล่างของถังขยะแรกจากเป็นเราจะได้รับแทน )6 3 17.7618.066317.76
ขั้นตอนเหล่านี้และรหัสนี้สามารถนำไปใช้โดยทั่วไป ทฤษฎีความน่าจะเป็นสูงสุดที่สามารถนำไปใช้ในการคำนวณช่วงความมั่นใจรอบควอไทล์ที่สามหากเป็นที่น่าสนใจ