ทำไมการทดสอบเพื่อความเป็นปกติจะปฏิเสธสมมติฐานว่าง?


12

การทดสอบ Kolgomorov-Smirnov การทดสอบ Shapiro ฯลฯ ทั้งหมดล้วน แต่ปฏิเสธสมมติฐานที่ว่าการแจกแจงเป็นเรื่องปกติ แต่เมื่อฉันพล็อตควอนไทล์ปกติและฮิสโตแกรมข้อมูลก็เป็นปกติอย่างชัดเจน อาจเป็นเพราะพลังของการทดสอบสูงหรือไม่

ขนาดตัวอย่างประมาณ 650 ดังนั้นอย่างน้อยหนึ่งในการทดสอบเหล่านี้จึงไม่สามารถปฏิเสธสมมติฐานว่างได้?

ผล:

           Kolmogorov-Smirnov    D          0.05031          Pr > D       <0.010
           Cramer-von Mises      W-Sq       0.30003          Pr > W-Sq    <0.005
           Anderson-Darling      A-Sq       1.66965          Pr > A-Sq    <0.005
           Chi-Square            Chi-Sq  3250.43596     18   Pr > Chi-Sq  <0.001

1
ยินดีต้อนรับสู่เว็บไซต์ พลังอาจจะเป็นปัญหาอย่างแน่นอน คุณสามารถโพสต์ผลลัพธ์ของคุณเพื่อที่เราจะได้เฉพาะเจาะจงมากขึ้น?
StasK

1
แทบจะเป็นไปไม่ได้ที่จะประเมินความเป็นมาตรฐานด้วยความแม่นยำมากโดยการดูฮิสโตแกรมหรือควอนไทล์ การทดสอบสามแบบแรกเหล่านี้วัดการเบี่ยงเบนในพล็อตความน่าจะเป็น (พล็อต qq ปกติ) ดังนั้นพล็อตนั้นจะมีลักษณะเชิงเส้นอย่างไร
whuber

คำตอบ:


13

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

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

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


ต่อจากคำตอบของคุณฉันโพสต์คำถามเกี่ยวกับสิ่งที่ถือเป็นดัชนีที่ดีของความไม่เป็นมาตรฐาน: stats.stackexchange.com/questions/16646/ ......ความคิดใด ๆ
Jeromy Anglim

เกี่ยวกับทุกสิ่งในโลกที่ถูกวัดปริมาณ: ไม่สามารถแยกข้อมูลที่ไม่ต่อเนื่องตามปกติได้หรือไม่
xmjx

ความคิดเห็นเพิ่มเติมอีกประการเกี่ยวกับปัญหาคอมพิวเตอร์: โปรดทราบว่ากลไกที่มักใช้ในการจัดเก็บตัวเลขทศนิยมในคอมพิวเตอร์มีความแตกต่างกันในช่วงตัวเลขขนาดเล็กและตัวเลขขนาดใหญ่ ดังนั้นความแตกต่างขั้นต่ำระหว่างกับหมายเลขที่คอมพิวเตอร์สามารถจัดเก็บได้นั้นจะเล็กกว่าสำหรับตัวเลขขนาดเล็กและใหญ่กว่าสำหรับตัวเลขขนาดใหญ่ สำหรับคอมพิวเตอร์ 100000.1 และ 100000.2 อาจเหมือนกันในขณะที่ 0.1 และ 0.2 ไม่ใช่ (เป็นเพียงตัวอย่าง - ในโลกแห่งความจริงมันไม่เลวเลย)
xmjx

@xmjx: ข้อมูลที่ไม่ต่อเนื่องสามารถกระจายได้ตามปกติประมาณซึ่งหมายความว่ามันใกล้พอสำหรับเกือบทุกวัตถุประสงค์ในทางปฏิบัติ อย่างไรก็ตามในทางทฤษฎีแล้วการกระจายแบบไม่ต่อเนื่องจะล้มเหลวในการทดสอบความเป็นไปได้บางอย่างถ้าขนาดตัวอย่างใหญ่พอ การกระจายตัวแบบปกตินั้นต่อเนื่องและไม่มีทางแก้ไข
dsimcha

@dsimcha แต่การแจกแจงแบบปกติเป็นเพียงฟังก์ชันความหนาแน่นของความน่าจะเป็นซึ่งสามารถทำนายจำนวนการสังเกตในถังขยะที่กำหนดของตัวแปรที่ไม่ต่อเนื่อง ดังนั้นฉันจะเข้าใจถ้าคุณบอกว่า "ไม่มีตัวแปรจริงที่แจกแจงแบบปกติและนี่คือเหตุผลที่การทดสอบปกติจะล้มเหลวในบางจุด" แต่สำหรับ "ข้อมูลแยกไม่สามารถกระจายได้ตามปกติเพราะมันไม่ต่อเนื่อง" ฉันต้องการอ้างอิง ฉันสนใจสิ่งนั้นจริงๆ ไม่ต้องการเริ่มการต่อสู้ที่นี่
xmjx

