R - QQPlot: วิธีการดูว่ามีการกระจายข้อมูลตามปกติ


47

ฉันได้วางแผนเรื่องนี้หลังจากที่ฉันทำการทดสอบตามปกติ การทดสอบแสดงให้เห็นว่ามีโอกาสที่ประชากรจะกระจายตัวตามปกติ อย่างไรก็ตามวิธีดู "พฤติกรรม" นี้ในพล็อตนี้ป้อนคำอธิบายรูปภาพที่นี่

UPDATE

ฮิสโตแกรมอย่างง่ายของข้อมูล:

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

UPDATE

การทดสอบของ Shapiro-Wilk พูดว่า:

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


6
การแก้ไขอีกครั้ง: ผลการทดสอบ SW ปฏิเสธสมมติฐานที่ว่าข้อมูลเหล่านี้ถูกดึงออกมาจากการแจกแจงปกติทั่วไปอย่างอิสระ: ค่า p มีค่าน้อยมาก (สิ่งนี้ชัดเจนทั้งใน qq plot ซึ่งมีหางซ้ายสั้นและฮิสโตแกรมซึ่งแสดงความเบ้บวก) สิ่งนี้ชี้ให้คุณตีความการทดสอบที่ผิด เมื่อคุณตีความการทดสอบอย่างถูกต้องคุณยังมีคำถามถามหรือไม่
whuber

4
ในทางตรงกันข้ามซอฟต์แวร์และแผนการทั้งหมดมีความสอดคล้องในสิ่งที่พวกเขาพูด พล็อต qq และฮิสโตแกรมแสดงวิธีการเฉพาะซึ่งข้อมูลเบี่ยงเบนจากค่าปกติ การทดสอบ SW บอกว่าข้อมูลดังกล่าวไม่น่าจะมาจากการแจกแจงแบบปกติ
whuber

