REGRESI POLINOMIAL
Regresi Polinomial merupakan metode regresi yang digunakan untuk memodelkan hubungan antara variabel independen (X) dan variabel dependen (Y) dengan menggunakan fungsi polinomial. Regresi polinomial dapat digunakan untuk memprediksi nilai Y berdasarkan nilai X dan dapat melibatkan lebih dari satu variabel prediktor dengan ordo yang dapat ditentukan.
Perbedaan Regresi Polinomial dengan Regresi Linear
- Regresi linear memiliki bentuk fungsi linear
- Regresi linear sederhana: \(Y=a+bX\)
- Regresi linear berganda: \(Y=a+b_1X_1+b_2X_2+⋯+b_nX_n\)
- Regresi polinomial memiliki bentuk fungsi polinomial
- Regresi polinomial orde satu, satu variabel: \(Y=a+b_1X_1+b_2X_2+⋯+b_nX_n\)
- dll
Uji Asumsi
Asumsi yang harus dipenuhi ketika menggunakan metode regresi polinomial yaitu:
- Asumsi Normalitas
- Asumsi Heteroskedastisitas
- Asumsi Autokorelasi
- Asumsi Multikolinearitas
Contoh Kasus
Data yang digunakan dalam analisis ini adalah data GDP per-capita (X) dan Life expectancy (Y)
Memuat Data
library(readxl)## Warning: package 'readxl' was built under R version 4.2.3
data= read_excel('C:/Users/ACER/Downloads/Data.xlsx')
data## # A tibble: 50 × 2
## Life_expectancy GDP_per_capita
## <dbl> <dbl>
## 1 76.5 11006
## 2 82.8 25742
## 3 65.4 1076
## 4 67 4146
## 5 81.7 33995
## 6 78.2 9110
## 7 71.2 9313
## 8 71.2 8971
## 9 71.9 3708
## 10 68.7 2235
## # … with 40 more rows
# Melihat ringkasan statistik deskriptif
summary(data)## Life_expectancy GDP_per_capita
## Min. :48.40 Min. : 456
## 1st Qu.:64.55 1st Qu.: 1600
## Median :72.00 Median : 7510
## Mean :70.87 Mean :16690
## 3rd Qu.:78.75 3rd Qu.:24389
## Max. :82.80 Max. :82027
Melihat Hubungan Antar Variabel
# Visualisasi hubungan antara variabel independen dan dependen
library(ggplot2)
# Variabel GDP dengan orde 1
ggplot(data, aes(x = GDP_per_capita, y = Life_expectancy)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ poly(x, 1), se = FALSE) +
labs(title = "Relationship between GDP and Life_expectancy", x = "GDP_per_capita", y = "Life_expectancy")# Variabel GDP dengan orde 2
ggplot(data, aes(x = GDP_per_capita, y = Life_expectancy)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ poly(x, 2), se = FALSE) +
labs(title = "Relationship between GDP and Life_expectancy", x = "GDP_per_capita", y = "Life_expectancy")# Variabel GDP dengan orde 3
ggplot(data, aes(x = GDP_per_capita, y = Life_expectancy)) +
geom_point() +
geom_smooth(method = "lm", formula = y ~ poly(x, 3), se = FALSE) +
labs(title = "Relationship between GDP and Life_expectancy", x = "GDP_per_capita", y = "Life_expectancy")dari ketiga plot tersebut, terlihat bahwa antara variabel GDP_per_capita dan Life_expectancy memiliki hubungan yang positif. Pada orde 2 dan orde 3 terlihat bahwa plot berbentuk kurva menyerupai lengkungan yang menunjukkan fungsi kuadratik ataupun kubik.
Membangun Model
# Model polinomial orde 2
model12 <- lm(Life_expectancy ~ poly(GDP_per_capita, 2), data = data)
summary(model12)##
## Call:
## lm(formula = Life_expectancy ~ poly(GDP_per_capita, 2), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.8837 -2.5075 0.4153 3.9513 8.4629
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 70.8680 0.7729 91.697 < 2e-16 ***
## poly(GDP_per_capita, 2)1 42.4304 5.4649 7.764 5.74e-10 ***
## poly(GDP_per_capita, 2)2 -22.9598 5.4649 -4.201 0.000118 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.465 on 47 degrees of freedom
## Multiple R-squared: 0.6238, Adjusted R-squared: 0.6078
## F-statistic: 38.97 on 2 and 47 DF, p-value: 1.053e-10
# Model polinomial orde 3
model13 <- lm(Life_expectancy ~ poly(GDP_per_capita, 3), data = data)
summary(model13)##
## Call:
## lm(formula = Life_expectancy ~ poly(GDP_per_capita, 3), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -14.7301 -2.0967 0.6581 3.0573 7.0824
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 70.8680 0.7276 97.400 < 2e-16 ***
## poly(GDP_per_capita, 3)1 42.4304 5.1449 8.247 1.28e-10 ***
## poly(GDP_per_capita, 3)2 -22.9598 5.1449 -4.463 5.20e-05 ***
## poly(GDP_per_capita, 3)3 13.6395 5.1449 2.651 0.011 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.145 on 46 degrees of freedom
## Multiple R-squared: 0.6737, Adjusted R-squared: 0.6524
## F-statistic: 31.65 on 3 and 46 DF, p-value: 2.973e-11
Uji Asumsi
1. Uji Normalitas
# Uji normalitas residual
shapiro.test(residuals(model12))##
## Shapiro-Wilk normality test
##
## data: residuals(model12)
## W = 0.94402, p-value = 0.0195
shapiro.test(residuals(model13))##
## Shapiro-Wilk normality test
##
## data: residuals(model13)
## W = 0.91409, p-value = 0.001452
Karena hasil uji normalitas dari model polinomial orde 2 dengan p-value = 0.0195 dan orde 3 dengan p-value= 0.001452 sama-sama < 0.05 maka menunjukkan hasil bahwa data tidak memenuhi asumsi normalitas (tidak berdistribusi normal).
2. Uji Asumsi Heteroskedastisitas
library(lmtest)## Warning: package 'lmtest' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
bptest(model12)##
## studentized Breusch-Pagan test
##
## data: model12
## BP = 2.8541, df = 2, p-value = 0.24
bptest(model13)##
## studentized Breusch-Pagan test
##
## data: model13
## BP = 3.4943, df = 3, p-value = 0.3215
Karena p-value menunjukkan nilai > 0.05, maka asumsi heteroskedastisitas terpenuhi.
3. Uji Asumsi Autokorelasi
library(lmtest)
# Check for autocorrelation using Durbin-Watson test
dwtest(model12)##
## Durbin-Watson test
##
## data: model12
## DW = 2.2537, p-value = 0.8136
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(model13)##
## Durbin-Watson test
##
## data: model13
## DW = 2.4557, p-value = 0.9453
## alternative hypothesis: true autocorrelation is greater than 0
Karena p-value menunjukkan nilai > 0.05, maka asumsi autokorelasi terpenuhi.
Disini tidak dilakukan uji asumsi multikolinearitas karena variabel independen yang digunakan hanya satu.Karena, uji multikolinearitas dilakukan untuk mengetahui apakah terdapat korelasi tinggi antara dua atau lebih variabel independen dalam model regresi.
Ringkasan Model Polinomial
# Ringkasan model polinomial orde 2
summary(model12)##
## Call:
## lm(formula = Life_expectancy ~ poly(GDP_per_capita, 2), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.8837 -2.5075 0.4153 3.9513 8.4629
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 70.8680 0.7729 91.697 < 2e-16 ***
## poly(GDP_per_capita, 2)1 42.4304 5.4649 7.764 5.74e-10 ***
## poly(GDP_per_capita, 2)2 -22.9598 5.4649 -4.201 0.000118 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.465 on 47 degrees of freedom
## Multiple R-squared: 0.6238, Adjusted R-squared: 0.6078
## F-statistic: 38.97 on 2 and 47 DF, p-value: 1.053e-10
# Ringkasan model polinomial orde 3
summary(model13)##
## Call:
## lm(formula = Life_expectancy ~ poly(GDP_per_capita, 3), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -14.7301 -2.0967 0.6581 3.0573 7.0824
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 70.8680 0.7276 97.400 < 2e-16 ***
## poly(GDP_per_capita, 3)1 42.4304 5.1449 8.247 1.28e-10 ***
## poly(GDP_per_capita, 3)2 -22.9598 5.1449 -4.463 5.20e-05 ***
## poly(GDP_per_capita, 3)3 13.6395 5.1449 2.651 0.011 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.145 on 46 degrees of freedom
## Multiple R-squared: 0.6737, Adjusted R-squared: 0.6524
## F-statistic: 31.65 on 3 and 46 DF, p-value: 2.973e-11
Persamaan Regresi Polinomial Orde 2
\[\\Y = 70.8680 + 42.4304X − 22.9598X^2\ \] ## Persamaan Regresi Polinomial Orde 3 \[\\Y = 70.8680 + 42.4304X − 22.9598^2 + 13.6395^3\ \]
Interpretasi
Interpretasi Ringkasan Model Polinomial Orde 2
- Dari ringkasan model polinomial orde 2, diketahui bahwa nilai p-value komponen linear = 5.74e-10, yang berarti ada hubungan signifikan antara komponen linear GDP per kapita dan Life expectancy. Serta terdapat hubungan positif (42.4304) yang menunjukkan bahwa ketika GDP percapita meningkat, maka Life expectancy juga mengalami peningkatan.
- Dari ringkasan model polinomial orde 2, diketahui bahwa nilai p-value komponen kuadrat = 0.000118, yang berarti ada hubungan signifikan antara komponen linear GDP per kapita dan Life expectancy. Serta terdapat hubungan negatif (-22.9598) yang menunjukkan bahwa ketika GDP percapita meningkat, maka Life expectancy mengalami penurunan.
- Multiple R-squared: 0.6238 menunjukkan bahwa sekitar 62.38% dari variabilitas dalam variabel Life expectancy dapat dijelaskan oleh model yang menggunakan GDP percapita sebagai prediktor.
- P-value = 1.053e-10 menunjukkan model yang sangat signifikan.
Interpretasi Ringkasan Model Polinomial Orde 3
- Dari ringkasan model polinomial orde 3, diketahui bahwa nilai p-value komponen linear = 1.28e-10, yang berarti ada hubungan signifikan antara komponen linear GDP per kapita dan Life expectancy. Serta terdapat hubungan positif (42.4304) yang menunjukkan bahwa ketika GDP percapita meningkat, maka Life expectancy juga mengalami peningkatan.
- Dari ringkasan model polinomial orde 3, diketahui bahwa nilai p-value komponen kuadrat = 5.20e-05, yang berarti ada hubungan signifikan antara komponen linear GDP per kapita dan Life expectancy. Serta terdapat hubungan negatif (-22.9598) yang menunjukkan bahwa ketika GDP percapita meningkat, maka Life expectancy mengalami penurunan.
- Dari ringkasan model polinomial orde 3, diketahui bahwa nilai p-value komponen kubik = 0.011, yang berarti ada hubungan signifikan antara komponen linear GDP per kapita dan Life expectancy. Serta terdapat hubungan positif (13.6395) yang menunjukkan bahwa ketika GDP percapita meningkat, maka Life expectancy juga mengalami peningkatan
- Multiple R-squared: 0.6737 menunjukkan bahwa sekitar 67.37% dari variabilitas dalam variabel Life expectancy dapat dijelaskan oleh model yang menggunakan GDP percapita sebagai prediktor.
- P-value = 2.973e-11 menunjukkan model yang sangat signifikan.