วิธีการคำนวณความสัมพันธ์ใน r ด้วยค่าที่หายไป


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

วิธีที่ 1: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์โดยมีค่าที่หายไป

 cor(x, y, use=' complete.obs ')

วิธีที่ 2: คำนวณเมทริกซ์สหสัมพันธ์โดยมีค่าที่หายไป

 cor(df, use=' pairwise.complete.obs ')

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

ตัวอย่างที่ 1: คำนวณค่าสัมประสิทธิ์สหสัมพันธ์โดยมีค่าที่หายไป

สมมติว่าเรากำลังพยายามใช้ฟังก์ชัน cor() เพื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์แบบเพียร์สันระหว่างตัวแปรสองตัวเมื่อมีค่าที่หายไป:

 #create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)

#attempt to calculate correlation coefficient between x and y
cor(x, y)

[1] NA

ฟังก์ชัน cor() ส่งคืน NA เนื่องจากเราไม่ได้ระบุวิธีจัดการกับค่าที่หายไป

เพื่อหลีกเลี่ยงปัญหานี้ เราสามารถใช้อาร์กิวเมนต์ use=’complete.obs’ เพื่อให้ R รู้ว่าจะใช้เฉพาะการสังเกตแบบคู่เมื่อมีทั้งสองค่าอยู่:

 #create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)

#calculate correlation coefficient between x and y
cor(x, y, use=' complete.obs ')

[1] -0.4888749

ค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างตัวแปรทั้งสองกลายเป็น -0.488749

โปรดทราบว่าฟังก์ชัน cor() ใช้เฉพาะทั้งสองชุดค่าผสมโดยมีค่าอยู่เมื่อคำนวณค่าสัมประสิทธิ์สหสัมพันธ์

ตัวอย่างที่ 2: คำนวณเมทริกซ์สหสัมพันธ์ที่มีค่าที่ขาดหายไป

สมมติว่าเรากำลังพยายามใช้ฟังก์ชัน cor() เพื่อสร้าง เมทริกซ์สหสัมพันธ์ สำหรับกรอบข้อมูลที่มีตัวแปรสามตัวเมื่อมีค่าที่หายไป:

 #create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
                 y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
                 z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))

#attempt to create correlation matrix for variables in data frame
cor(df)

   X Y Z
x 1 NA NA
y NA 1 NA
z NA NA 1

ฟังก์ชัน cor() ส่งคืน NA ในหลายตำแหน่ง เนื่องจากเราไม่ได้ระบุวิธีจัดการกับค่าที่หายไป

เพื่อหลีกเลี่ยงปัญหานี้ เราสามารถใช้อาร์กิวเมนต์ use=’pairwise.complete.obs’ เพื่อให้ R รู้ว่าจะใช้เฉพาะการสังเกตแบบคู่เมื่อมีทั้งสองค่าอยู่:

 #create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
                 y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
                 z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))

#create correlation matrix for variables using only pairwise complete observations
cor(df, use=' pairwise.complete.obs ')

           X Y Z
x 1.0000000 -0.4888749 0.1311651
y -0.4888749 1.0000000 -0.1562371
z 0.1311651 -0.1562371 1.0000000

ค่าสัมประสิทธิ์สหสัมพันธ์สำหรับการรวมตัวแปรแต่ละคู่ในฐานข้อมูลจะแสดงขึ้นแล้ว

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

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

วิธีค้นหาค่า P ของสัมประสิทธิ์สหสัมพันธ์ในหน่วย R
วิธีการคำนวณความสัมพันธ์ของ Spearman ใน R
วิธีการคำนวณความสัมพันธ์แบบเลื่อนใน R

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

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