4

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

ด้วยการทดสอบสมมติฐานเรามักจะสนใจในการค้นหาการทดสอบ "ที่มีประสิทธิภาพ" ซึ่งเป็นการทดสอบที่สามารถค้นหาการเบี่ยงเบนเล็กน้อยจากสมมติฐานว่างได้โดยมีข้อมูลน้อยที่สุดเท่าที่จะทำได้

ลองใช้การทดสอบด้วยขนาดย่อย 20, 50, 100, 200 และดูว่าขนาดการทดสอบเริ่มปฏิเสธ มันง่ายที่จะดูว่าฮิสโตแกรมนั้นสมมาตรและเป็นรูประฆังหรือไม่ แต่หางของการแจกแจงนั้นยากต่อการประเมินด้วยตา อาจมีข้อมูลผิดปกติในข้อมูลที่ทำให้การทดสอบปฏิเสธหรือไม่ หากมีให้ดูว่าเกิดอะไรขึ้นเมื่อคุณตัดออก


ขอบคุณสำหรับคำตอบ. จุดประสงค์คือการทดสอบว่าสารตกค้างเป็นปกติหรือไม่ ฉันเดาว่าจะดูพล็อตเชิงควอนไทมธรรมดาและดูว่ามันอยู่บน y = x เป็นทางออกที่ดีที่สุดหรือไม่?
Robbie

@ Robbie หากคุณสนใจที่จะลองคิดดูว่าสิ่งที่เหลืออยู่ของคุณเป็นเรื่องปกติหรือเปล่า การทดสอบทางสถิติของการแจกแจงนั้นไม่จำเป็นสำหรับสิ่งนั้น - ดังที่ได้มีการระบุไว้มันจะรับการเบี่ยงเบนใด ๆ จากภาวะปกติแม้จะไม่ได้สำคัญอะไรก็ตาม
Fomite

@EpiGrad ฉันไม่เห็นด้วย การทดสอบความปกติมีพลังงานต่ำอย่างน่าสังเกต ดูคำตอบของฉันด้านบน การแก้ไขในอีกแง่หนึ่งการถดถอยนั้นค่อนข้างแข็งแกร่งต่อความไม่ปกติดังนั้นฉันจึงเห็นด้วยว่าถ้ามันดูเป็นเรื่องปกติ
David J. Harris

@ David J. Harris: "พลังงานต่ำฉาวโฉ่" สำหรับขนาดตัวอย่าง 650? ตรงข้ามกับทุกสิ่งที่ฉันได้อ่านหรือมีประสบการณ์ คุณมีการอ้างอิงหรือไม่?
whuber

@ DavidJ.Harris ฉันคิดว่าแก่นแท้พลังงานต่ำหรือความสำคัญที่น่าเกรงขามเนื่องจากกลุ่มตัวอย่างจำนวนมากการออกกำลังกายทั้งหมดไม่จำเป็นสำหรับการตรวจสอบตามปกติของสมมติฐานเชิงบรรทัดฐาน
Fomite

3

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

หากการแจกแจงเป็นเรื่องปกติจริง ๆ แล้วมันก็ควรจะผ่านการทดสอบเหล่านี้ดังเช่นในตัวอย่าง R ต่อไปนี้ที่ผ่านการทดสอบอย่างใดอย่างหนึ่ง

> require(nortest)
> 
> set.seed(1)
> dat <- rnorm(650,mean=100, sd=5)
> 
> ad.test(dat)

        Anderson-Darling normality test

data:  dat 
A = 0.439, p-value = 0.2924

> cvm.test(dat)

        Cramer-von Mises normality test

data:  dat 
W = 0.0882, p-value = 0.1619

> lillie.test(dat)

        Lilliefors (Kolmogorov-Smirnov) normality test

data:  dat 
D = 0.0334, p-value = 0.08196

> pearson.test(dat)

        Pearson chi-square normality test

data:  dat 
P = 37.96, p-value = 0.035

> sf.test(dat)

        Shapiro-Francia normality test

data:  dat 
W = 0.9978, p-value = 0.5186

> shapiro.test(dat)

        Shapiro-Wilk normality test

data:  dat 
W = 0.9981, p-value = 0.675

