ฉันต้องการตรวจสอบR
ว่าข้อมูลของฉันตรงกับการแจกแจงแบบล็อกปกติหรือแบบ Pareto ฉันจะทำสิ่งนั้นได้อย่างไร อาจks.test
ช่วยให้ฉันทำเช่นนั้นได้ แต่ฉันจะรับพารามิเตอร์และสำหรับการกระจาย Pareto สำหรับข้อมูลของฉันได้อย่างไร
ฉันต้องการตรวจสอบR
ว่าข้อมูลของฉันตรงกับการแจกแจงแบบล็อกปกติหรือแบบ Pareto ฉันจะทำสิ่งนั้นได้อย่างไร อาจks.test
ช่วยให้ฉันทำเช่นนั้นได้ แต่ฉันจะรับพารามิเตอร์และสำหรับการกระจาย Pareto สำหรับข้อมูลของฉันได้อย่างไร
คำตอบ:
... ฉันเพิ่งสังเกตเห็นว่าคุณมีแท็ก 'การถดถอย' ที่นั่น หากคุณมีปัญหาการถดถอยคุณไม่สามารถดูการกระจายการตอบสนองแบบไม่แปรผันเพื่อประเมินรูปร่างการกระจายได้เนื่องจากมันขึ้นอยู่กับรูปแบบของ x หากคุณถามเกี่ยวกับการตรวจสอบว่าตัวแปรตอบสนอง (y) ในการถดถอยบางประเภทหรือ GLM มี lognormal หรือการแจกแจงแบบพาเรโตที่ค่าเฉลี่ยแตกต่างกันระหว่างการสังเกตนั่นเป็นคำถามที่แตกต่างกันมาก ในส่วนที่เหลือ) คุณช่วยอธิบายได้ไหมถ้ามันเป็นปัญหาการถดถอย คำตอบของฉันในปัจจุบันเกี่ยวข้องกับการประเมินค่า lognormal หรือ Pareto
คุณมีคำถามที่แตกต่างกันบ้าง
จะตรวจสอบได้อย่างไรว่าข้อมูลของฉันตรงกับการกระจายปกติหรือไม่
บันทึกและทำแผน QQ ปกติ ดูและดูว่าการแจกจ่ายนั้นใกล้เคียงกับจุดประสงค์ของคุณหรือไม่
ฉันต้องการตรวจสอบใน R หากข้อมูลของฉันตรงกับการแจกแจงแบบปกติหรือแบบพาเรโต้
ยอมรับตั้งแต่เริ่มต้นว่าไม่มีการแจกแจงที่คุณพิจารณาว่าเป็นคำอธิบายที่แน่นอน คุณกำลังมองหาโมเดลที่สมเหตุสมผล ซึ่งหมายความว่าในขนาดตัวอย่างขนาดเล็กคุณจะไม่ปฏิเสธตัวเลือกที่เหมาะสม แต่ด้วยขนาดตัวอย่างที่เพียงพอคุณจะปฏิเสธพวกเขาทั้งหมด ที่แย่กว่านั้นด้วยขนาดตัวอย่างที่มีขนาดใหญ่คุณจะปฏิเสธแบบจำลองที่เหมาะสมอย่างสมบูรณ์ในขณะที่ขนาดตัวอย่างขนาดเล็กคุณจะไม่ปฏิเสธแบบจำลองที่ไม่ดี
การทดสอบดังกล่าวไม่ได้เป็นพื้นฐานที่มีประโยชน์สำหรับการเลือกแบบจำลอง
กล่าวโดยย่อคำถามที่คุณสนใจเช่น "สิ่งที่เป็นแบบอย่างที่ดีสำหรับข้อมูลนี้ซึ่งอยู่ใกล้พอที่จะทำให้การอนุมานมีประโยชน์ในภายหลัง" ไม่ได้ตอบง่ายๆโดยการทดสอบความพอดี อย่างไรก็ตามในบางกรณีความดีของสถิติพอดี(แทนที่จะตัดสินใจออกมาจากกฎการปฏิเสธขึ้นอยู่กับพวกเขา) ในบางกรณีอาจให้สรุปที่เป็นประโยชน์ของการขาดแบบใดแบบหนึ่งโดยเฉพาะ
บางทีการทดสอบอาจช่วยให้ฉันทำอย่างนั้นได้
ไม่ก่อนมีปัญหาที่ฉันเพิ่งพูดถึงและข้อที่สองการทดสอบ Kolmogorov-Smirnov เป็นการทดสอบสำหรับการแจกแจงแบบระบุอย่างสมบูรณ์ คุณไม่มีหนึ่งในนั้น
ในหลายกรณีฉันแนะนำ QQ แปลงและแสดงที่คล้ายกัน สำหรับกรณีที่เอียงเล็กน้อยแบบนี้ฉันมักจะทำงานกับบันทึก (จากนั้น lognormal จะดูเป็นปกติในขณะที่ Pareto จะมีลักษณะเป็นเลขชี้กำลัง) ในขนาดตัวอย่างที่เหมาะสมก็ไม่ยากที่จะแยกแยะด้วยสายตาไม่ว่าข้อมูลจะดูปกติมากกว่าเลขยกกำลังหรือในทางกลับกัน ก่อนอื่นให้รับข้อมูลจริงจากแต่ละอันแล้วทำการพล็อตพวกนั้นอย่างน้อยครึ่งโหลเพื่อให้คุณรู้ว่ามันเป็นอย่างไร
ดูตัวอย่างด้านล่าง
ฉันจะรับพารามิเตอร์อัลฟาและเคสำหรับการกระจายพาเรโตสำหรับข้อมูลของฉันได้อย่างไร
หากคุณต้องการประเมินพารามิเตอร์ใช้ MLE ... แต่อย่าทำเช่นนั้นเพื่อตัดสินใจระหว่าง Pareto กับ lognormal
คุณสามารถบอกได้ว่าอันไหนของ lognormal และ Pareto อันไหน?
โปรดทราบว่าด้วยการแปลง QQ ปกติ (คอลัมน์ซ้าย) เราจะเห็นบันทึกของชุดข้อมูล 1 ให้เป็นเส้นตรงพอสมควรขณะที่ชุดข้อมูล 2 แสดงความเบ้ที่ถูกต้อง ด้วยพล็อตชี้แจงบันทึกของชุดข้อมูล 1 แสดงหางขวาที่เบากว่าเอ็กซ์โพเนนเชียลในขณะที่ชุดข้อมูล 2 แสดงเป็นเส้นตรงพอสมควร ไม่ผิดปกติกับหางหนาเป็นเหตุผลหนึ่งที่คุณต้องพล็อตตัวอย่างที่มีขนาดใกล้เคียงกับตัวอย่างที่คุณกำลังดูเพื่อดูว่าพล็อตมีลักษณะอย่างไร)
รหัสที่ใช้ทำสี่แปลงดังกล่าว:
qqnorm(log(y1))
qqnorm(log(y2))
qex <- function(x) qexp((rank(x)-.375)/(length(x)+.25))
plot(qex(y1),log(y1))
plot(qex(y2),log(y2))
หากคุณมีปัญหาประเภทการถดถอย - หนึ่งที่ค่าเฉลี่ยเปลี่ยนแปลงกับตัวแปรอื่น ๆ คุณสามารถประเมินความเหมาะสมของสมมติฐานการกระจายในสถานะที่มีแบบจำลองที่เหมาะสมสำหรับค่าเฉลี่ย
นี่เป็นเรื่องของการเลือกแบบจำลองโดยสมมติว่าคุณแค่ต้องการตรวจสอบว่าข้อมูลของคุณมาจากแบบจำลองหนึ่งแบบหรือแบบอื่นและเป้าหมายของคุณไม่ได้ค้นหาแบบจำลองที่ถูกต้องท่ามกลางมหาสมุทรมิติที่ไม่มีที่สิ้นสุดของการแจกแจง ดังนั้นตัวเลือกหนึ่งคือใช้AIC (ซึ่งสนับสนุนโมเดลที่มีค่า AIC ต่ำที่สุดและฉันจะไม่พยายามอธิบายที่นี่) ดูตัวอย่างต่อไปนี้ด้วยข้อมูลจำลอง:
rm(list=ls())
set.seed(123)
x = rlnorm(100,0,1)
hist(x)
# Loglikelihood and AIC for lognormal model
ll1 = function(param){
if(param[2]>0) return(-sum(dlnorm(x,param[1],param[2],log=T)))
else return(Inf)
}
AIC1 = 2*optim(c(0,1),ll1)$value + 2*2
# Loglikelihood and AIC for Pareto model
dpareto=function(x, shape=1, location=1) shape * location^shape / x^(shape + 1)
ll2 = function(param){
if(param[1]>0 & min(x)> param[2]) return(-sum(log(dpareto(x,param[1],param[2]))))
else return(Inf)
}
AIC2 = 2*optim(c(1,0.01),ll2)$value + 2*2
# Comparison using AIC, which in this case favours the lognormal model.
c(AIC1,AIC2)
อาจจะเป็น fitdistr ()?
require(MASS)
hist(x, freq=F)
fit<-fitdistr(x,"log-normal")$estimate
lines(dlnorm(0:max(x),fit[1],fit[2]), lwd=3)
> fit
meanlog sdlog
3.8181643 0.1871289
> dput(x)
c(52.6866903145324, 39.7511298620398, 50.0577071855833, 33.8671245370402,
51.6325665911116, 41.1745418750494, 48.4259060939127, 67.0893697776377,
35.5355051232044, 44.6197404834786, 40.5620805256951, 39.4265590077884,
36.0718655240496, 56.0205581625823, 52.8039852992611, 46.2069383488226,
36.7324212941395, 44.7998046213554, 47.9727885542368, 36.3400338997286,
32.7514839453244, 50.6878893947656, 53.3756089181472, 39.4769689441593,
38.5432770167907, 62.350999487007, 44.5140171935881, 47.4026606915147,
57.3723511479393, 64.4041641945078, 51.2286815562554, 60.4921839777139,
71.6127652225805, 40.6395409719693, 48.681036613906, 52.3489622656967,
46.6219563536878, 55.6136160469819, 62.3003761050482, 42.7865905767138,
50.2413659137295, 45.6327941365187, 46.5621907725798, 48.9734785224035,
40.4828649022511, 59.4982559591637, 42.9450436744074, 66.8393386407167,
40.7248473206552, 45.9114242834839, 34.2671010054407, 45.7569869970351,
50.4358523486278, 44.7445606782492, 44.4173298921541, 41.7506552050873,
34.5657344132409, 47.7099864540652, 38.1680974794929, 42.2126680994737,
35.690599714042, 37.6748157160789, 35.0840798650981, 41.4775827114607,
36.6503753230464, 42.7539062488003, 39.2210050689652, 45.9364763482558,
35.3687017955285, 62.8299659875044, 38.1532612008011, 39.9183076516292,
59.0662388169057, 47.9032427690417, 42.4419580084314, 45.785859495192,
59.5254284342724, 47.9161476636566, 32.6868959277799, 30.1039453246766,
37.7606323857655, 35.754797368422, 35.5239777126187, 43.7874313667592,
53.0328404605954, 37.4550326357314, 42.7226751172495, 44.898430515261,
59.7229655935187, 41.0701258705001, 42.1672231656919, 60.9632847841197,
60.3690132883734, 45.6469334940722, 39.8300067022836, 51.8185235060234,
44.908828102875, 50.8200011497451, 53.7945569828737, 65.0432670527801,
49.0306734716282, 35.9442821219144, 46.8133296904456, 43.7514416949611,
43.7348972849838, 57.592040060118, 48.7913517211383, 38.5555058596449
)