treesLaporan ini menganalisis hubungan ukuran pohon dengan volume kayu
menggunakan dataset trees bawaan R. Volume kayu
(Volume) ditetapkan sebagai variabel respons, sedangkan
diameter batang (Girth) dan tinggi pohon
(Height) ditetapkan sebagai prediktor. Metode yang
digunakan adalah regresi linear berganda karena model melibatkan lebih
dari satu prediktor.
Analisis meliputi statistik deskriptif, visualisasi data, estimasi model, uji signifikansi, diagnostik residual, dan prediksi. Seluruh hasil numerik dihitung langsung melalui kode R sehingga akan diperbarui secara otomatis ketika dokumen di-Knit.
Fokus analisis: menguji apakah diameter batang dan tinggi pohon secara simultan berhubungan dengan volume kayu serta menilai kemampuan model dalam memprediksi volume.
Volume kayu pada sebuah pohon tidak mudah diketahui hanya dengan melihatnya. Namun, ukuran yang lebih mudah diukur, seperti diameter batang dan tinggi pohon, dapat digunakan untuk memperkirakan volume tersebut. Secara umum, pohon yang lebih besar dan lebih tinggi diperkirakan memiliki volume kayu yang lebih banyak.
Regresi linear berganda digunakan untuk menganalisis hubungan diameter dan tinggi pohon dengan volume kayu secara simultan. Koefisien setiap prediktor menunjukkan perubahan rata-rata respons dengan asumsi prediktor lainnya konstan (ceteris paribus).
trees?Regresi linear berganda digunakan untuk memodelkan hubungan satu variabel respons dengan dua atau lebih prediktor. Bentuk umum model dengan dua prediktor adalah:
\[ Y = \beta_0 + \beta_1X_1 + \beta_2X_2 + \varepsilon. \]
Pada laporan ini, model yang digunakan adalah:
\[ \mathrm{Volume} = \beta_0 + \beta_1\mathrm{Girth} + \beta_2\mathrm{Height} + \varepsilon. \]
Keterangan:
Volume adalah variabel respons berupa volume kayu
pohon;Girth adalah prediktor berupa diameter batang
pohon;Height adalah prediktor berupa tinggi pohon;Pengujian dilakukan pada taraf signifikansi 5% atau \(\alpha=0{,}05\). Kriteria pengambilan keputusan adalah:
Uji F digunakan untuk menguji signifikansi seluruh prediktor secara simultan. Uji t digunakan untuk menguji signifikansi setiap koefisien regresi secara parsial setelah prediktor lain dikendalikan.
Koefisien determinasi (\(R^2\)) menunjukkan proporsi keragaman variabel respons yang dapat dijelaskan oleh seluruh prediktor dalam model. Nilainya berada antara 0 dan 1. Nilai yang semakin mendekati 1 menunjukkan bahwa model menjelaskan proporsi keragaman respons yang semakin besar.
Dataset trees tersedia secara langsung di R melalui
paket datasets. Data ini berisi hasil pengukuran 31 pohon
Black Cherry. Dokumentasi data dapat dibuka menggunakan
perintah ?trees.
| Variabel | Satuan | Keterangan |
|---|---|---|
Girth |
inci | Diameter batang, diukur pada ketinggian tertentu dari tanah |
Height |
kaki | Tinggi pohon |
Volume |
kaki kubik | Volume kayu pohon |
data("trees")
dat <- trees
jumlah_baris <- nrow(dat)
jumlah_variabel <- ncol(dat)
jumlah_kosong <- sum(is.na(dat))
cat("Jumlah pohon :", jumlah_baris, "\n")## Jumlah pohon : 31
## Jumlah variabel : 3
## Nilai hilang : 0
Dataset terdiri atas 31 pengamatan dan 3 variabel. Tidak terdapat nilai hilang (0), sehingga seluruh pengamatan dapat digunakan dalam estimasi model.
contoh <- head(dat, 10)
names(contoh) <- c("Diameter (inci)", "Tinggi (kaki)", "Volume (kaki kubik)")
knitr::kable(
contoh,
caption = "Sepuluh pengamatan pertama dataset trees"
)| Diameter (inci) | Tinggi (kaki) | Volume (kaki kubik) |
|---|---|---|
| 8.3 | 70 | 10.3 |
| 8.6 | 65 | 10.3 |
| 8.8 | 63 | 10.2 |
| 10.5 | 72 | 16.4 |
| 10.7 | 81 | 18.8 |
| 10.8 | 83 | 19.7 |
| 11.0 | 66 | 15.6 |
| 11.0 | 75 | 18.2 |
| 11.1 | 80 | 22.6 |
| 11.2 | 75 | 19.9 |
ringkasan <- data.frame(
Variabel = c("Diameter", "Tinggi", "Volume"),
Rata_rata = sapply(dat, mean),
Simpangan_baku = sapply(dat, sd),
Minimum = sapply(dat, min),
Median = sapply(dat, median),
Maksimum = sapply(dat, max),
row.names = NULL
)
knitr::kable(
ringkasan,
digits = 2,
caption = "Ringkasan ukuran diameter, tinggi, dan volume pohon"
)| Variabel | Rata_rata | Simpangan_baku | Minimum | Median | Maksimum |
|---|---|---|---|---|---|
| Diameter | 13.25 | 3.14 | 8.3 | 12.9 | 20.6 |
| Tinggi | 76.00 | 6.37 | 63.0 | 76.0 | 87.0 |
| Volume | 30.17 | 16.44 | 10.2 | 24.2 | 77.0 |
Rata-rata diameter pohon adalah 13,25 inci, rata-rata tingginya 76,00 kaki, dan rata-rata volumenya 30,17 kaki kubik.
op <- par(mfrow = c(2, 2), mar = c(4, 4, 3, 1))
hist(
dat$Volume,
col = "#4C78A8",
border = "white",
main = "Sebaran Volume Kayu",
xlab = "Volume (kaki kubik)"
)
plot(
dat$Girth, dat$Volume,
pch = 19,
col = "#2C7FB8",
xlab = "Diameter (inci)",
ylab = "Volume (kaki kubik)",
main = "Volume dan Diameter"
)
abline(lm(Volume ~ Girth, data = dat), col = "#D7301F", lwd = 2)
plot(
dat$Height, dat$Volume,
pch = 19,
col = "#59A14F",
xlab = "Tinggi (kaki)",
ylab = "Volume (kaki kubik)",
main = "Volume dan Tinggi"
)
abline(lm(Volume ~ Height, data = dat), col = "#D7301F", lwd = 2)
boxplot(
dat$Volume,
horizontal = TRUE,
col = "#A8C5E5",
main = "Boxplot Volume",
xlab = "Volume (kaki kubik)"
)Distribusi volume dan diagram pencar antarvariabel
Diagram pencar menunjukkan pola hubungan positif: volume cenderung
meningkat seiring bertambahnya diameter dan tinggi pohon. Secara visual,
hubungan Volume dengan Girth tampak lebih kuat
daripada hubungan Volume dengan Height.
korelasi <- cor(dat)
knitr::kable(
korelasi,
digits = 3,
caption = "Korelasi antara diameter, tinggi, dan volume"
)| Girth | Height | Volume | |
|---|---|---|---|
| Girth | 1.000 | 0.519 | 0.967 |
| Height | 0.519 | 1.000 | 0.598 |
| Volume | 0.967 | 0.598 | 1.000 |
Koefisien korelasi yang mendekati 1 menunjukkan hubungan linear positif yang kuat. Korelasi bersifat bivariat, sedangkan regresi linear berganda digunakan untuk mengestimasi hubungan parsial setiap prediktor dengan respons.
Analisis dilakukan melalui langkah-langkah berikut:
trees.Volume ~ Girth + Height dengan
metode kuadrat terkecil.model <- lm(Volume ~ Girth + Height, data = dat)
hasil <- summary(model)
b0 <- unname(coef(model)["(Intercept)"])
b_girth <- unname(coef(model)["Girth"])
b_height <- unname(coef(model)["Height"])
p_girth <- hasil$coefficients["Girth", "Pr(>|t|)"]
p_height <- hasil$coefficients["Height", "Pr(>|t|)"]
r2 <- hasil$r.squared
adj_r2 <- hasil$adj.r.squared
rmse <- sqrt(mean(residuals(model)^2))
f_value <- unname(hasil$fstatistic[1])
f_df1 <- unname(hasil$fstatistic[2])
f_df2 <- unname(hasil$fstatistic[3])
p_model <- pf(f_value, f_df1, f_df2, lower.tail = FALSE)
interval_koef <- confint(model, level = 0.95)
tabel_koef <- data.frame(
Variabel = c("Intersep", "Diameter", "Tinggi"),
Koefisien = hasil$coefficients[, "Estimate"],
Galat_baku = hasil$coefficients[, "Std. Error"],
Nilai_t = hasil$coefficients[, "t value"],
P_value = hasil$coefficients[, "Pr(>|t|)"],
Batas_bawah_95 = interval_koef[, 1],
Batas_atas_95 = interval_koef[, 2],
row.names = NULL
)
knitr::kable(
tabel_koef,
digits = 4,
caption = "Estimasi parameter model regresi linear berganda"
)| Variabel | Koefisien | Galat_baku | Nilai_t | P_value | Batas_bawah_95 | Batas_atas_95 |
|---|---|---|---|---|---|---|
| Intersep | -57.9877 | 8.6382 | -6.7129 | 0.0000 | -75.6823 | -40.2931 |
| Diameter | 4.7082 | 0.2643 | 17.8161 | 0.0000 | 4.1668 | 5.2495 |
| Tinggi | 0.3393 | 0.1302 | 2.6066 | 0.0145 | 0.0726 | 0.6059 |
Persamaan regresi yang diperoleh adalah:
\[ \widehat{\mathrm{Volume}} = -57,988 + 4,708\,\mathrm{Girth} + 0,339\,\mathrm{Height}. \]
Girth sebesar 4,708. Dengan asumsi tinggi
konstan, kenaikan diameter sebesar 1 inci diasosiasikan dengan kenaikan
rata-rata volume sebesar 4,708 kaki kubik.Height sebesar 0,339. Dengan asumsi diameter
konstan, kenaikan tinggi sebesar 1 kaki diasosiasikan dengan kenaikan
rata-rata volume sebesar 0,339 kaki kubik.ringkasan_model <- data.frame(
Ukuran = c(
"R-squared",
"Adjusted R-squared",
"RMSE",
"Statistik F",
"p-value uji F"
),
Nilai = c(r2, adj_r2, rmse, f_value, p_model)
)
knitr::kable(
ringkasan_model,
digits = 4,
caption = "Ukuran kecocokan dan signifikansi model"
)| Ukuran | Nilai |
|---|---|
| R-squared | 0.9480 |
| Adjusted R-squared | 0.9442 |
| RMSE | 3.6892 |
| Statistik F | 254.9723 |
| p-value uji F | 0.0000 |
Nilai \(R^2\) sebesar 0,948 menunjukkan bahwa sekitar 94,8% keragaman volume kayu dapat dijelaskan oleh diameter dan tinggi pohon. Keragaman yang tidak dijelaskan model tercakup dalam residual.
Uji F menghasilkan p-value < 0,001. Pada taraf signifikansi 5%, keputusan pengujian adalah menolak H0. Dengan demikian, Girth dan Height secara simultan berhubungan signifikan dengan Volume.
Temuan utama: model signifikan secara simultan dan mampu menjelaskan sekitar 94,8% keragaman volume kayu dalam dataset
trees.
keputusan <- data.frame(
Variabel = c("Diameter", "Tinggi"),
P_value = c(p_girth, p_height),
Keputusan = c(
ifelse(p_girth < 0.05, "Signifikan", "Tidak signifikan"),
ifelse(p_height < 0.05, "Signifikan", "Tidak signifikan")
)
)
knitr::kable(
keputusan,
digits = 4,
caption = "Hasil uji t parsial pada taraf signifikansi 5%"
)| Variabel | P_value | Keputusan |
|---|---|---|
| Diameter | 0.0000 | Signifikan |
| Tinggi | 0.0145 | Signifikan |
Koefisien Girth memiliki p-value < 0,001,
sehingga H0 ditolak dan Girth signifikan secara parsial. Koefisien
Height memiliki p-value 0,014, sehingga H0 ditolak
dan Height signifikan secara parsial.
nilai_prediksi <- fitted(model)
residual_model <- residuals(model)
op <- par(mfrow = c(1, 3), mar = c(4, 4, 3, 1))
plot(
dat$Volume, nilai_prediksi,
pch = 19,
col = "#2C7FB8",
xlab = "Volume teramati",
ylab = "Nilai fitted",
main = "Teramati vs Fitted"
)
abline(0, 1, col = "#D7301F", lwd = 2, lty = 2)
plot(
nilai_prediksi, residual_model,
pch = 19,
col = "#59A14F",
xlab = "Nilai prediksi",
ylab = "Residual",
main = "Residual vs Fitted"
)
abline(h = 0, col = "#D7301F", lwd = 2, lty = 2)
qqnorm(residual_model, pch = 19, col = "#4C78A8", main = "Normal Q-Q")
qqline(residual_model, col = "#D7301F", lwd = 2)Plot nilai teramati, nilai fitted, dan diagnostik residual
Plot nilai teramati terhadap nilai fitted digunakan untuk menilai kedekatan hasil estimasi model dengan data aktual. Plot residual terhadap nilai fitted digunakan untuk memeriksa asumsi linearitas dan kesamaan varians; residual yang menyebar acak di sekitar nol mendukung kedua asumsi tersebut. Plot Normal Q-Q digunakan untuk memeriksa asumsi normalitas residual.
uji_normal <- shapiro.test(residual_model)
tabel_normal <- data.frame(
Uji = "Shapiro-Wilk",
Statistik = unname(uji_normal$statistic),
P_value = uji_normal$p.value,
Kesimpulan = ifelse(
uji_normal$p.value > 0.05,
"H0 gagal ditolak: residual berdistribusi normal",
"H0 ditolak: residual tidak berdistribusi normal"
)
)
knitr::kable(
tabel_normal,
digits = 4,
caption = "Hasil uji normalitas residual Shapiro-Wilk"
)| Uji | Statistik | P_value | Kesimpulan |
|---|---|---|---|
| Shapiro-Wilk | 0.9743 | 0.644 | H0 gagal ditolak: residual berdistribusi normal |
Uji Shapiro-Wilk menguji \(H_0\) bahwa residual berdistribusi normal. Uji menghasilkan p-value 0,644, sehingga pada taraf signifikansi 5% H0 gagal ditolak dan asumsi normalitas residual terpenuhi. Hasil uji dibaca bersama plot Normal Q-Q.
Model digunakan untuk memprediksi volume sebuah pohon dengan diameter 15 inci dan tinggi 75 kaki. Kedua nilai prediktor tersebut berada dalam rentang data sehingga prediksi termasuk interpolasi.
pohon_baru <- data.frame(Girth = 15, Height = 75)
hasil_prediksi <- predict(
model,
newdata = pohon_baru,
interval = "prediction",
level = 0.95
)
tabel_prediksi <- data.frame(
Diameter_inci = pohon_baru$Girth,
Tinggi_kaki = pohon_baru$Height,
Prediksi_volume = hasil_prediksi[, "fit"],
Batas_bawah_PI_95 = hasil_prediksi[, "lwr"],
Batas_atas_PI_95 = hasil_prediksi[, "upr"]
)
knitr::kable(
tabel_prediksi,
digits = 2,
caption = "Prediksi volume dan interval prediksi 95%"
)| Diameter_inci | Tinggi_kaki | Prediksi_volume | Batas_bawah_PI_95 | Batas_atas_PI_95 |
|---|---|---|---|---|
| 15 | 75 | 38.08 | 29.92 | 46.23 |
Nilai prediksi volume adalah 38,08 kaki kubik, dengan interval prediksi 95% dari 29,92 hingga 46,23 kaki kubik. Interval prediksi menunjukkan rentang nilai yang mungkin untuk satu pengamatan baru dengan karakteristik tersebut.
Hasil analisis menunjukkan bahwa Girth dan
Height dapat digunakan secara simultan untuk memprediksi
Volume. Koefisien kedua prediktor bernilai positif.
Artinya, kenaikan diameter berasosiasi dengan kenaikan rata-rata volume
ketika tinggi konstan, dan kenaikan tinggi berasosiasi dengan kenaikan
rata-rata volume ketika diameter konstan.
Model memiliki \(R^2\) sebesar
0,948, sehingga sebagian besar keragaman volume dalam sampel dapat
dijelaskan oleh kedua prediktor. Interpretasi dibatasi pada rentang
nilai Girth dan Height yang tercakup dalam
dataset trees.
Berdasarkan uji F, Girth dan Height secara
simultan berhubungan signifikan dengan Volume karena
p-value model sebesar < 0,001. Koefisien determinasi
menunjukkan bahwa model mampu menjelaskan sekitar 94,8% keragaman volume
pada dataset trees.
Secara parsial, kenaikan diameter 1 inci berasosiasi dengan kenaikan rata-rata volume sebesar 4,708 kaki kubik ketika tinggi konstan. Kenaikan tinggi 1 kaki berasosiasi dengan kenaikan rata-rata volume sebesar 0,339 kaki kubik ketika diameter konstan. Dengan demikian, model regresi linear berganda layak digunakan untuk memprediksi volume kayu dalam cakupan data yang diamati.
trees, diakses melalui
perintah help(trees).