คุณอาจต้องการที่จะทำ qqplot และถ้ามันใกล้พอที่จะเป็นเส้นตรงคุณอาจตัดสินใจที่จะปฏิบัติต่อมันให้ใกล้เคียงกับมาตรฐานเพื่อจุดประสงค์ของคุณ มันค่อนข้างจะขึ้นอยู่กับว่าจุดประสงค์เหล่านั้นคืออะไร


จุดประสงค์สำหรับการทดสอบเพื่อดูว่าส่วนที่เหลือเป็นปกติในการถดถอยเชิงเส้น
Robbie

1
@Robbie เห็นได้ชัดว่าพวกเขาไม่ได้ แต่พวกเขาอาจจะใกล้พอสำหรับเรื่องนี้ไม่สำคัญมาก ลอง qqplot
เฮนรี่

ผลลัพธ์สี่เหลี่ยมจัตุรัสของ Pearson ดูเหมือนว่าข้อมูลจะไม่ได้รับการแจกแจงตามปกติ แค่พูด. จะทำอย่างไรกับผลลัพธ์ดังกล่าว?
xmjx

@xmjx: ไม่มาก - หากคุณใช้เกณฑ์ 0.05 คุณไม่ควรแปลกใจหากคุณได้รับผลบวกปลอม 5%
เฮนรี่

@ เฮนรี่ฉันรู้ สิ่งที่ฉันหมายถึง: การเลือกการทดสอบภาวะปกติมีความเป็นไปได้ที่จะเลือกอย่างใดอย่างหนึ่งที่จะพูดว่า "สำคัญ" ดังนั้นจะดีกว่าถ้าใช้แบตเตอรี่แล้ว ... อะไรนะ? เฉลี่ย? ไปด้วยคะแนนเสียงส่วนใหญ่?
xmjx

2

ให้ฉันไม่เห็นด้วยกับคำตอบจาก dsimcha: "การทดสอบตามปกติคือเสียเวลาและตัวอย่างของคุณแสดงให้เห็นว่าทำไม" การทดสอบตามปกติไม่เคยเสียเวลาคุณสามารถเรียนรู้จากข้อมูลของคุณได้เสมอ นอกจากนี้ยังมีเงื่อนไขบางอย่างที่คุณต้องทดสอบก่อนที่จะทำการวิเคราะห์บางอย่าง (เช่น ANOVA, การถดถอย, ฯลฯ ) ตัวอย่างขนาดใหญ่สัมพัทธ์จะดีกว่าที่จะทดสอบด้วยพล็อต (QQplot, ฮิสโตแกรม) ในกรณีเช่นนี้การสร้างภาพข้อมูลให้มากขึ้นเกี่ยวกับพฤติกรรมหลายรูปแบบและอื่น ๆ

การวิเคราะห์ความแปรปรวนและการถดถอยนั้นมีความทนทานต่อความไม่ปกติเมื่อจัดการกับกลุ่มตัวอย่างที่มีขนาดใหญ่ แต่ข้อมูลประเภทหลักที่ทำให้เกิดปัญหาคือตัวอย่างข้อมูลต่อเนื่องหลายรูปแบบ

ด้วยขนาดตัวอย่างที่เล็กการทดสอบ Kolgomorov-Smirnov จึงเป็นตัวเลือกที่ดีที่สุดเนื่องจากความไวของมัน


1

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

นี่คือตัวอย่างรวดเร็ว ฉันสร้างส่วนผสมของสองบรรทัดฐานซึ่งหมายความว่าจะถูกคั่นด้วย sd ทั้งหมด

set.seed(1)
reps = replicate(
  10000, 
  shapiro.test(c(rnorm(325, mean = 0), rnorm(325, mean = 1)))$p.value
)
mean(reps < .05)
[1] 0.0525

พิจารณาว่ามันจะ "ตรวจจับ" การเบี่ยงเบนจากค่าปกติ 5% ของเวลาแม้ว่าจะเป็นเรื่องปกติจริง ๆ นั่นก็ไม่ได้น่าประทับใจมาก

นี่เป็นอีกตัวอย่าง: ฉันเพิ่มเสียงที่เหมือนกันทั่วทั้งขนาดความเบี่ยงเบนมาตรฐานสองช่วง อันนี้ค่อนข้างไม่ธรรมดาอย่างเห็นได้ชัด

set.seed(1)
reps = replicate(
  10000, 
  shapiro.test(rnorm(650) + 2 * runif(650))$p.value
)
mean(reps < .05)
[1] 0.0523

อีกครั้งพลังงานต่ำมากสำหรับการออกเดินทางครั้งใหญ่จากปกติ

คุณแน่ใจหรือไม่ว่าคุณอ่าน qqplot ถูกต้อง? คุณช่วยอัพโหลดมันได้ไหมเพื่อเราจะได้เห็นมัน?

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


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