ในตัวอย่าง Linear Regression ใน R แบบปฏิบัติจริงนี้ เราจะมาเรียนรู้วิธีทำนายประสิทธิภาพการใช้เชื้อเพลิงของรถยนต์จากน้ำหนัง เราจะเริ่มต้นด้วยการนำเข้าข้อมูล (dataset) การคำนวณ Linear Regression ด้วยฟังก์ชัน lm() การทำนายผลลัพธ์ด้วยฟังก์ชัน predict() และการเรียนรู้วิธีแปลผลการวิเคราะห์ Linear Regression ใน R
แม้ว่าเราจะใช้ข้อมูลตัวอย่าง mtcars ที่มีอยู่ใน R เพื่อสาธิตวิธีคำนวณ Linear Regression แต่คุณสามารถใช้ R datasets ใดก็ได้ที่มีตัวแปรอิสระและตัวแปรตาม
มาเริ่มกันเลย เปิดโปรแกรม R หรือ R Studio บนคอมพิวเตอร์ของคุณ
ขั้นตอนที่ 1: นำเข้าข้อมูล (Dataset) ใน R
ในการเริ่มต้น เราต้องมีชุดข้อมูลสำหรับการวิเคราะห์ เราจะใช้ชุดข้อมูล mtcars ซึ่งประกอบด้วยน้ำหนักและประสิทธิภาพการใช้เชื้อเพลิง (วัดเป็น miles per gallon) ของรถยนต์แต่ละรุ่น ชุดข้อมูลนี้มีอยู่แล้วใน R และสามารถโหลดได้ด้วยฟังก์ชัน data() พิมพ์คำสั่งต่อไปนี้ใน R shell:
data(mtcars)
คุณสามารถดูข้อมูลได้โดยใช้ฟังก์ชัน head() ซึ่งจะแสดงแถวแรกๆ ของชุดข้อมูล:
head(mtcars)
ผลลัพธ์จะมีลักษณะดังนี้:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
อย่างที่คุณเห็น ชุดข้อมูลประกอบด้วยข้อมูล mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear และ carb ของรถยนต์แต่ละยี่ห้อ
ขั้นตอนที่ 2: คำนวณ Linear Regression ใน R
เมื่อโหลดข้อมูลเรียบร้อยแล้ว เราสามารถเริ่มทำ Linear Regression ได้ โดยใช้ฟังก์ชัน lm()
model <- lm(mpg ~ wt, data = mtcars)
Argument แรกของฟังก์ชันคือ formula ที่ระบุโมเดล ในกรณีนี้ โมเดลกำลังทำนาย mpg (ประสิทธิภาพการใช้เชื้อเพลิง) โดยใช้ wt (น้ำหนัก) ส่วน argument data = mtcars ระบุว่าชุดข้อมูลที่จะใช้คือ mtcars
ขั้นตอนที่ 3: ดูสรุปผลของ Regression Model
เมื่อ fit โมเดลเสร็จแล้ว คุณสามารถดูสรุปผลของโมเดลได้โดยใช้ฟังก์ชัน summary() การสรุปนี้จะรวมข้อมูลเกี่ยวกับ residuals, coefficients, R-squared value, F-statistic และ p-value
นี่คือตัวอย่างวิธีดูสรุปผลของโมเดล:
summary(model)
สรุปผลของ Linear Regression Model จะมีลักษณะดังนี้:
Call:
lm(formula = mpg ~ wt, data = mtcars)
Residuals:
Min 1Q Median 3Q Max
-4.5275 -2.3279 -0.4826 1.2975 6.8724
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 37.2853 1.8245 20.527 < 2e-16 ***
wt -5.3445 0.5534 -9.659 1.29e-10 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.576 on 30 degrees of freedom
Multiple R-squared: 0.7528 Adjusted R-squared: 0.7448
F-statistic: 93.59 on 1 and 30 DF, p-value: 1.294e-10
ขั้นตอนที่ 4: การอ่านค่าและแปลผล Linear Regression
เมื่อได้ผลลัพธ์แล้ว มาทำความเข้าใจวิธีการแปลผล Linear Regression สำหรับตัวอย่างของเรา:
-
ผลลัพธ์แสดงว่า coefficient สำหรับ wt (น้ำหนัก) มีค่า -5.34447 และค่า intercept คือ 37.28536
-
P-value มีค่าน้อยกว่า 0.05 แสดงว่าความสัมพันธ์ระหว่างน้ำหนักและประสิทธิภาพการใช้เชื้อเพลิงมีนัยสำคัญทางสถิติ
-
ค่า R-squared ซึ่งวัดสัดส่วนของความแปรปรวนในตัวแปรตามที่ถูกอธิบายโดยตัวแปรอิสระ มีค่า 0.7528 นี่หมายความว่าน้ำหนักของรถยนต์สามารถอธิบาย75.28% ของความแปรปรวนในประสิทธิภาพการใช้เชื้อเพลิง
ขั้นตอนที่ 5: พล็อต Regression Line ในกราฟ
การใช้เพียงตัวเลขโดยไม่มีกราฟภาพดูไม่น่าสนใจ คุณสามารถพล็อต Regression Line ในกราฟโดยใช้ package ggplot2 ใน R นี่คือคู่มือเกี่ยวกับวิธีติดตั้ง packages ใน R หากคุณต้องการ
library(ggplot2)
# Create a scatterplot
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point() +
geom_smooth(method='lm', se=FALSE) +
ggtitle("Linear Regression of mpg vs wt")
Scatterplot แสดงความสัมพันธ์ระหว่างน้ำหนัก (wt) และประสิทธิภาพการใช้เชื้อเพลิง (mpg) เส้นตรงแสดง Regression Line ซึ่งเป็นเส้นที่พอดีที่สุดกับข้อมูล (best fit line)
เส้นนี้มาจาก coefficients ของ Linear Regression Model ที่เรา fit ไว้ก่อนหน้านี้ Scatterplot ให้ภาพแสดงความสัมพันธ์ระหว่างตัวแปรอิสระและตัวแปรตาม และ Regression Line สรุปความสัมพันธ์นั้น
ขั้นตอนที่ 6: ใช้ Linear Regression ใน R เพื่อทำนายผลลัพธ์
เมื่อเรามี Linear Regression Model ใน R แล้ว ก็ถึงเวลาใช้มันเพื่อทำนายผลลัพธ์โดยใช้ syntax ต่อไปนี้:
predictions <- predict(lm_fit, newdata=data.frame(wt=c(3,4)))
predictions
ผลลัพธ์ของโค้ดนี้จะเป็นค่าที่ทำนายของ mpg สำหรับค่าสองค่าของ wt โดยที่:
-
predictคือฟังก์ชันใน R ที่ใช้สำหรับทำนายผลลัพธ์จาก Linear Regression Model -
lm_fitคือ object ที่เก็บ fitted Linear Regression Model ในตัวอย่างนี้ lm_fit คือ object ที่สร้างจากการวิเคราะห์ Linear Regression โดยใช้ฟังก์ชัน lm -
newdataคือ argument ที่ระบุค่าของตัวแปรอิสระ (ในกรณีนี้คือwt) ที่คุณต้องการทำนายผลลัพธ์ ค่าต่างๆ ถูกส่งผ่านเป็น data frame โดยใช้ฟังก์ชัน data.frame ค่าของwtในตัวอย่างนี้คือc(3,4)หมายความว่าการทำนายจะทำสำหรับรถยนต์ที่มีน้ำหนัก 3,000 และ 4,000 ปอนด์ตามลำดับ
ผลลัพธ์ของโค้ดนี้จะเป็นค่าที่ทำนายของตัวแปรตาม (ในกรณีนี้คือ mpg) โดยอิงจากค่าของตัวแปรอิสระที่ระบุใน newdata
และนี่คือผลลัพธ์สำหรับการทำนายโดยใช้ฟังก์ชันข้างต้น:
1 2
22.56687 20.80958
ตัวเลขเหล่านี้แสดงค่าที่ทำนายของ mpg สำหรับรถยนต์สองคันที่มีน้ำหนัก 3,000 ปอนด์และ 4,000 ปอนด์ตามลำดับ ค่าที่ทำนายสามารถแปลความหมายได้ดังนี้:
-
สำหรับรถยนต์ที่มีน้ำหนัก 3,000 ปอนด์ Linear Regression Model ทำนายค่า 22.57 mpg
-
สำหรับรถยนต์ที่มีน้ำหนัก 4,000 ปอนด์ Linear Regression Model ทำนายค่า 20.81 mpg
สิ่งสำคัญที่ต้องทราบคือ ค่าเหล่านี้เป็นเพียงการทำนายและอาจไม่ตรงกับค่า mpg ที่แท้จริงของรถยนต์เหล่านี้ อย่างไรก็ตาม Linear Regression Model ช่วยให้เราประมาณความสัมพันธ์ระหว่าง wt และ mpg และทำนายผลลัพธ์ตามความสัมพันธ์นี้ได้ ซึ่งมีประโยชน์สำหรับการตัดสินใจและการทำนายในการใช้งานจริง
หากจำเป็น คุณสามารถเปรียบเทียบค่าที่ทำนายกับค่าจริงได้โดยใช้ฟังก์ชัน cbind() เพื่อรวมค่าที่ทำนายและค่าจริงเข้าไว้ใน data frame เดียวกันด้วย syntax ต่อไปนี้:
results <- cbind(predictions, mtcars$mpg)
คำถามที่พบบ่อย
สรุป
การทำ Linear Regression ใน R เป็นวิธีที่มีประสิทธิภาพในการทำความเข้าใจความสัมพันธ์ระหว่างตัวแปรและการทำนายผลลัพธ์ ในบทความนี้ เราได้แสดงวิธีการทำ Linear Regression ใน R โดยใช้ฟังก์ชัน lm() วิธีการทำนายผลลัพธ์โดยใช้ฟังก์ชัน predict() และวิธีการแปลผลลัพธ์
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Linear Regression สามารถศึกษาการวิเคราะห์ Linear Regression ใน SPSS หรือเรียนรู้เกี่ยวกับตัวแปรอิสระและตัวแปรตาม เพื่อทำความเข้าใจพื้นฐานที่สำคัญของการวิเคราะห์ Regression