วิธีการทดสอบ cramer-von mises ใน r (พร้อมตัวอย่าง)


การทดสอบ Cramer-Von Mises ใช้เพื่อพิจารณาว่าตัวอย่างมาจาก การกระจายตัวแบบปกติ หรือไม่

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

เราสามารถทำการทดสอบ Cramer-Von Mises ได้อย่างง่ายดายโดยใช้ฟังก์ชัน cvm.test() จากแพ็คเกจ goftest ใน R

ตัวอย่างต่อไปนี้แสดงวิธีใช้ฟังก์ชันนี้ในทางปฏิบัติ

ตัวอย่างที่ 1: การทดสอบ Cramer-Von Mises กับข้อมูลปกติ

รหัสต่อไปนี้แสดงวิธีดำเนินการทดสอบ Cramer-Von Mises บนชุดข้อมูลที่มีขนาดตัวอย่าง n=100:

 library (goftest)

#make this example reproducible
set. seeds (0)

#create dataset of 100 random values generated from a normal distribution
data <- rnorm(100)

#perform Cramer-Von Mises test for normality
cvm. test (data, ' pnorm ')

	Cramer-von Mises test of goodness-of-fit
	Null hypothesis: Normal distribution
	Parameters assumed to be fixed

data:data
omega2 = 0.078666, p-value = 0.7007

ค่า p ของการทดสอบกลายเป็น 0.7007 .

เนื่องจากค่านี้ไม่น้อยกว่า 0.05 เราจึงสามารถสรุปได้ว่าข้อมูลตัวอย่างมาจากประชากรที่มีการกระจายแบบปกติ

ผลลัพธ์นี้ไม่น่าประหลาดใจเนื่องจากเราสร้างข้อมูลตัวอย่างโดยใช้ฟังก์ชัน rnorm() ซึ่งสร้างค่าสุ่มจาก การแจกแจงแบบปกติมาตรฐาน

ที่เกี่ยวข้อง: คำแนะนำเกี่ยวกับ dnorm, pnorm, qnorm และ rnorm ใน R

นอกจากนี้เรายังสามารถสร้างฮิสโตแกรมเพื่อตรวจสอบด้วยสายตาว่าข้อมูลตัวอย่างมีการกระจายตามปกติ:

 hist(data, col=' steelblue ') 

การทดสอบ Shapiro-Wilk เพื่อความปกติใน R

เราจะเห็นได้ว่าการแจกแจงนั้นค่อนข้างเป็นรูประฆังโดยมียอดอยู่ตรงกลางของการแจกแจง ซึ่งเป็นเรื่องปกติของข้อมูลที่แจกแจงแบบปกติ

ตัวอย่างที่ 2: การทดสอบ Cramer-Von Mises กับข้อมูลที่ไม่ปกติ

รหัสต่อไปนี้แสดงวิธีดำเนินการทดสอบ Cramer-Von Mises บนชุดข้อมูลที่มีขนาดตัวอย่าง 100 โดยค่าจะถูกสร้างขึ้นแบบสุ่มจาก การแจกแจงปัวซอง :

 library (goftest)

#make this example reproducible
set. seeds (0)

#create dataset of 100 random values generated from a Poisson distribution
data <- rpois(n=100, lambda=3)

#perform Cramer-Von Mises test for normality
cvm. test (data, ' pnorm ')

	Cramer-von Mises test of goodness-of-fit
	Null hypothesis: Normal distribution
	Parameters assumed to be fixed

data:data
omega2 = 27.96, p-value < 2.2e-16

ค่า p ของการทดสอบมีค่าต่ำมาก

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

ผลลัพธ์นี้ไม่น่าประหลาดใจเนื่องจากเราสร้างข้อมูลตัวอย่างโดยใช้ฟังก์ชัน rpois() ซึ่งสร้างค่าสุ่มจากการแจกแจงแบบปัวซอง

ที่เกี่ยวข้อง: คำแนะนำเกี่ยวกับ dpois, ppois, qpois และ rpois ใน R

นอกจากนี้เรายังสามารถสร้างฮิสโตแกรมเพื่อให้เห็นว่าข้อมูลตัวอย่างไม่ได้กระจายตามปกติ:

 hist(data, col=' coral2 ') 

ฮิสโตแกรมทดสอบชาปิโร-วิลค์ใน R

เราจะเห็นได้ว่าการแจกแจงนั้น เบ้ขวา และไม่มี “รูปทรงระฆัง” ทั่วไปที่เกี่ยวข้องกับการแจกแจงแบบปกติ

ดังนั้น ฮิสโตแกรมของเราจึงตรงกับผลลัพธ์ของการทดสอบ Cramer-Von Mises และยืนยันว่าข้อมูลตัวอย่างของเราไม่ได้มาจากการแจกแจงแบบปกติ

จะทำอย่างไรกับข้อมูลที่ไม่ปกติ

หากชุดข้อมูลที่กำหนด ไม่ได้ รับการแจกแจงตามปกติ เรามักจะดำเนินการแปลงอย่างใดอย่างหนึ่งต่อไปนี้เพื่อให้เป็นเรื่องปกติมากขึ้นได้:

1. การแปลงบันทึก: แปลงตัวแปรการตอบสนองจาก y เป็น log(y)

2. การแปลงรากที่สอง: แปลงตัวแปรตอบสนองจาก y เป็น √y

3. การแปลงรากที่สาม: แปลงตัวแปรการตอบสนองจาก y เป็น y 1/3

โดยการดำเนินการแปลงเหล่านี้ โดยทั่วไปแล้วตัวแปรการตอบสนองจะประมาณค่าการแจกแจงแบบปกติ

โปรดดู บทช่วยสอนนี้ เพื่อดูวิธีดำเนินการแปลงเหล่านี้ในทางปฏิบัติ

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทดสอบภาวะปกติอื่นๆ ใน R:

วิธีทำการทดสอบ Shapiro-Wilk ใน R
วิธีทำการทดสอบ Anderson-Darling ใน R
วิธีทำการทดสอบ Kolmogorov-Smirnov ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *