← Back to list

Prediksi Data dengan Regresi di R Studio

Kapal merupakan salah satu moda transportasi yang populer untuk mengantarkan penumpang dan barang lintas pulau. Sebelum adanya pesawat…

Ika Puspita Dewi · 2025-06-13 12:28 · 5 claps · 5.9 min read
#machine-learning #regression-modeling #predictions #r-studio-free #kapal
Open on Medium ↗
Wiki topics: ML · Machine Learning EDU · Education & Learning

Prediksi Data dengan Regresi di R Studio

Photo by Artur Voznenko on Unsplash

Photo by Artur Voznenko on Unsplash

Kapal merupakan salah satu moda transportasi yang populer untuk mengantarkan penumpang dan barang lintas pulau. Sebelum adanya pesawat, kapal merupakan satu-satunya yang terpopuler. Setiap tahun, di Indonesia kapal merupakan sarana moda transportasi yang sering digunakan terutama pada musim liburan. Sebab, akomodasi kapal memiliki harga yang lebih terjangkau daripada pesawat terbang. Sehingga membuat khalayak umum cenderung menyukai akomodasi kapal.

Kendati demikian, setiap perusahaan kapal memiliki cara untuk mencegah terjadinya penumpukan penumpang. Akumulasi ini menyebabkan pelabuhan mengalami kepadatan terutama saat libur panjang. Kepulauan Seribu, misalnya, menjadi salah satu destinasi yang banyak dikunjungi masyarakat ketika musim liburan tiba.

Tulisan ini akan membahas upaya yang bisa dilakukan para perusahaan kapal untuk mencegah terjadinya penumpukan penumpang di pelabuhan. Sebab, para wisatawan akan merasa tidak nyaman bila terjadi penumpukan penumpang saat sedang berlibur, khususnya di Kepulauan Seribu. Bagaimana agar tidak terjadi penumpukan penumpang? Bagaimana prediksi pola penumpang yang akan naik dan turun?

Sebelum menjawab, kita perlu mengetahui data penumpang kapal di pelabuhan Kepulauan Seribu. Berdasarkan data dari bidang pelayanan Dinas Perhubungan tahun 2019 (Data penumpang kapal kepulauan seribu tahun 2019), memiliki sebanyak 3561 data dengan 7 atribut, yaitu:

  1. periode_data: periode data yang digunakan;
  2. tanggal: tanggal;
  3. pelabuhan: nama_pelabuhan;
  4. kapal_berangkat: jumlah kapal berangkat;
  5. kapal_tiba: jumlah kapal tiba;
  6. penumpang_naik: jumlah penumpang naik;
  7. penumpang_turun: jumlah penumpang turun.

Langkah-langkah melakukan Regresi Linier

Langkah 1. Mengimport data

Untuk melihat pola hubungan data dengan Rstudio kita perlu melakukan import data penumpang terlebih dahulu.

Import data

Import data

Penggunaan delimiter disini adalah untuk memisahkan data kepada kolom yang berbeda dengan pemisah tanda semicolon (;).

Langkah 2. Melakukan Pemeriksaan Data

Pada langkah ini kita perlu memeriksa struktur data untuk mengetahui tipe data dan jenis data dengan str() dan fungsi summary().

str(Data_Penumpang)
Summary(Data_Penumpang)

Hasil output pada pemeriksaan struktur data

Output summary data preparation

Output summary data preparation

Langkah 3. Melakukan Eksplorasi Data

Sebelum melakukan modeling kita memerlukan analisa awal tentang data. Cara ini dengan memeriksa korelasi data serta visualisasi korelasi data kapal yang tiba dengan penumpang turun dan kapal berangkat dengan penumpang tiba menggunakan fungsi plot()

Korelasi Data Penumpang Naik dan Penumpang Turun

Korelasi Data Penumpang Naik dan Penumpang Turun

atau bisa juga melihat korelasi dengan fungsi cor()

cor(Data_Penumpang$penumpang_naik, Data_Penumpang$kapal_tiba)
[1] 0.4951708
cor(Data_Penumpang$penumpang_naik,Data_Penumpang$kapal_berangkat)
[1] 0.7318999
cor(Data_Penumpang$penumpang_turun,Data_Penumpang$kapal_tiba)
[1] 0.7127264
 cor(Data_Penumpang$penumpang_turun,Data_Penumpang$kapal_berangkat)
[1] 0.4671237

Berdasarkan hasil pengecekan korelasi awal, hubungan data yang baik ada pada penumpang naik dengan kapal berangkat memiliki korelasi sebesar 0.7318999 atau 73%. Sedangkan pada data penumpang turun dengan kapal berangkat memiliki korelasi sebesar 0.7127264 atau 71%.

Langkah 4. Membuat Model Regresi

#Membuat model regresi penumpang naik
model_reg_naik <- lm(penumpang_naik ~ kapal_berangkat, data = Data_Penumpang)
#Membuat model regresi penumpang turun
model_reg_turun <- lm(penumpang_turun ~ kapal_tiba, data = Data_Penumpang)
#Menganalisis hasil regresi model_reg_naik
summary(model_reg_naik)
#Menganalisis hasil regresi model_reg_turun
summary(model_reg_turun)

Pada langkah ini penumpang_naik dan penumpang_turun merupakan variabel dependen atau variabel terikat (y) sedangkan kapal_tiba dan kapal_berangkat merupakan variabel independen atau variabel bebas (x). Hasil summary model regresi penumpang naik adalah sebagai berikut:

Summary Penumpang Naik

Summary Penumpang Naik

Berdasarkan hasil summary yang didapatkan dari variabel model_reg_naik pengaruh kapal berangkat (x) terhadap penumpang naik (y) sebesar 74.97 dengan nilai t value sebesar 64.08 yang mana 64.48>1.96 dengan p value sebesar 2x10^(-16) di mana 2x10^(-16)<0.05 maka dapat disimpulkan hasil signifikan dan dapat dianggap memiliki pengaruh.

Pada uji F-statistic atau F hitung mendapatkan nilai sebesar 4106 dengan nilai p value 2.2x10^(-16) < 0.05, nilai R square 0.5357 dengan adjusted R square 0.5355 sehingga pengaruh x terhadap y adalah 0.5355 atau 53.55% > 50% maka variabel bebas (x) memiliki pengaruh terhadap variabel y.

Summary Penumpang Turun

Summary Penumpang Turun

Berdasarkan hasil summary di atas didapatkan pengaruh kapal tiba (x) terhadap penumpang turun sebesar 67.357 dengan nilai t-value 60.62 di mana 60.62>1.96 dan p value sebesar 2x10^(-16) yang mana 2x10^(-16)<0.05 maka hasil yang diperoleh signifikan. Pada uji F-statistic atau F hitung 3674 dengan p value 2.2x10^(-16) <0.05 sedangkan nilai R square 0.508 dengan adjusted R square 0.5078 atau 50.78% ≥ 50% maka variabel x berpengaruh terhadap variabel y.

Langkah 5. Melakukan Prediksi

#Membuat data yang ingin di prediksi
hasil_prediksi_naik <- predict(model_reg_naik, data.frame(kapal_berangkat = 30))
hasil_prediksi_turun <- predict(model_reg_turun, data.frame(kapal_tiba = 30))

Pada langkah ini dilakukan prediksi dengan data regresi penumpang naik dan regresi penumpang turun dengan fungsi predict().

Berdasarkan hasil prediksi di atas didapatkan hasil prediksi 2085.486 untuk penumpang naik jika kapal yang berangkat sebanyak 30. Hasil prediksi penumpang turun sebanyak 1893.225 jika kapal yang tiba sebanyak 30 kapal.

Langkah 6. Melakukan Evaluasi

#Melakukan evaluasi model
residu <- residuals(model_reg_naik)
residu_turun <- residuals(model_reg_turun)
nilai_prediksi <- fitted(model_reg_naik)
#Visualisasi hasil prediksi
plot(residu)
plot(residu_turun)
plot(model_reg_naik)
plot(model_reg_turun)

Melakukan evaluasi hasil prediksi guna memastikan model regresi bekerja dengan baik. Sebelum melakukan evaluasi perlu menghitung residu dengan fungsi residuals() dan fungsi fitted() untuk mengevaluasi model. Hasil prediksi divisualkan dengan fungsi plot().

model_reg_naik

model_reg_naik