1
ทำไมพล็อตถึงบอกว่ามันไม่ปกติของมันกระจาย qqplot สร้างเส้นตรงและฮิสโตแกรมมีลักษณะการกระจายแบบปกติหรือไม่ ฉันไม่เข้าใจเลย (
Le Max

7
พล็อต qq ชัดเจนไม่ตรงและฮิสโทแกรมชัดเจนไม่สมมาตร (ซึ่งอาจเป็นพื้นฐานที่สุดของเกณฑ์หลายอย่างที่ฮิสโทแกรมกระจายตามปกติจะต้องเป็นไปตาม) คำตอบของ Sven Hohensteinอธิบายถึงวิธีการอ่าน qq plot
whuber

1
คุณอาจพบว่ามีประโยชน์ในการสร้างเวกเตอร์ปกติที่มีขนาดเท่ากันและสร้าง QQ-plot พร้อมกับข้อมูลปกติเพื่อดูว่ามันอาจปรากฏขึ้นได้อย่างไรเมื่อข้อมูลจริงมาจากการแจกแจงแบบปกติ
StatsStudent

คำตอบ:


31

" การทดสอบแสดงให้เห็นว่ามันเป็นไปได้ว่ามีประชากรที่มีการกระจายตามปกติ. "

ไม่มี มันไม่ได้แสดงให้เห็นว่า

การทดสอบสมมติฐานไม่ได้บอกคุณว่ามีแนวโน้มว่าเป็นโมฆะ ในความเป็นจริงคุณสามารถเดิมพัน null นี้เป็นเท็จ

พล็อต QQ ไม่ได้ให้การบ่งชี้ที่ชัดเจนว่าไม่ใช่เรื่องธรรมดา อาจมีหางซ้ายสั้นกว่าที่คุณคาดไว้เล็กน้อย แต่มันก็ไม่สำคัญอะไรนัก

ฮิสโตแกรมตาม - อาจไม่พูดมากนัก มันยังบอกใบ้ที่หางซ้ายสั้นกว่าเล็กน้อย แต่ดูที่นี่

การกระจายประชากรของข้อมูลของคุณนั้นไม่ได้เป็นไปตามปกติ อย่างไรก็ตามพล็อต QQ แสดงให้เห็นว่าปกติอาจเป็นเรื่องที่ดีพอสมควร

หากขนาดตัวอย่างไม่เล็กเกินไปการขาดการปฏิเสธของชาปิโร่ - วิลก์อาจจะพูดเหมือนกันมาก

อัปเดต: การแก้ไขเพื่อรวมค่า p Shapiro-Wilk จริงเป็นสิ่งสำคัญเพราะในความเป็นจริงที่ระบุว่าคุณจะปฏิเสธค่า null ในระดับที่มีความหมายทั่วไป การทดสอบนั้นบ่งชี้ว่าข้อมูลของคุณไม่ได้กระจายตามปกติและความเบ้เล็กน้อยที่บ่งชี้โดยแปลงน่าจะเป็นสิ่งที่จะถูกหยิบขึ้นมาโดยการทดสอบ สำหรับขั้นตอนทั่วไปที่อาจสันนิษฐานกฎเกณฑ์ของตัวแปรเอง (ตัวอย่างหนึ่งการทดสอบ t-test เป็นสิ่งที่อยู่ในใจ) สิ่งที่ดูเหมือนว่าจะเป็นกลุ่มตัวอย่างที่มีขนาดใหญ่พอสมควร ทั้งหมด - หนึ่งในปัญหาของการทดสอบแบบพอดีคือมีแนวโน้มที่จะปฏิเสธเมื่อมันไม่สำคัญ (เมื่อขนาดของกลุ่มตัวอย่างมีขนาดใหญ่พอที่จะตรวจจับแบบไม่ธรรมดาบางอย่าง) ในทำนองเดียวกันพวกเขามีแนวโน้มที่จะล้มเหลวที่จะปฏิเสธเมื่อมันเป็นเรื่องสำคัญที่สุด (เมื่อขนาดตัวอย่างมีขนาดเล็ก)


ในความเป็นจริงสิ่งนี้ทำให้ฉันเข้าใจผิดคำสั่งของ OP: ฉันคิดว่าเขาพูดไม่น่า โปรดทราบว่าฉันไม่เห็นด้วยกับคุณเล็กน้อย: ในขณะที่การทดสอบโดยปกติจะบอกคุณว่าการสังเกตเป็นไปได้ยากเพียงใดหากสมมุติฐานว่างเป็นจริงเราใช้สิ่งนี้เพื่อยืนยันว่าเนื่องจากเราได้รับการสังเกตนี้
Nick Sabbe

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

2
เกี่ยวกับผู้ที่แข็งแกร่งที่สุดที่คุณสามารถพูดได้ว่าเป็นเช่น - "พล็อต QQ มีความสอดคล้องกับบรรทัดฐานอย่างสมเหตุสมผล แต่หางซ้ายนั้นค่อนข้างสั้น" สั้น "มีข้อบ่งชี้ความเบ้เบา ๆ "
Glen_b

37

หากมีการกระจายข้อมูลตามปกติคะแนนในพล็อต QQ-normal จะอยู่ในแนวเส้นตรง คุณสามารถเพิ่มบรรทัดนี้ให้กับพล็อต QQ ของคุณด้วยคำสั่งqqline(x)ซึ่งxเป็นเวกเตอร์ของค่า

ตัวอย่างของการแจกแจงแบบปกติและไม่ธรรมดา:

การแจกแจงแบบปกติ

set.seed(42)
x <- rnorm(100)

พล็อต QQ-normal พร้อมบรรทัด:

qqnorm(x); qqline(x)

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

ความเบี่ยงเบนจากเส้นตรงมีค่าน้อยที่สุด นี่บ่งชี้ว่าการแจกแจงแบบปกติ

ฮิสโตแกรม:

hist(x)

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

การแจกแจงแบบไม่ปกติ (แกมมา)

y <- rgamma(100, 1)

พล็อต QQ- ปกติ:

qqnorm(y); qqline(y)

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

จุดต่าง ๆ นั้นมีรูปร่างที่ชัดเจนมากกว่าเส้นตรง

ฮิสโตแกรมยืนยันความไม่ปกติ การกระจายไม่ใช่รูประฆัง แต่เบ้เชิงบวก (กล่าวคือจุดข้อมูลส่วนใหญ่อยู่ในครึ่งล่าง) ฮิสโทแกรมของการแจกแจงแบบปกติแสดงความถี่สูงสุดในศูนย์กลางของการแจกแจง

hist(y)

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


ฉันพบว่าการใส่ช่วงความมั่นใจลงใน qqplot นั้นมีประโยชน์ ไม่มีอะไรที่เป็น "สมบูรณ์แบบ" ปกติและขนาดตัวอย่างสามารถขับได้ว่ามีบางสิ่งที่ไม่แน่นอนและยังอยู่ในสภาวะปกติ
EngrStudent - Reinstate Monica

@EngrStudent คุณมีรหัสที่จะแบ่งปันเพื่อรวมช่วงความมั่นใจใน qqplot หรือไม่?
danno

1
@danno ลองใช้qqPlotฟังก์ชั่นในcarแพ็คเกจ
Sven Hohenstein

@danno - ดูที่ "qqPlot" ในไลบรารี "รถยนต์" มันมีมาพักหนึ่งแล้วและฉันก็ไม่ได้ทำ มันเพิ่มช่วงความมั่นใจ คุณยังสามารถระบุการกระจายฐานสำหรับการแจกแจงแบบไม่ปกติบางอย่างได้ มันอยู่ในคำตอบของฉันด้านล่าง
EngrStudent - Reinstate Monica

1
ฉันคิดว่ามันน่าจะดีกว่าสำหรับมือใหม่เช่นกันที่จะชี้ให้เห็นว่าจุดต่างๆนั้นต้องอยู่ในแนวเส้นตรงสำหรับข้อสมมติเกี่ยวกับกฎเกณฑ์ปกติในการตรวจสอบ approximately
StatsStudent

23

เครื่องมือบางอย่างสำหรับการตรวจสอบความถูกต้องของข้อสันนิษฐานของความปกติใน R

library(moments)
library(nortest)
library(e1071)

set.seed(777)
x <- rnorm(250,10,1)

# skewness and kurtosis, they should be around (0,3)
skewness(x)
kurtosis(x)

# Shapiro-Wilks test
shapiro.test(x)

# Kolmogorov-Smirnov test
ks.test(x,"pnorm",mean(x),sqrt(var(x)))

# Anderson-Darling test
ad.test(x)

# qq-plot: you should observe a good fit of the straight line
qqnorm(x)
qqline(x)

# p-plot: you should observe a good fit of the straight line
probplot(x, qdist=qnorm)

# fitted normal density
f.den <- function(t) dnorm(t,mean(x),sqrt(var(x)))
curve(f.den,xlim=c(6,14))
hist(x,prob=T,add=T)

11

ในขณะที่คุณควรตรวจสอบด้วยสายตาว่าสัญชาตญาณของคุณตรงกับผลการทดสอบบางอย่างหรือไม่คุณไม่สามารถคาดหวังว่าสิ่งนี้จะเป็นเรื่องง่ายทุกครั้ง หากคนที่พยายามตรวจจับ Higgs Boson จะเชื่อมั่นในผลลัพธ์ของพวกเขาหากพวกเขาสามารถประเมินพวกเขาด้วยสายตาพวกเขาจะต้องมีตาที่คมชัดมาก

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

ที่ถูกกล่าวว่า: สำหรับปรกติ QQ-plot ของคุณควรแสดงเป็นเส้นตรง: ฉันจะบอกว่ามันไม่ได้ มีโค้งงอที่ชัดเจนในหางและแม้ใกล้กลางมีความปั่นป่วนบางอย่าง สายตาฉันยังอาจยินดีที่จะพูด (ขึ้นอยู่กับเป้าหมายของการตรวจสอบปกติ) ข้อมูลนี้เป็นปกติ "พอสมควร"

อย่างไรก็ตามโปรดทราบ: เพื่อจุดประสงค์ส่วนใหญ่ที่คุณต้องการตรวจสอบความเป็นปกติคุณต้องใช้ความปกติของวิธีการแทนที่จะเป็นแบบปกติของการสังเกตดังนั้นทฤษฎีบทขีด จำกัด กลางอาจเพียงพอที่จะช่วยคุณได้ นอกจากนี้: ในขณะที่ภาวะปกติมักจะเป็นข้อสันนิษฐานที่คุณต้องตรวจสอบ "อย่างเป็นทางการ" การทดสอบจำนวนมากแสดงให้เห็นว่าค่อนข้างอ่อนไหวต่อการมีสมมติฐานนี้ที่ไม่เป็นจริง


2

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

library(car)

qqPlot(lm(prestige ~ income + education + type, data=Duncan), 
       envelope=.99)

ลิงค์บางส่วน:

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