วิธีดำเนินการทดสอบภาวะปกติหลายตัวแปรใน r


เมื่อเราต้องการทดสอบว่าตัวแปรตัวเดียวมีการแจกแจงตามปกติหรือไม่ เราสามารถสร้าง พล็อต QQ เพื่อแสดงภาพการแจกแจงหรือทำการทดสอบทางสถิติอย่างเป็นทางการ เช่น การทดสอบ Anderson Darling หรือ การทดสอบ Jarque-Bera

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

บทช่วยสอนนี้จะอธิบายวิธีดำเนินการทดสอบภาวะปกติหลายตัวแปรต่อไปนี้สำหรับชุดข้อมูลที่กำหนดใน R:

  • บททดสอบของมาร์เดีย
  • การทดสอบพลังงาน
  • การทดสอบความโด่งและความเบ้หลายตัวแปร

ที่เกี่ยวข้อง: หากเราต้องการระบุค่าผิดปกติในบริบทหลายตัวแปร เราสามารถใช้ Mahalanobis Distance

ตัวอย่าง: การทดสอบของ Mardia ใน R

การทดสอบ Mardia จะกำหนดว่ากลุ่มของตัวแปรเป็นไปตามการแจกแจงแบบปกติหลายตัวแปรหรือไม่ สมมติฐานว่างและทางเลือกของการทดสอบมีดังนี้:

H 0 (null): ตัวแปรเป็นไปตามการแจกแจงแบบปกติหลายตัวแปร

H a (ทางเลือก): ตัวแปร ไม่เป็นไปตาม การแจกแจงแบบปกติหลายตัวแปร

รหัสต่อไปนี้แสดงวิธีการทดสอบใน R โดยใช้แพ็คเกจ QuantPsyc :

 library (QuantPsyc)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mult.norm(data)$ mult.test

Beta-hat kappa p-val
Skewness 1.630474 13.5872843 0.1926626
Kurtosis 13.895364 -0.7130395 0.4758213

ฟังก์ชัน mult.norm() จะทดสอบความเป็นปกติของหลายตัวแปรทั้งในด้านความเบ้และความโด่งของชุดข้อมูล เนื่องจากค่า p ทั้งสองมีค่าไม่น้อยกว่า 0.05 เราจึงไม่สามารถปฏิเสธสมมติฐานว่างของการทดสอบได้ เราไม่มีหลักฐานว่าตัวแปรทั้งสามในชุดข้อมูลของเราไม่เป็นไปตามการแจกแจงแบบหลายตัวแปร

ตัวอย่าง: การทดสอบพลังงานใน R

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

H 0 (null): ตัวแปรเป็นไปตามการแจกแจงแบบปกติหลายตัวแปร

H a (ทางเลือก): ตัวแปร ไม่เป็นไปตาม การแจกแจงแบบปกติหลายตัวแปร

รหัสต่อไปนี้แสดงวิธีการทดสอบใน R โดยใช้แพ็คเกจ พลังงาน :

 library (energy)

#create dataset
set.seed(0)

data <- data.frame(x1 = rnorm(50),
                   x2 = rnorm(50),
                   x3 = rnorm(50))

#perform Multivariate normality test
mvnorm.etest(data, R= 100 )

Energy test of multivariate normality: estimated parameters

data: x, sample size 50, dimension 3, replicates 100
E-statistic = 0.90923, p-value = 0.31

ค่า p ของการทดสอบคือ 0.31 เนื่องจากตัวเลขนี้ไม่น้อยกว่า 0.05 เราจึงล้มเหลวในการปฏิเสธสมมติฐานว่างของการทดสอบ เราไม่มีหลักฐานว่าตัวแปรทั้งสามในชุดข้อมูลของเราไม่เป็นไปตามการแจกแจงแบบหลายตัวแปร

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

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

วิธีสร้างและตีความพล็อต QQ ใน R
วิธีทำการทดสอบ Anderson-Darling ใน R
วิธีทำการทดสอบ Jarque-Bera ใน R
วิธีทำการทดสอบ Shapiro-Wilk ใน R

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

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