Statistika merupakan ilmu yang mempelajari cara mengumpulkan, mengolah, menyajikan, menganalisis, dan menginterpretasikan data. Salah satu metode statistika yang dapat digunakan untuk mengetahui hubungan antara beberapa variabel adalah analisis regresi linear berganda.
Analisis regresi linear berganda digunakan untuk mengetahui hubungan antara satu variabel dependen dengan dua atau lebih variabel independen. Metode ini dapat membantu menjelaskan perubahan suatu variabel berdasarkan perubahan variabel lainnya.
Dalam laporan ini dilakukan analisis regresi linear berganda menggunakan dataset iris yang tersedia pada perangkat lunak R. Dataset iris memuat informasi mengenai karakteristik bunga iris, yaitu panjang sepal, lebar sepal, panjang petal, dan lebar petal.
Variabel panjang petal (Petal.Length) digunakan sebagai variabel dependen, sedangkan panjang sepal (Sepal.Length), lebar sepal (Sepal.Width), dan lebar petal (Petal.Width) digunakan sebagai variabel independen.
Analisis dilakukan menggunakan bahasa pemrograman R melalui R Markdown. Hasil pengolahan data disajikan dalam bentuk tabel, grafik, dan interpretasi hasil pengujian statistik.
Statistika merupakan ilmu yang berkaitan dengan metode pengumpulan, pengolahan, penyajian, analisis, dan interpretasi data. Statistika digunakan untuk memperoleh informasi dan mendukung pengambilan keputusan berdasarkan data.
Analisis regresi merupakan metode statistika yang digunakan untuk mempelajari hubungan antara variabel dependen dengan satu atau lebih variabel independen. Analisis ini dapat digunakan untuk menjelaskan hubungan antarvariabel maupun melakukan prediksi.
Regresi linear berganda merupakan metode analisis yang melibatkan satu variabel dependen dan lebih dari satu variabel independen.
Secara umum, model regresi linear berganda dituliskan sebagai berikut:
\[ Y=\beta_0+\beta_1X_1+\beta_2X_2+\cdots+\beta_kX_k+\varepsilon \]
Keterangan:
Uji F digunakan untuk mengetahui apakah variabel independen secara bersama-sama memiliki hubungan yang signifikan dengan variabel dependen.
Hipotesis:
Keputusan dilakukan berdasarkan nilai p-value. Apabila p-value kurang dari 0,05, maka H0 ditolak.
Uji t digunakan untuk mengetahui hubungan masing-masing variabel independen terhadap variabel dependen dengan memperhatikan variabel independen lainnya.
Hipotesis:
Koefisien determinasi atau \(R^2\) digunakan untuk mengetahui proporsi variasi variabel dependen yang dapat dijelaskan oleh variabel independen dalam model regresi.
Nilai \(R^2\) berada antara 0 sampai 1. Semakin besar nilai tersebut, semakin besar proporsi variasi variabel dependen yang dapat dijelaskan oleh model.
R merupakan bahasa pemrograman yang digunakan untuk komputasi statistika, pengolahan data, dan visualisasi. R Markdown merupakan format dokumen yang memungkinkan penulisan teks, sintaks R, tabel, dan grafik dalam satu dokumen.
Dokumen R Markdown dapat diproses menggunakan fitur Knit untuk menghasilkan laporan dalam format HTML.
Penelitian ini merupakan penelitian kuantitatif dengan pendekatan analisis deskriptif dan regresi linear berganda. Analisis dilakukan terhadap data numerik pada dataset iris.
Data yang digunakan adalah dataset bawaan R, yaitu dataset
iris. Dataset ini terdiri atas 150 pengamatan bunga iris
dengan empat variabel pengukuran utama serta satu variabel kategori
spesies.
Variabel yang digunakan dalam penelitian ini adalah:
| Simbol | Nama Variabel | Keterangan |
|---|---|---|
| Y | Petal.Length | Panjang petal |
| X1 | Sepal.Length | Panjang sepal |
| X2 | Sepal.Width | Lebar sepal |
| X3 | Petal.Width | Lebar petal |
Model regresi yang digunakan adalah:
\[ Petal.Length = \beta_0+\beta_1Sepal.Length+ \beta_2Sepal.Width+ \beta_3Petal.Width+\varepsilon \]
Tahapan analisis yang dilakukan adalah:
Perangkat lunak yang digunakan adalah R dan RStudio dengan dokumen laporan berformat R Markdown.
Langkah pertama adalah memanggil dataset iris yang telah tersedia dalam R.
data(iris)
head(iris)
#> Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1 5.1 3.5 1.4 0.2 setosa
#> 2 4.9 3.0 1.4 0.2 setosa
#> 3 4.7 3.2 1.3 0.2 setosa
#> 4 4.6 3.1 1.5 0.2 setosa
#> 5 5.0 3.6 1.4 0.2 setosa
#> 6 5.4 3.9 1.7 0.4 setosa
Berdasarkan sintaks tersebut, ditampilkan enam pengamatan pertama dari dataset iris.
Jumlah pengamatan dan variabel pada dataset dapat dilihat melalui sintaks berikut.
cat("Jumlah pengamatan:", nrow(iris), "\n")
#> Jumlah pengamatan: 150
cat("Jumlah variabel:", ncol(iris), "\n")
#> Jumlah variabel: 5
Dataset iris memiliki 150 pengamatan dan 5 variabel.
Variabel yang digunakan dalam analisis dipilih sesuai dengan tujuan penelitian.
data_analisis <- iris[, c(
"Petal.Length",
"Sepal.Length",
"Sepal.Width",
"Petal.Width"
)]
head(data_analisis)
#> Petal.Length Sepal.Length Sepal.Width Petal.Width
#> 1 1.4 5.1 3.5 0.2
#> 2 1.4 4.9 3.0 0.2
#> 3 1.3 4.7 3.2 0.2
#> 4 1.5 4.6 3.1 0.2
#> 5 1.4 5.0 3.6 0.2
#> 6 1.7 5.4 3.9 0.4
Data tersebut terdiri atas satu variabel dependen dan tiga variabel independen.
Statistik deskriptif digunakan untuk mengetahui gambaran umum data, seperti nilai minimum, maksimum, rata-rata, dan median.
statistik_deskriptif <- data.frame(
Variabel = names(data_analisis),
Minimum = sapply(data_analisis, min),
Maksimum = sapply(data_analisis, max),
Rata_rata = sapply(data_analisis, mean),
Median = sapply(data_analisis, median),
Simpangan_Baku = sapply(data_analisis, sd)
)
knitr::kable(
statistik_deskriptif,
digits = 3,
caption = "Statistik Deskriptif Variabel Penelitian"
)
| Variabel | Minimum | Maksimum | Rata_rata | Median | Simpangan_Baku | |
|---|---|---|---|---|---|---|
| Petal.Length | Petal.Length | 1.0 | 6.9 | 3.758 | 4.35 | 1.765 |
| Sepal.Length | Sepal.Length | 4.3 | 7.9 | 5.843 | 5.80 | 0.828 |
| Sepal.Width | Sepal.Width | 2.0 | 4.4 | 3.057 | 3.00 | 0.436 |
| Petal.Width | Petal.Width | 0.1 | 2.5 | 1.199 | 1.30 | 0.762 |
Berdasarkan tabel statistik deskriptif, dapat diketahui karakteristik masing-masing variabel melalui nilai minimum, maksimum, rata-rata, median, dan simpangan baku.
Visualisasi digunakan untuk melihat pola hubungan antarvariabel sebelum dilakukan pemodelan regresi.
plot(
data_analisis$Sepal.Length,
data_analisis$Petal.Length,
main = "Hubungan Sepal.Length dan Petal.Length",
xlab = "Sepal.Length",
ylab = "Petal.Length",
pch = 19,
col = "blue"
)
abline(
lm(Petal.Length ~ Sepal.Length, data = data_analisis),
col = "red",
lwd = 2
)
Grafik tersebut memperlihatkan pola hubungan antara panjang sepal dan panjang petal. Garis merah merupakan garis regresi linear sederhana yang membantu memperlihatkan arah hubungan kedua variabel.
plot(
data_analisis$Sepal.Width,
data_analisis$Petal.Length,
main = "Hubungan Sepal.Width dan Petal.Length",
xlab = "Sepal.Width",
ylab = "Petal.Length",
pch = 19,
col = "darkgreen"
)
Grafik digunakan untuk mengamati pola hubungan antara lebar sepal dan panjang petal.
plot(
data_analisis$Petal.Width,
data_analisis$Petal.Length,
main = "Hubungan Petal.Width dan Petal.Length",
xlab = "Petal.Width",
ylab = "Petal.Length",
pch = 19,
col = "purple"
)
abline(
lm(Petal.Length ~ Petal.Width, data = data_analisis),
col = "red",
lwd = 2
)
Grafik tersebut digunakan untuk melihat pola hubungan antara lebar petal dan panjang petal.
Model regresi dibentuk dengan menggunakan fungsi lm()
pada R.
model <- lm(
Petal.Length ~ Sepal.Length + Sepal.Width + Petal.Width,
data = data_analisis
)
summary(model)
#>
#> Call:
#> lm(formula = Petal.Length ~ Sepal.Length + Sepal.Width + Petal.Width,
#> data = data_analisis)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -0.99333 -0.17656 -0.01004 0.18558 1.06909
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) -0.26271 0.29741 -0.883 0.379
#> Sepal.Length 0.72914 0.05832 12.502 <0.0000000000000002 ***
#> Sepal.Width -0.64601 0.06850 -9.431 <0.0000000000000002 ***
#> Petal.Width 1.44679 0.06761 21.399 <0.0000000000000002 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 0.319 on 146 degrees of freedom
#> Multiple R-squared: 0.968, Adjusted R-squared: 0.9674
#> F-statistic: 1473 on 3 and 146 DF, p-value: < 0.00000000000000022
Model tersebut digunakan untuk mengetahui hubungan ketiga variabel independen terhadap Petal.Length.
hasil_koefisien <- summary(model)$coefficients
knitr::kable(
round(hasil_koefisien, 4),
caption = "Hasil Estimasi Koefisien Regresi"
)
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -0.2627 | 0.2974 | -0.8833 | 0.3785 |
| Sepal.Length | 0.7291 | 0.0583 | 12.5025 | 0.0000 |
| Sepal.Width | -0.6460 | 0.0685 | -9.4312 | 0.0000 |
| Petal.Width | 1.4468 | 0.0676 | 21.3987 | 0.0000 |
Persamaan regresi yang terbentuk dapat ditampilkan menggunakan sintaks berikut.
b <- coef(model)
cat(
"Petal.Length = ",
round(b[1], 4), " + ",
round(b[2], 4), " Sepal.Length + ",
round(b[3], 4), " Sepal.Width + ",
round(b[4], 4), " Petal.Width",
"\n"
)
#> Petal.Length = -0.2627 + 0.7291 Sepal.Length + -0.646 Sepal.Width + 1.4468 Petal.Width
Interpretasi setiap koefisien dilakukan dengan melihat tanda positif atau negatif serta besarnya nilai koefisien. Interpretasi koefisien regresi dilakukan dengan asumsi variabel independen lainnya tetap.
hasil_model <- summary(model)
nilai_f <- hasil_model$fstatistic[1]
df1 <- hasil_model$fstatistic[2]
df2 <- hasil_model$fstatistic[3]
p_value_f <- pf(
nilai_f,
df1,
df2,
lower.tail = FALSE
)
cat("Nilai F:", nilai_f, "\n")
#> Nilai F: 1472.726
cat("P-value:", p_value_f, "\n")
#> P-value: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006976868
Kriteria pengambilan keputusan:
Uji F digunakan untuk mengevaluasi apakah variabel independen secara bersama-sama berhubungan secara signifikan dengan variabel dependen.
tabel_uji_t <- summary(model)$coefficients
knitr::kable(
round(tabel_uji_t, 4),
caption = "Hasil Uji Parsial (Uji t)"
)
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | -0.2627 | 0.2974 | -0.8833 | 0.3785 |
| Sepal.Length | 0.7291 | 0.0583 | 12.5025 | 0.0000 |
| Sepal.Width | -0.6460 | 0.0685 | -9.4312 | 0.0000 |
| Petal.Width | 1.4468 | 0.0676 | 21.3987 | 0.0000 |
Pengambilan keputusan dilakukan dengan melihat nilai p-value pada masing-masing variabel independen. Apabila p-value kurang dari 0,05, maka koefisien variabel tersebut dinyatakan signifikan pada taraf 5%.
r_square <- summary(model)$r.squared
adjusted_r_square <- summary(model)$adj.r.squared
cat("R-squared:", round(r_square, 4), "\n")
#> R-squared: 0.968
cat("Adjusted R-squared:", round(adjusted_r_square, 4), "\n")
#> Adjusted R-squared: 0.9674
Nilai R-squared menunjukkan proporsi variasi Petal.Length yang dapat dijelaskan oleh Sepal.Length, Sepal.Width, dan Petal.Width dalam model.
Uji normalitas dilakukan menggunakan uji Shapiro-Wilk terhadap residual model.
uji_normalitas <- shapiro.test(residuals(model))
uji_normalitas
#>
#> Shapiro-Wilk normality test
#>
#> data: residuals(model)
#> W = 0.98875, p-value = 0.271
Hipotesis:
Jika p-value lebih besar dari 0,05, tidak terdapat bukti yang cukup untuk menolak asumsi normalitas residual.
Multikolinearitas diperiksa dengan menghitung Variance Inflation Factor (VIF). Perhitungan dilakukan dengan meregresikan setiap variabel independen terhadap variabel independen lainnya.
variabel_x <- c(
"Sepal.Length",
"Sepal.Width",
"Petal.Width"
)
vif_manual <- sapply(variabel_x, function(v) {
variabel_lain <- setdiff(variabel_x, v)
rumus <- as.formula(
paste(v, "~", paste(variabel_lain, collapse = " + "))
)
model_bantu <- lm(rumus, data = data_analisis)
1 / (1 - summary(model_bantu)$r.squared)
})
knitr::kable(
data.frame(
Variabel = names(vif_manual),
VIF = as.numeric(vif_manual)
),
digits = 3,
caption = "Nilai Variance Inflation Factor"
)
| Variabel | VIF |
|---|---|
| Sepal.Length | 3.416 |
| Sepal.Width | 1.306 |
| Petal.Width | 3.890 |
Nilai VIF yang semakin besar menunjukkan adanya hubungan linear yang semakin kuat antara suatu variabel independen dengan variabel independen lainnya. Nilai VIF perlu dipertimbangkan bersama konteks data dan tujuan analisis.
Pemeriksaan heteroskedastisitas dilakukan menggunakan pendekatan Breusch-Pagan secara manual. Residual kuadrat diregresikan terhadap nilai prediksi dan kuadrat nilai prediksi.
residu <- residuals(model)
nilai_prediksi <- fitted(model)
model_bp <- lm(
I(residu^2) ~ nilai_prediksi + I(nilai_prediksi^2)
)
n <- nrow(data_analisis)
r2_bp <- summary(model_bp)$r.squared
statistik_bp <- n * r2_bp
df_bp <- 2
p_value_bp <- pchisq(
statistik_bp,
df = df_bp,
lower.tail = FALSE
)
cat("Statistik Breusch-Pagan:", statistik_bp, "\n")
#> Statistik Breusch-Pagan: 6.193385
cat("Derajat bebas:", df_bp, "\n")
#> Derajat bebas: 2
cat("P-value:", p_value_bp, "\n")
#> P-value: 0.04519844
Hipotesis:
Jika p-value lebih besar dari 0,05, tidak terdapat bukti yang cukup untuk menolak hipotesis nol.
par(mfrow = c(2, 2))
plot(model)
par(mfrow = c(1, 1))
Grafik diagnostik digunakan untuk mengamati pola residual, normalitas residual, dan kemungkinan adanya pengamatan yang berpengaruh terhadap model.
Berdasarkan tahapan analisis yang telah dilakukan, model regresi linear berganda digunakan untuk menjelaskan hubungan antara Sepal.Length, Sepal.Width, dan Petal.Width terhadap Petal.Length.
Nilai koefisien regresi digunakan untuk mengetahui arah dan besarnya hubungan masing-masing variabel independen dengan variabel dependen, dengan asumsi variabel lainnya tetap.
Pengujian simultan dilakukan melalui uji F, sedangkan pengujian parsial dilakukan melalui uji t. Koefisien determinasi digunakan untuk mengetahui proporsi variasi Petal.Length yang dapat dijelaskan oleh model.
Pemeriksaan asumsi dilakukan melalui uji Shapiro-Wilk, perhitungan VIF, dan pemeriksaan heteroskedastisitas. Hasil setiap pengujian perlu diperhatikan sebelum model digunakan untuk interpretasi lebih lanjut.
Dengan demikian, hasil akhir penelitian diperoleh berdasarkan tabel, grafik, dan nilai pengujian yang dihasilkan secara langsung oleh R ketika dokumen ini dijalankan.
Berdasarkan analisis regresi linear berganda yang dilakukan pada dataset iris, dapat disimpulkan bahwa:
lm() pada
R.Kesimpulan akhir mengenai signifikansi variabel dan kelayakan model harus disesuaikan dengan nilai hasil pengujian yang muncul setelah dokumen di-Knit.
R Core Team. (2026). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
RStudio Team. (2026). RStudio: Integrated Development Environment for R. Posit Software, PBC. https://posit.co/
Xie, Y., Allaire, J. J., & Grolemund, G. (2018). R Markdown: The Definitive Guide. Chapman and Hall/CRC. https://bookdown.org/yihui/rmarkdown/