Berdasarkan gambar di atas pada gambar residuals vs fitted menunjukan bahwa residual berjalan tidak pada pola yang sesuai yaitu garis merah horizontal di dekat titik 0. Titik-titik menyebar membentuk pola melengkung sehingga menunjukkan non-linearitas dan heteroskedastisitas (varian residual meningkat). Outlier besar terlihat misal pada 30110, bisa berdampak pada hasil model. Pada uji normalitas pola mengikuti titik-titik garis lurus namun pada outlier 30110 dan 29994 berada menjauh pada garis menunjukkan residual tidak normal. Pada Scale-Location menunjukkan pola yang naik sehingga residual meningkat terhadap fitted (tidak konstan).

model_reg_turun

model_reg_turun

Berdasarkan gambar residuals vs fitted diatas terlihat pola melengkung dan residual meningkat terhadap fitted values. Artinya,melanggar asumsi linearitas dan homoskedastisitas yaitu pada titik outlier 30120, 13050, dan 1479. Pada uji normalitas Titik-titik menyimpang dari garis diagonal, terutama di ujung kanan. Residual tidak sepenuhnya normal sehingga kemungkinan outlier yang miring yaitu pada titik 30120, 13050, dan 1479 signifikan menyimpang dari distribusi normal. Pada uji homoskedasiditas pola varian residual meningkat terhadap fitted values. Pada uji residuals vs leverage pada titik 30120 dan 13050 memiliki leverage cukup tinggi dan nilai residual besar yang memiliki pengaruh besar terhadap model.

Kesimpulan

Pada penelitian ini kita membuat prediksi data penumpang yaitu penumpang naik dengan kapal berangkat dan penumpang turun dengan kapal tiba menggunakan regresi untuk melihat hubungan setiap data. Hasil prediksi yang didapatkan jika kapal berangkat berjumlah 30 kapal, penumpang yang naik adalah sebanyak 2085.486. Sedangkan jika kapal tiba sebanyak 30 kapal, penumpang yang berangkat sebanyak 1893.225.

Pada hasil model prediksi didapatkan summary dari variabel model_reg_naik pengaruh kapal berangkat (x) terhadap penumpang naik (y) sebesar 74.97 dengan nilai t value sebesar 64.48>1.96 dengan p value sebesar 2x10^(-16)<0.05, F hitung mendapatkan nilai sebesar 4106 dengan nilai p value 2.2x10^(-16) < 0.05, nilai R square 0.5357 dengan adjusted R square 0.5355. maka pengaruh x terhadap y adalah 0.5355 atau 53.55% > 50% variabel bebas x memiliki pengaruh terhadap variabel y namun lemah.

Hasil summary yang didapatkan pengaruh kapal tiba (x) terhadap penumpang turun sebesar 67.357 dengan nilai t-value 60.62>1.96 dan p value sebesar 2x10^(-16)<0.05 maka hasil yang diperoleh signifikan. Pada uji F-statistic atau F hitung 3674 dengan p value 2.2x10^(-16) <0.05 sedangkan nilai R square 0.508 dengan adjusted R square 0.5078 atau 50.78% ≥ 50% maka variabel x berpengaruh terhadap variabel y namun lemah.

Hasil pada evaluasi model dengan fungsi plot() yaitu dengan melakukan uji linearitas, normalitas, homoskedastisitas, dan residuals vs leverage (titik berpengaruh tinggi) didapatkan bahwa terjadi non-linearitas, residual yang tidak konstan, residual yang tidak normal, outlier yang ekstrem seperti pada titik 30120, 13050, dan 1479. Untuk itu dapat dilakukan perbaikan dengan melakukan transformasi variabel, menggunakan regresi lain, mencoba model non-linear seperti polynomial regression, dan melakukan analisis lanjut terhadap outlier.

Terima kasih kepada para pembaca tulisan ini hingga akhir, tulisan ini masih jauh dalam kata sempurna namun dapat dijadikan gambaran untuk para pembaca untuk mencoba memprediksi dengan model regresi. Bila terdapat koreksi untuk menyempurnakan tulisan ini, pembaca dapat memberikan masukkan pada kolom komentar yang telah tersedia di platform ini. Terima kasih semuanya hehe >^_^<


메타데이터
post_id
8a1fbc1f503f
slug
prediksi-data-dengan-regresi-di-r-studio-8a1fbc1f503f
url
https://medium.com/@ikapsptdw/prediksi-data-dengan-regresi-di-r-studio-8a1fbc1f503f
canonical_url
https://medium.com/@ikapsptdw/prediksi-data-dengan-regresi-di-r-studio-8a1fbc1f503f
author_url
https://medium.com/@ikapsptdw
status
ok
fetched_at
2026-07-19 11:38:21