วิธีสร้างตัวแปรจำลองใน r (ทีละขั้นตอน)


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

ตัวอย่างเช่น สมมติว่าเรามีชุดข้อมูลต่อไปนี้และต้องการใช้ อายุ และ สถานภาพสมรส ในการทำนาย รายได้ :

หากต้องการใช้ สถานภาพการสมรส เป็นตัวแปรทำนายในแบบจำลองการถดถอย เราจำเป็นต้องแปลงให้เป็นตัวแปรจำลอง

เนื่องจากปัจจุบันนี้เป็นตัวแปรเด็ดขาดที่สามารถรับค่าที่แตกต่างกันได้สามค่า (“โสด”, “แต่งงานแล้ว” หรือ “หย่าร้าง”) เราจึงต้องสร้างตัวแปรจำลอง k -1 = 3-1 = 2 ตัว

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

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

ขั้นตอนที่ 1: สร้างข้อมูล

ขั้นแรก เรามาสร้างชุดข้อมูลใน R:

 #create data frame
df <- data. frame (income=c(45000, 48000, 54000, 57000, 65000, 69000,
                          78000, 83000, 98000, 104000, 107000),
                 age=c(23, 25, 24, 29, 38, 36, 40, 59, 56, 64, 53),
                 status=c('Single', 'Single', 'Single', 'Single',
                          'Married', 'Single', 'Married', 'Divorced',
                          'Divorced', 'Married', 'Married'))

#view data frame
df

   income age status
1 45000 23 Single
2 48000 25 Single
3 54000 24 Single
4 57000 29 Single
5 65000 38 Married
6 69000 36 Single
7 78000 40 Married
8 83000 59 Divorced
9 98000 56 Divorced
10 104000 64 Married
11 107000 53 Married

ขั้นตอนที่ 2: สร้างตัวแปรจำลอง

ต่อไป เราสามารถใช้ฟังก์ชัน ifelse() ใน R เพื่อกำหนดตัวแปรจำลอง จากนั้นกำหนดกรอบข้อมูลสุดท้ายที่เราต้องการใช้เพื่อสร้างแบบจำลองการถดถอย:

 #create dummy variables
married <- ifelse (df$status == ' Married ', 1, 0)
divorced <- ifelse (df$status == ' Divorced ', 1, 0)

#create data frame to use for regression
df_reg <- data. frame (income = df$income,
                     age = df$age,
                     married = married,
                     divorced = divorced)

#view data frame
df_reg

   income age married divorced
1 45000 23 0 0
2 48000 25 0 0
3 54000 24 0 0
4 57000 29 0 0
5 65000 38 1 0
6 69000 36 0 0
7 78000 40 1 0
8 83000 59 0 1
9 98000 56 0 1
10 104000 64 1 0
11 107000 53 1 0

ขั้นตอนที่ 3: ดำเนินการการถดถอยเชิงเส้น

สุดท้ายนี้ เราสามารถใช้ฟังก์ชัน lm() เพื่อให้พอดีกับโมเดลการถดถอยเชิงเส้นหลายตัว:

 #create regression model
model <- lm (income ~ age + married + divorced, data=df_reg)

#view regression model output
summary(model)

Call:
lm(formula = income ~ age + married + divorced, data = df_reg)

Residuals:
    Min 1Q Median 3Q Max 
-9707.5 -5033.8 45.3 3390.4 12245.4 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 14276.1 10411.5 1.371 0.21266   
age 1471.7 354.4 4.152 0.00428 **
married 2479.7 9431.3 0.263 0.80018   
divorced -8397.4 12771.4 -0.658 0.53187   
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8391 on 7 degrees of freedom
Multiple R-squared: 0.9008, Adjusted R-squared: 0.8584 
F-statistic: 21.2 on 3 and 7 DF, p-value: 0.0006865

เส้นการถดถอยที่ติดตั้งไว้กลายเป็น:

รายได้ = 14,276.1 + 1,471.7*(อายุ) + 2,479.7*(แต่งงานแล้ว) – 8,397.4*(หย่าร้าง)

เราสามารถใช้สมการนี้เพื่อค้นหารายได้โดยประมาณของแต่ละบุคคลโดยพิจารณาจากอายุและสถานภาพการสมรส ตัวอย่างเช่น บุคคลที่อายุ 35 ปีและแต่งงานแล้วจะมีรายได้ประมาณ $68,264 :

รายได้ = 14,276.2 + 1,471.7*(35) + 2,479.7*(1) – 8,397.4*(0) = 68,264 ดอลลาร์

ต่อไปนี้เป็นวิธีการตีความค่าสัมประสิทธิ์การถดถอยในตาราง:

  • การสกัดกั้น: การสกัดกั้นแสดงถึงรายได้เฉลี่ยของบุคคลคนเดียวที่มีอายุเป็นศูนย์ แน่นอนว่าคุณไม่สามารถมีปีเป็นศูนย์ได้ ดังนั้นจึงไม่มีเหตุผลที่จะตีความค่าตัดแกนด้วยตัวเองในแบบจำลองการถดถอยเฉพาะนี้
  • อายุ: อายุที่เพิ่มขึ้นในแต่ละปีสัมพันธ์กับรายได้ที่เพิ่มขึ้นโดยเฉลี่ย 1,471.70 ดอลลาร์ เนื่องจากค่า p (0.004) น้อยกว่า 0.05 อายุจึงเป็นตัวทำนายรายได้ที่มีนัยสำคัญทางสถิติ
  • แต่งงานแล้ว: คนที่แต่งงานแล้วมีรายได้เฉลี่ยมากกว่า 2,479.70 ดอลลาร์สหรัฐฯ มากกว่าคนเดียว เนื่องจากค่า p (0.800) ไม่น้อยกว่า 0.05 ความแตกต่างนี้จึงไม่มีนัยสำคัญทางสถิติ
  • หย่าร้าง: บุคคลที่หย่าร้างมีรายได้โดยเฉลี่ย 8,397.40 ดอลลาร์น้อยกว่าบุคคลเดียว เนื่องจากค่า p (0.532) ไม่น้อยกว่า 0.05 ความแตกต่างนี้จึงไม่มีนัยสำคัญทางสถิติ

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

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

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