SELEKSI MODEL REGRESI DALAM PENENTUAN FAKTOR PENGARUH PERKIRAAN PENDAPATAN TOTAL PRODUK DAIRY

Tugas Pengantar Data Sains

Anggota Kelompok:

Adrian Wijaya Kusuma 3338240043
Alya Nur Azizah 3338240040
Delvira Damayanti 3338240042
Gaisa Ilahi 3338240036
Rizky Putra Hendrawan 3338240033

PROGRAM STUDI STATISTIKA
FAKULTAS TEKNIK
UNIVERSITAS SULTAN AGENG TIRTAYASA
2025


KATA PENGANTAR

Segala puji dan syukur dipanjatkan oleh penulis ke hadirat Tuhan Yang Maha Esa atas rahmat dan karunia-Nya, sehingga laporan tugas akhir mata kuliah Pengantar Data Sains dapat diselesaikan dengan baik dan tepat waktu. Laporan tugas akhir ini berjudul “Seleksi Model Regresi dalam Penentuan Faktor Pengaruh Perkiraan Pendapatan Total Produk Dairy”

Laporan ini disusun sebagai pemenuhan tugas akhir mata kuliah Pengantar Data Sains, Program Studi Statistika, Fakultas Teknik, Universitas Sultan Ageng Tirtayasa. Tujuan utama dari laporan tugas akhir ini adalah menerapkan konsep-konsep analisis regresi dalam melakukan seleksi model regresi terbaik untuk memprediksi variabel pendapatan total produk diary.

Penulis menyadari bahwa laporan tugas akhir ini masih jauh dari kesempurnaan dan memiliki banyak keurangan. Oleh karena itu, penulis sangat mengharapkan saran dan kritik yang konstruktif demi perbaikan di masa mendatang. Kemudia penulis berharap bahwa laporan tugas akhir ini dapat memberikan manfaat dan wawasan bagi pembaca.


BAB I :PENDAHULUAN

1.1 Latar Belakang

Sektor peternakan dan agribisnis memiliki peran penting terhadap ketahanan pangan dan pendapatan perternak di Indonesia. Dalam beberapa wilayah, sektor pertanian baik itu sapi potong atau sapi perah menjadi sumber mata pencaharian bagi beberapa kepala rumah tangga, terutama bagi mereka yang memiliki pekerjaan sebagai petani dan berada di daerah perdesaan. Namun, keberhasilan usaha tersebut tidak selalu konsisten mendapatkan keuntungan, berbagai faktor seperti luas lahan, produktivitas, jumlah ternak, harga jual, dan volume produksi bisa memengaruhi pendapatan secara signifikan.

Penggunaan regresi dalam memprediksi pengaruh variabel-variabel usaha ternak terhadap pendapatan usaha peternakan bukan hanya sekedar menghubungkan variabel independen dengan pendapatan, namun untuk menghasilkan kesimpulan yang valid, model regresi yang memenuhi asumsi klasik, seperti uji linearitas, normalitas residual, homoskedastisitas, uji multikolinearitas, maupun uji autokorelasi.

Dalam menganalisisi pendapatan pada usaha peternakan menjadi sangat penting untuk melakukan uji asumsi secara menyeluruh sebelum membangun model regresi berganda. Selain itu, dalam situasi dimana variabel-variabel bebas saling berkorelasi tinggi, diperlukan teknik diagnostik seperti perhitungan nilai VIF untuk mendeteksi multikolinearitas.

Dengan menggunakan data empiris (variabel luas lahan, jumlah ternak, kuantitas produksi, harga per unit, dan volume penjualan), pendekatan regresi berganda memungkingkan untuk melakukan identifikasi variabel-variabel mana yang paling berpengatuh terhadap total revenue/pendapatan. Selanjutnya akan dilakukan penyeleksian model terbaik dengan 3 metode, forward, backward, stepwise untuk menemukan variabel-variabel prediktor terbaik dari beberapa variabel yang tersedia yang secara optimal menjelaskan variabel respon dengan model yang sesederhana mungkin

1.2 Rumusan Masalah

  1. Faktor usaha diary apa saja yang paling berpengaruh terhadap pendapatan seorang peternak?
  2. Bagaimana bentuk model regresi terbaik setelah dilakukan model selection?
  3. Apakah model regresi terbaik tersebut memenuhi asumsi klasik yang diperlukan?

1.3 Tujuan

  1. Mengidentifikasi faktor yang berpengaruh secara signifikan terhadap pendapatan peternak
  2. Tersusun model regresi terbaik melalui metode model selection
  3. Mengevaluasi apakah model regresi terbaik tersebut memenuhi uji asumsi klasik sehingga dapat menjadi dasar penarikan kesimpulan

BAB II :LANDASAN TEORI

Pada bab ini disajikan teori yang menjadi dasar dalam pelaksanaan analisis statistik penelitian. Pembahasan mencakup konsep pengujian asumsi regresi, metode seleksi variabel, serta prosedur evaluasi model. Tahapan analisis dimulai dari uji asumsi klasik seperti heteroskedastisitas, autokorelasi, multikolinearitas, linearitas, dan normalitas. Setelah itu dilakukan pemilihan model terbaik menggunakan metode forward, backward, dan stepwise, kemudian dievaluasi menggunakan nilai R-squared.

Analisis korelasi dan regresi digunakan untuk melihat hubungan antar variabel dan membangun model prediksi, serta dilanjutkan dengan uji post-hoc sebagai pemeriksaan tambahan. Dengan demikian, bab ini memberikan landasan teoretis sebelum analisis data dilakukan pada bab berikutnya.

2.1 Uji Kelayakan Asumsi Regresi

Sebelum analisis regresi dilakukan, perlu dilakukan pengujian asumsi klasik untuk memastikan bahwa model yang digunakan memenuhi syarat statistik yang sesuai. Pengujian ini berfungsi untuk mendeteksi potensi pelanggaran yang dapat memengaruhi ketepatan hasil analisis dan validitas interpretasi. Pada bagian ini dibahas beberapa asumsi penting, yaitu normalitas, linearitas, multikolinearitas, autokorelasi, dan heteroskedastisitas. Hasil dari pengujian ini menentukan apakah model regresi dapat digunakan sebagaimana adanya atau memerlukan penyesuaian lanjutan. Berikut uji asumsi yang digunakan dalam projek ini :

2.1.1 Pengujian Normalitas

Uji normalitas ini bertujuan untuk mengetahui bahwa data berdistribusi normal atau tidak. Maksud dari data berdistribusi normal adalah bahwa data akan mengikuti bentuk dari distribusi normal. Dalam menentukan hipotesis yang diambil dalam uji normalitas, diantaranya:

  • H0 : H0 diterima jika nilai tertinggi > nilai tabel, maka kesimpulan yang diambil berdistribusi normal.

  • H1 : H1 diterima jika nilai tertinggi < nilai tabel, maka kesimpulan yang diambil tidak berdistribusi normal.

Uji normalitas yang paling sederhana adalah membuat grafik distribusi frekuensi atas skor yang ada. Pengujian kenormalan tergantung pada kemampuan kita dalam mencermati plotting data. Jika jumlah data cukup banyak dan penyebarannya tidak 100% normal ( tidak normal sempurna), maka kesimpulan yang ditarik kemungkinan akan salah. Pada saat sekarang ini sudah banyak cara yang dikembangkan para ahli untuk melakukan pengujian normalitas, salah satunya yaitu uji Kolmogorov Smirnov yang kami gunakan untuk melakukan uji Normalitas pada projek ini.

Uji Kolmogorov–Smirnov

Uji Kolmogorov–Smirnov (K–S) merupakan salah satu metode pengujian normalitas yang digunakan untuk mengetahui apakah data penelitian mengikuti distribusi normal atau tidak. Uji ini membandingkan distribusi kumulatif dari data sampel dengan distribusi kumulatif teoretis normal secara statistik. Dalam uji Kolmogorov Smirnov hipotesis yang diajukan adalah:

  • H₀: f(X) = normal

  • H₁ : f(X) ≠ normal

Langkah-langkah dari uji Kolmogorov Smirnov adalah:

  1. Menentukan rata-rata dan standar deviasi data.

  2. Menyusun data dimulai dari yang terkecil diikuti dengan frekuensi masing-masing, frekuensi kumulatif (F) dari masing-masing skor. Nilai Z ditentukan dengan rumus:

    \([ Z = \frac{X - \bar{X}}{\sigma} ]\)

    • Dimana: X̄ = rata-rata

    • σ = simpangan baku

    \(\sigma = \sqrt{\frac{\sum (x_i - \bar{X})^2}{n - 1}}\)

  3. Tentukan probabilitas di bawah nilai Z yang dapat dilihat pada tabel Z (P ≤ Z).

  4. Tentukan nilai selisih masing-masing baris F/n = Fz dengan P ≤ Z (nilai a₂) dan selisih masing-masing F/n dengan a₂ (nilai a₁).

  5. Selanjutnya bandingkan nilai tertinggi dari a₁ dengan tabel Kolmogorov Smirnov.

  6. Selanjutnya kriteria pengujian adalah:

    • Terima H₀ jika a₁ maks ≤ Dₜabel

    • Tolak H₀ jika a₁ maks > Dₜabel

2.1.2 Analisis Linearitas Model

Uji linearitas ini bertujuan untuk menyatakan bahwa untuk setiap persamaan regresi linier, hubungan antar variabel independen dengan dependen harus linear. Asumsi ini akan menentukan jenis persamaan estimasi yang digunakan, apakah persamaan logaritma, persamaan kubik, kuadratik atau inverse. Dalam menentukan hipotesis yang diambil dalam uji linearitas, diantaranya:

  • H0 : H0 diterima jika nilai DVL > nilai taraf signifikansi, maka kesimpulan yang diambil terdapat linearitas.

  • H1 : H1 diterima jika nilai DVL < nilai taraf signifikansi, maka kesimpulan yang diambil tidak terdapat linearitas.

2.1.3 Uji Autokorelasi

Pada dasarnya autokorelasi dapat didefinisikan sebagai korelasi di antara nilai-nilai pengamatan yang terurut dalam waktu (time series data) atau nilai-nilai pengamatan yang terurut dalam ruang (cross-sectional data). Autokorelasi dalam konsep regresi linier berarti komponen error berkorelasi berdasarkan urutan waktu (pada data berkala) atau urutan ruang (pada data tampang lintang), atau korelasi pada dirinya sendiri. Model regresi linier klasik mengasumsikan bahwa autokorelasi tidak terjadi, artinya kovariansi antara εᵢ dengan εⱼ sama dengan nol, dan secara matematis dapat dituliskan dengan persamaan berikut:

\(\mathrm{cov}(\varepsilon_i,\varepsilon_j)=E{(\varepsilon_i-E(\varepsilon_i))(\varepsilon_j-E(\varepsilon_j))}=E(\varepsilon_i\varepsilon_j)=0;\)

dengan asumsi bahwa :

\(E(\varepsilon_i)=E(\varepsilon_j)=0\)

Artinya, komponen error εᵢ yang berkaitan dengan data pengamatan ke-i tidak dipengaruhi oleh εⱼ yang berhubungan dengan data ke-j. Dengan kata lain, regresi klasik mensyaratkan bahwa pengamatan yang satu (Yᵢ) dengan pengamatan yang lain (Yⱼ) saling bebas. Pada projek kali ini kami menggunakan uji Durbin Watson untuk mendeteksi adanya Autokorelasi.

Uji Durbin Watson

Uji ini dikemukakan oleh statistikawan J. Durbin dan G.S. Watson, sehingga uji ini dikenal dengan nama Uji Durbin-Watson. Uji ini hanya digunakan untuk autokorelasi tingkat satu (first order autoregressive) yang mengambil bentuk:

\(e_t=\rho\ e_{t-1}+v_t\)

Adapun beberapa asumsi yang melandasi Uji Durbin-Watson ini antara lain:

  1. Uji Durbin-Watson diterapkan untuk model regresi yang mencakup parameter , dengan kata lain dipergunakan untuk model regresi yang mengandung intersep.

  2. Variabel-variabel penjelas , adalah nonstokastik, atau bersifat tetap dalam penarikan contoh yang berulang (Repeated Sampling).

  3. Bentuk gangguan dibangkitkan melalui pola regresi diri order pertama dengan mengambil bentuk: \(e_t=\rho\ e_{t-1}+v_t\)

  4. Model regresi tidak mencakup nilai-nilai lag dari variabel tak bebas sebagai suatu variabel penjelas.

  5. Tidak ada parameter yang hilang dalam data, dengan demikian uji Durbin-Watson dapat digunakan untuk model regresi yang dibangun berdasarkan data yang lengkap, terutama untuk data deret waktu (Supranto, 1995).

Uji Durbin-Watson ini dirumuskan sebagai berikut:

\(d=\frac{\sum_{i=2}^{n}\left(e_i-e_{i-1}\right)^2}{\sum_{i=1}^{n}e_i^2}\)

Kelebihan dari statistik Durbin–Watson adalah bahwa perhitungannya didasarkan atas nilai residual \(e_i\), yaitu selisih antara nilai aktual dan nilai prediksi yang diperoleh dari model regresi. Karena \(\sum e_i^2\) dan \(\sum e_{i-1}^2\) hanya berbeda satu observasi dan secara teori nilainya mendekati sama, maka keduanya dapat dianggap ekuivalen.

Dengan demikian, jika \(\sum e_i^2 \approx \sum e_{i-1}^2\), maka persamaan Durbin–Watson dapat dinyatakan kembali sebagai berikut:

\[ d = 2 \left[ 1 - \frac{\sum e_i e_{i-1}}{\sum e_i^2} \right] \]

Sebagai penduga dari koefisien autokorelasi tingkat satu (\(\rho\)), dengan nilai yang berada pada interval \(-1 < \rho < 1\), maka dengan menyederhanakan bentuk persamaan Durbin–Watson, dapat dituliskan sebagai berikut:

\[ d \approx 2(1 - \rho) \]

Ini berarti bila mendekati 0 yang menunjukkan tidak adanya autokorelasi, akan mendekati 2. Demikian pula bila mendekati 1, yang menunjukkan ada autokorelasi positif, akan mendekati 0, dan bila mendekati -1, ini menunjukkan ada autokorelasi negatif, akan mendekati 4 .

Dari uraian yang dikemukakan, maka dapat ditarik kesimpulan tentang beberapa sifat dari Uji Durbin-Watson antara lain:

1.\(H_0: \rho = 0 \quad (\text{Tidak ada autokorelasi})\) \(H_1: \rho \neq 0 \quad (\text{Ada autokorelasi})\)

2.\(H_0: \rho = 0 \quad (\text{Tidak ada autokorelasi})\) \(H_1: \rho > 0 \quad (\text{Ada autokorelasi positif})\)

3.\(H_0: \rho = 0 \quad (\text{Tidak ada autokorelasi})\) \(H_1: \rho < 0 \quad (\text{Ada autokorelasi negatif})\)

2.1.4 Uji Heteroskesdastisitas

Uji heteroskedastisitas untuk menyatakan dalam regresi dimana varian dari residual tidak sama untuk satu pengamatan ke pengamatan lain. Dalam regresi, salah satu asumsi yang harus dipenuhi adalah bahwa varian dari residual dari satu pengamatan ke pengamatan yang lain tidak memiliki pola tertentu. Pola yang tidak sama ini ditunjukkan dengan nilai yang tidak sama antar satu varian dari residual. Gejala yang tidak sama ini disebut dengan gejala heteroskedastisitas. dalam konteks heteroskedastisitas adalah mendeteksi apakah varians error (residual) dalam model regresi bersifat konstan atau tidak kita dapat menggunakan Uji Breusch Pagan.

Uji Breusch Pagan

Uji Breusch-Pagan merupakan prosedur statistik yang digunakan untuk mengidentifikasi adanya heteroskedastisitas dalam model regresi linier. Heteroskedastisitas muncul ketika varians residual tidak seragam pada setiap tingkat pengamatan. Kondisi ini tidak memengaruhi ketepatan koefisien regresi secara langsung, namun dapat menyebabkan nilai varians dan standar error menjadi tidak reliabel sehingga uji signifikansi koefisien dapat menghasilkan kesimpulan yang keliru.

Uji ini diperkenalkan oleh Trevor Breusch dan Adrian Pagan sebagai bagian dari metode Lagrange Multiplier Test. Prinsip dasar pengujiannya adalah memeriksa apakah varians residual dapat dijelaskan oleh variabel independen dalam model. Proses uji dilakukan dengan meregresikan nilai kuadrat residual terhadap variabel independen dan memanfaatkan nilai R-Square (R²) dari regresi tersebut sebagai dasar perhitungan statistik uji. Nilai uji yang diperoleh kemudian dibandingkan dengan distribusi Chi-Square.

Hipotesis yang digunakan dalam Breusch-Pagan Test adalah:

  • H0: Tidak terdapat heteroskedastisitas (varians residual bersifat konstan).

  • H1: Terdapat heteroskedastisitas (varians residual tidak konstan).

Kriteria pengambilan keputusan biasanya didasarkan pada nilai probabilitas (p-value), yaitu:

  • p-value > 0,05 menunjukkan tidak terjadi heteroskedastisitas.

  • p-value ≤ 0,05 mengindikasikan adanya heteroskedastisitas dalam model.

2.1.5 Uji Multikolinearitas

Uji multikolinearitas untuk menyatakan bahwa variabel independen harus terbebas dari gejala multikolinearitas. Gejala multikolinearitas adalah gejala korelasi antar variabel independen. Gejala ini ditunjukkan dengan korelasi yang signifikan antar variabel independen. Jika terjadi gejala multikolinearitas, salah satu langkah untuk memperbaiki model adalah dengan menghilangkan variabel dari model regresi. Dalam menentukan hipotesis yang diambil dalam uji multikolinearitas, diantaranya:

  • H0 : H0 diterima jika nilai r square = VIF > nilai 10,00, maka kesimpulan yang diambil terjadi multikolinearitas.
  • H1 : H1 diterima jika nilai r square = VIF < nilai 10,00, maka kesimpulan yang diambil tidak terjadi multikolinearitas.

VIF (Variance Inflation Factor) adalah ukuran statistik yang digunakan untuk mendeteksi gejala multikolinearitas dalam model regresi linier. Multikolinearitas terjadi ketika salah satu variabel independen memiliki hubungan (korelasi) yang tinggi dengan variabel independen lainnya, sehingga menyebabkan estimasi koefisien regresi menjadi tidak stabil.VIF dapat dihitung dengan rumus:

\(VIF=\frac{1}{1-R^2}\)

di mana:

R² adalah nilai koefisien determinasi dari hasil regresi suatu variabel independen terhadap variabel independen lainnya. Semakin besar nilai R², semakin besar nilai VIF yang menunjukkan multikolinearitas semakin tinggi.

2.2 Seleksi Model

Pada bagian ini dilakukan pemilihan model regresi yang paling sesuai dengan data penelitian. Proses seleksi model dilakukan untuk menentukan variabel independen yang benar-benar berpengaruh dan diperlukan dalam menjelaskan variabel dependen, sekaligus menghindari penggunaan variabel yang tidak relevan atau justru menurunkan kualitas model. Dengan langkah ini, diperoleh model regresi yang lebih sederhana namun tetap memiliki kemampuan prediksi yang baik dan memenuhi kriteria statistik. Metode seleksi yang digunakan mencakup forward selection, backward elimination, dan stepwise regression, sehingga hasil akhirnya dapat dievaluasi dan dibandingkan untuk memilih model terbaik.

2.2.1 All Possible Regression

All possible regression merupakan metode pemilihan model regresi terbaik dengan cara mengevaluasi semua kemungkinan regresi yang dapat dibuat berdasarkan kriteria tertentu. Kriteria yang digunakan antara lain nilai terbesar, nilai adjusted terbesar, dan nilai Cp Mallow terkecil.

Kelemahan dari metode ini adalah tidak praktis dan tidak mungkin dilakukan tanpa bantuan komputer. Hal ini disebabkan karena analisis harus dilakukan untuk setiap kemungkinan model regresi yang terbentuk. Semakin banyak variabel prediktor yang diuji, semakin banyak pula kemungkinan model regresi yang terbentuk, dan semakin banyak pula proses perhitungan yang diperlukan.

2.2.2 Metode Seleksi Maju (Forward Selection Method)

Metode seleksi maju merupakan teknik yang digunakan untuk mengurangi jumlah variabel melalui seleksi bertahap satu per satu variabel independen. Metode ini dimulai dengan memasukkan satu per satu variabel secara berurutan untuk dimodelkan dengan menggunakan metode yang ditentukan . Kemudian memilih model terbaik berdasarkan kriteria tertentu seperti R² terbesar untuk dipertahankan. Pada langkah kedua, dari model yang telah ditetapkan sebelumnya, masing-masing variabel independen yang tersisa ditambahkan secara berturut-turut sedemikian sehingga variabel berdasarkan kriteria R² terbesar dimasukkan ke dalam model. Proses dilakukan berulang sedemikian hingga mendapatkan model regresi terbaik dengan jumlah variabel optimum.

Kelebihan dari metode forward selection adalah sebagai alternatif untuk mengurangi kemungkinan adanya multikolinieritas dalam model yang terbentuk. Di sisi lain, metode ini juga memiliki kekurangan yaitu terdapat kemungkinan adanya lebih banyak variabel prediktor yang tidak begitu signifikan.

2.2.3 Metode Eliminasi Mundur (Backward Elimination Method)

Metode eliminasi mundur merupakan metode yang digunakan untuk mereduksi jumlah variabel melalui eliminasi variabel independen secara bertahap satu per satu. Metode ini dimulai dengan membuat model yang mencakup semua variabel independen. Pembatasan jumlah variabel independen pada model akan dicapai melalui tahapan berturut-turut dengan membandingkan efek setiap variabel dalam model berdasarkan ambang batas kriteria eliminasi. Variabel independen yang memiliki nilai kontribusi lebih rendah dari nilai yang ditetapkan dari kriteria eliminasi akan dihapus dari model, dengan kata lain variabel yang memberikan penurunan kinerja paling sedikit berdasarkan kriteria atau. Nilai atau nilai probabilitas adalah tingkat signifikansi marjinal dalam uji hipotesis statistik, yang menggambarkan seberapa besar kemungkinan hasil akan terjadi jika hipotesis nol benar. Pada setiap langkah, variabel yang tidak penting dieliminasi sedemikian hingga menghasilkan model dengan variabel optimum, ketika model memiliki nilai lebih rendah atau lebih tinggi dibandingkan model sebelumnya maka proses eliminasi terhenti.

2.2.4 Metode Regresi Bertahap (Stepwise Regression Method)

Dalam kasus metode regresi linear berganda, ada kemungkinan untuk menguji tingkat signifikansi statistik dari koefisien variabel prediksi. Disarankan untuk mempertahankan variabel dalam model (dengan toleransi tinggi) yang memiliki koefisien signifikan secara statistik. Semakin tinggi rasio jumlah variabel independen yang signifikan secara statistik terhadap jumlah total variabel independen, maka semakin kuat prediksi variabel independen dan kesalahan model regresi. Model regresi bertahap digunakan jika jumlah variabel independen tinggi . Teknik ini telah diterapkan untuk menilai jumlah prediktor optimal yang akan disertakan dalam model regresi berganda. Metode bertahap dapat diterapkan dalam dua varian, yaitu metode bertahap dengan seleksi maju dan metode regresi dengan eliminasi mundur. Tahapan pembentukan model diawali dari model konstan, algoritma akan menambahkan dan menghapus variabel di dalam model berdasarkan nilai \(F_{value}\) atau \(P_{value}\). Proses berhenti ketika nilai tertentu masih signifikan dan tidak ada lagi variabel independen yang dapat ditambahkan atau dihapus.

2.2.5 Uji Kebaikan Model

Salah satu cara dalam mengukur kebaikan model regresi adalah dengan menghitung nilai koefisien determinasi (R²) dan simpangan baku residual (RMSE). Koefisien determinasi (R² ) menunjukkan jumlah variasi proporsional dalam variabel dependen yang dijelaskan oleh variabel independen dalam model regresi linier. Nilai dapat dihitung dengan persamaan berikut: \(R^2=1-\frac{SS_{res}}{SS_{tot}}\)

Dengan \(SS_{res}=\sum_{i=1}^{n}{({\hat{y}}_i-y_i)^2}\) merupakan jumlah kuadrat residual dan \(SS_{tot}=\sum_{i=1}^{n}{({\hat{y}}_i-y_i)^2}\) merupakan jumlah kuadrat total, merupakan hasil prediksi model dan adalah rata-rata variabel dependen. Sementara itu, RMSE dapat dihitung sebagai ukuran tentang seberapa akurat model dalam memprediksi variabel dependen dengan memperkirakan.

2.3 Pengujian Korelasi Antar Variabel

Analisis korelasi berasal dari kata correlation analysis, digunakan untuk mengetahui arah hubungan, kuat hubungan, dan signifikansi kuatnya hubungan antara dua variabel atau lebih. Dua variabel dikatakan berkorelasi apabila perubahan pada salah satu variabel disertai dengan perubahan pada variabel lainnya secara linier, baik dalam arah yang sama ataupun arah yang sebaliknya. Kuatnya hubungan antara variabel dinyatakan dengan ukuran statistik yang dinamakan koefisien korelasi.

Jenis koefisien korelasi yang digunakan untuk mengukur kuatnya hubungan antara dua variabel, antara lain bergantung pada bergantung pada skala ukur variabel:

1. Apabila kedua variabel berskala numerik maka dapat digunakan koefisien korelasi Pearson, Spearman, atau Kendall’s tau-b.

2. Apabila kedua variabel berskala kategorik ordinal maka dapat digunakan koefisien korelasi Gamma, Somers’d, Kendall’s tau-b, atau Kendall’s tau-c.

3. Apabila kedua variabel berskala kategorik nominal maka dapat digunakan koefisien korelasi contingency coefficient, Phi dan Cramer’s V, Lambda, atau uncertainty coefficient.

4. Apabila salah satu variabel berskala nominal dan variabel yang lain berskala interval maka dapat digunakan koefisien korelasi.

Pada populasi, koefisien korelasi atau kuatnya hubungan antara variabel x dan y ditulis ρₓᵧ (ρ dibaca rho). Nilai ρₓᵧ berkisar antara −1 ≤ ρₓᵧ ≤ 1. Pada sampel, koefisien korelasi atau kuatnya hubungan antara variabel x dan y ditulis rₓᵧ. Nilai rₓᵧ berkisar antara −1 ≤ rₓᵧ ≤ 1. Apabila rₓᵧ bernilai positif maka hubungan antar variabel x dan y bersifat searah, yaitu apabila satu variabel nilainya meningkat maka variabel yang lain nilainya meningkat. Atau sebaliknya, apabila satu variabel nilainya menurun maka variabel yang lain nilainya menurun. Arah hubungan positif. Apabila rₓᵧ bernilai negatif maka hubungan kedua variabel bersifat berlawanan arah, yaitu apabila variabel yang satu nilainya meningkat maka variabel yang lain nilainya menurun, atau sebaliknya. Arah hubungan negatif.

2.4 Analisis Regresi Linier

Analisis regresi bertujuan untuk menjelaskan atau memodelkan hubungan antarvariabel. Di mana terdapat variabel y sebagai variabel respons, output, tak bebas, atau variabel yang dijelaskan; dan variabel x sebagai variabel prediktor, masukan, bebas, atau variabel penjelas.

Dalam menyelesaikan penelitian, dibutuhkan alat analisa untuk memberikan jawaban terhadap masalah yang diteliti. Alat analisa ini disesuaikan dengan variabel yang diteliti. Jika penelitian akan mengetahui pengaruh dari suatu variabel terhadap variabel lainnya, maka alat analisa yang bisa digunakan untuk menganalisa salah satunya adalah dengan menggunakan Regresi Linier.

Analisa regresi menganalisa bagaimana hubungan antara dua variabel atau lebih. Variabel tersebut yakni:

  • Variabel independen (bebas), biasanya disimbolkan dengan variabel X. Variabel independen adalah variabel yang mempengaruhi variabel lain.

  • Variabel dependen (terikat), biasanya disimbolkan dengan variabel Y. Variabel dependen adalah variabel yang dipengaruhi oleh variabel lain.

Apabila dalam analisis korelasi dicari arah dan kuatnya hubungan antarvariabel, maka analisis regresi merupakan analisis lanjutan yang digunakan untuk memprediksikan seberapa jauh perubahan nilai suatu variabel apabila dilakukan manipulasi (dinaik­-turunkan) pada nilai variabel lain. Sehingga, analisis regresi dapat membantu dalam pembuatan keputusan apakah naik turunnya suatu variabel dapat dilakukan dengan peningkatan atau penurunan variabel lain. Misalnya, naiknya jumlah penjualan (y) dapat dilakukan dengan menaikkan jumlah iklan (x) atau tidak.

Pembuatan model regresi: \(\widehat{y_i}=b_0+b_1x_i\)

di mana:

\({y_i}\): nilai estimasi variabel terikat ke-i dengan dipengaruhi variabel bebas ke-i

  • \(b_0\): intercept

  • \(b_1\) : slope

  • \(x_i\) : nilai variabel bebas ke-i

2.4.1 Regresi Linear Berganda

Regresi linier berganda merupakan model persamaan yang menjelaskan hubungan satu variabel tak bebas/response (Y) dengan dua atau lebih variabel bebas/predictor (X1, X2,… Xn). Tujuan dari uji regresi linier berganda adalah untuk memprediksi nilai variabel tak bebas/response (Y) apabila nilai-nilai variabel bebasnya/predictor (X1, X2, … Xn) diketahui. Di samping itu juga untuk dapat mengetahui bagaimana arah hubungan variabel tak bebas dengan variabel-variabel bebasnya.

Persamaan regresi linier berganda secara matematik diekspresikan oleh: \(Y=a+b_1X_1+b_2X_2+\dots+b_nX_n\)

yang mana:

  • \(Y\) = variabel tak bebas (nilai variabel yang akan diprediksi)

  • \(a\) = konstanta

  • \(b_1,b_2,\ldots,b_n\) = nilai koefisien regresi

  • \(X_1,X_2,\ldots,X_n\) = variabel bebas

Bila terdapat 2 variabel bebas, yaitu X1 dan X2, maka bentuk persamaan regresinya adalah:

\(Y=a+b_1X_1+b_2X_2\)

  1. Nilai = 0. Dalam hal ini variabel Y tidak dipengaruhi oleh X1 dan X2. Nilainya negatif. Di sini terjadi hubungan dengan arah terbalik

  2. antara variabel tak bebas Y dengan variabel-variabel X1 dan X2.

  3. Nilainya positif. Di sini terjadi hubungan yang searah antara variabel tak bebas Y dengan variabel bebas X1 dan X2.

2.4.2 Uji Lanjut (Confidence Interval)

Pada tahap ini dilakukan uji lanjut menggunakan confidence interval atau interval kepercayaan untuk melihat signifikansi masing-masing koefisien regresi dalam model. Fungsi yang digunakan dalam R adalah confint(model_lm, level = 0.95), di mana tingkat kepercayaan yang digunakan sebesar 95%.

Rumus untuk menghitung confidence interval (CI) secara umum adalah:

  • \({CI}=\mathrm{Estimasi}\pm\mathrm{Margin\ of\ error}\)

  • \(\mathrm{Estimasi\ titik}\pm\mathrm{Nilai\ kritis\ (z)}\times\mathrm{Standar\ error\ dari\ estimasi\ titik}\)

Estimasi titik mengacu pada nilai statistik yang dihitung dari data sampel. Nilai kritis atau nilai z bergantung pada tingkat kepercayaan dan ditentukan berdasarkan distribusi normal baku. Untuk tingkat kepercayaan 90%, 95%, dan 99%, nilai z masing-masing adalah 1,65; 1,96; dan 2,58. Standar error bergantung pada ukuran sampel dan tingkat penyebaran data pada variabel yang diukur.

Perhitungan interval kepercayaan untuk nilai rata-rata relatif sederhana. Rumusnya adalah:

  • \({CI}=\mathrm{Rata-rata}\pm\mathrm{nilai\ z}\times\mathrm{Standar\ error\ mean\ (SEM)}\)

  • \({Rata-rata}\pm\mathrm{nilai z}\times(\frac{\mathrm{Standar\ deviasi}}{\sqrt{n}})\)

Jika kita menghitung CI 95% untuk rata-rata, maka nilai z yang digunakan adalah 1,96. Nilai margin of error bergantung pada ukuran sampel dan tingkat variabilitas data. Secara alami, interval kesalahan akan semakin kecil apabila ukuran sampel (n) lebih besar atau tingkat variabilitas data (standar deviasi) lebih kecil, karena keduanya memengaruhi besar kecilnya nilai SEM.

2.5 Uji Hipotesis

Pengujian hipotesis dapat didasarkan dengan menggunakan dua hal, yaitu: tingkat signifikansi atau probabilitas (α) dan tingkat kepercayaan atau confidence interval. Didasarkan tingkat signifikansi pada umumnya orang menggunakan 0,05. Kisaran tingkat signifikansi mulai dari 0,01 sampai dengan 0,1. Yang dimaksud dengan tingkat signifikansi adalah probabilitas melakukan kesalahan tipe I, yaitu kesalahan menolak hipotesis ketika hipotesis tersebut benar. Tingkat kepercayaan pada umumnya ialah sebesar 95%, yang dimaksud dengan tingkat kepercayaan ialah tingkat di mana sebesar 95% nilai sampel akan mewakili nilai populasi di mana sampel berasal. Dalam melakukan uji hipotesis terdapat dua hipotesis, yaitu:

  • H_0(hipotesis nol)
  • H_1(hipotesis alternatif)

Contoh uji hipotesis misalnya rata-rata produktivitas pegawai sama dengan 10 \((\mu_x=10)\), maka bunyi hipotesisnya yaitu:

  • H_0: Rata-rata produktivitas pegawai sama dengan 10
  • H_1: Rata-rata produktivitas pegawai tidak sama dengan 10

Hipotesis statistiknya:

  • H_0:\(\mu_x=10\)
  • H_1:\(\mu_x\>10\) untuk uji satu sisi (one tailed) atau H_1:\(\mu_x<10\)
  • H_1:\(\mu_x\neq10\) untuk uji dua sisi (two tailed)

Beberapa hal yang harus diperhatikan dalam uji hipotesis, yaitu:

  • Untuk pengujian hipotesis kita menggunakan data sampel.

  • Dalam pengujian akan menghasilkan dua kemungkinan, yaitu pengujian signifikan secara statistik jika kita menolak \(H_0\), dan pengujian tidak signifikan secara statistik jika kita menerima \(H_0\).

  • Jika kita menggunakan nilai t, maka jika nilai t yang semakin besar atau menjauhi 0, kita akan cenderung menolak \(H_0\); sebaliknya jika nilai t semakin kecil atau mendekati 0 kita akan cenderung menerima \(H_0\).

Menggunakan kurva untuk menguji hipotesis dapat digambarkan, sebagai berikut:

  1. Untuk Uji Dua Sisi

  2. Untuk Uji Sebelah Kanan

  3. Untuk Uji Sebelah Kiri


BAB III :METODE ANALISIS DATA

3.1 Jenis dan Sumber Data

Data yang digunakan dalam penelitian ini merupakan data sekunder yang diperoleh dari platform Kaggle melalui tautan resmi berikut: https://www.kaggle.com/datasets/suraj520/dairy-goods-sales-dataset/data

Dataset yang digunakan berjudul Dairy Goods Sales Dataset yang berisi data penjualan produk olahan susu pada suatu usaha peternakan Dalam penelitian ini, peneliti menggunakan sebanyak 80 observasi pertama dari dataset tersebut dan memilih 6 variabel utama, yang terdiri dari 1 variabel dependen dan 5 variabel independen. Pemilihan 80 data dilakukan untuk memudahkan pengolahan dan analisis data dalam lingkup tugas akademik.

Data disimpan dalam format Microsoft Excel (.xlsx), yang kemudian diimpor ke dalam perangkat lunak R menggunakan package readxl agar dapat dianalisis secara statistik. Seluruh data yang digunakan bersifat kuantitatif, karena masing-masing variabel dinyatakan dalam bentuk angka yang dapat dihitung dan dibandingkan secara matematis.

Dalam penelitian ini digunakan satu variabel terikat (dependen) dan lima variabel bebas (independen). Variabel terikat adalah:

Variabel terikat (Y):

  • Approx. Total Revenue (INR)

Variabel bebas (X):

  • X1: Total Land Area (acres)

  • X2: Number of Cows

  • X3: Quantity (liters/kg)

  • X4: Price per Unit

  • X5: Quantity Sold (liters/kg)

3.2 Tahapan Analisis

3.2.1 Input dan Pembacaan Data

Sebelum membangun model regresi berganda, dilakukan pemeriksaan asumsi klasik pada masing-masing variabel independen untuk memastikan validitas model.

Tahapan analisis data dimulai dengan eksplorasi data awal, yaitu memuat dataset ke dalam R menggunakan fungsi “read_excel()” dari paket readxl dan meninjau data untuk memastikan seluruh observasi dan variabel telah terbaca dengan benar. Selanjutnya, setiap kolom pada dataset didefinisikan sebagai variabel dependen dan independen untuk memudahkan analisis selanjutnya, yaitu Y untuk Approx. Total Revenue (INR) dan X1–X5 untuk variabel independen yang meliputi Total Land Area, Number of Cows, Quantity, Price per Unit, dan Quantity Sold.

library(readxl)
library(lmtest)
library(car)
library(readxl)
#Input Data
data_dairy = read_excel("D:/Coolyeah/Mata Kuliah/Semester 3/Analisis Regresi/Project/Data_Project_Anreg.xlsx")
data_dairy
View(data_dairy)
# Definisi Variabel
Y = data_dairy$`Approx, Total Revenue(INR)`
X1 = data_dairy$`Total Land Area (acres)`
X2 = data_dairy$`Number of Cows`
X3 = data_dairy$`Quantity (liters/kg)`
X4 = data_dairy$`Price per Unit`
X5 = data_dairy$`Quantity Sold (liters/kg)`

3.2.2 Uji Asumsi Klasik

Setelah data siap, setiap variabel independen diuji terhadap asumsi dasar regresi. Pemeriksaan ini bertujuan untuk memastikan bahwa setiap variabel memenuhi syarat yang diperlukan sebelum dimasukkan ke dalam model regresi berganda. Tahapan uji asumsi dilakukan sebagai berikut:

  • Heteroskedastisitas: menggunakan fungsi bptest() dari paket lmtest, memastikan varians residual konstan menggunakan uji Breusch-Pagan.

  • Autokorelasi: memastikan residual tidak berkorelasi dengan dirinya sendiri menggunakan uji Durbin-Watson dengan dwtest() dari paket yang sama.

  • Linieritas: memeriksa hubungan linear antara setiap variabel independen dengan variabel dependen menggunakan scatter plot residual dan crPlots() dari paket car.

  • Normalitas Residual: QQ plot (qqnorm() dan qqline()) dan uji Kolmogorov-Smirnov (ks.test()).

3.2.2.1 Uji Asumsi Variabel X1 (Total Land Area (acres))

Pengujian dilakukan dengan membangun model regresi sederhana antara Y dan X1, kemudian dilakukan pengujian asumsi klasik menggunakan residual dari model tersebut.

library(lmtest)
#Uji Asumsi Variabel X1
model_1 <- lm(Y ~ X1, data = data_dairy)
summary(model_1)

galat_1 <- model_1$residuals

#Heteroskedastisitas X1
## Uji Breusch-Pagan
bptest(model_1)

#Autokorelasi X1
## Durbin Watson Test
dwtest(model_1, alternative = "two.sided")

#Linieritas X1
plot(fitted(model_1), galat_1)
abline(0,0)
crPlots(model_1)

#Normalitas X1
## Q-Q Plot 
qqnorm(galat_1)
qqline(galat_1, col="red")
## Kolmogorov Smirnov
ks.test(galat_1, "pnorm", mean(galat_1), sd(galat_1))

3.2.2.2 Uji Asumsi Variabel X2 (Number of Cows)

Pengujian dilakukan dengan membangun model regresi sederhana antara Y dan X2, kemudian dilakukan pengujian asumsi klasik menggunakan residual dari model tersebut.

#Uji Asumsi Variabel X2
model_2 <- lm(Y ~ X2, data = data_dairy)
summary(model_2)

galat_2 <- model_2$residuals

#Heteroskedastisitas X2
## Uji Breusch-Pagan
bptest(model_2)

#Autokorelasi X2
## Durbin Watson Test
dwtest(model_2, alternative = "two.sided")

#Linieritas X2
plot(fitted(model_2), galat_2)
abline(0,0)
crPlots(model_2)

#Normalitas X2
## Q-Q Plot 
qqnorm(galat_2)
qqline(galat_2, col="blue")
## Kolmogorov Smirnov
ks.test(galat_2, "pnorm", mean(galat_2), sd(galat_2))

3.2.2.3. Uji Asumsi Variabel X3 (Quantity (liters/kg))

Pengujian dilakukan dengan membangun model regresi sederhana antara Y dan X3, kemudian dilakukan pengujian asumsi klasik menggunakan residual dari model tersebut.

#Uji Asumsi Variabel X3
model_3 <- lm(Y ~ X3, data = data_dairy)
summary(model_3)

galat_3 <- model_3$residuals

#Heteroskedastisitas X3
## Uji Breusch-Pagan
bptest(model_3)

#Autokorelasi X3
## Durbin Watson Test
dwtest(model_3, alternative = "two.sided")

#Linieritas X3
plot(fitted(model_3), galat_3)
abline(0,0)
crPlots(model_3)

#Normalitas X3
## Q-Q Plot 
qqnorm(galat_3)
qqline(galat_3, col="purple")
## Kolmogorov Smirnov
ks.test(galat_3, "pnorm", mean(galat_3), sd(galat_3))

3.2.2.4 Uji Asumsi Variabel X4 (Price per Unit)

Pengujian dilakukan dengan membangun model regresi sederhana antara Y dan X4, kemudian dilakukan pengujian asumsi klasik menggunakan residual dari model tersebut.

#Uji Asumsi Variabel X4
model_4 <- lm(Y ~ X4, data = data_dairy)
summary(model_4)

galat_4 <- model_4$residuals

#Heteroskedastisitas X4
## Uji Breusch-Pagan
bptest(model_4)

#Autokorelasi X4
## Durbin Watson Test
dwtest(model_4, alternative = "two.sided")

#Linieritas X4
plot(fitted(model_4), galat_4)
abline(0,0)
crPlots(model_4)

#Normalitas X4
## Q-Q Plot 
qqnorm(galat_4)
qqline(galat_4, col="magenta")
## Kolmogorov Smirnov
ks.test(galat_4, "pnorm", mean(galat_4), sd(galat_4))

3.2.2.5 Uji Asumsi Variabel X5 (Quantity Sold (liters/kg))

Pengujian dilakukan dengan membangun model regresi sederhana antara Y dan X5, kemudian dilakukan pengujian asumsi klasik menggunakan residual dari model tersebut.

#Uji Asumsi Variabel X5
model_5 <- lm(Y ~ X5, data = data_dairy)
summary(model_5)

galat_5 <- model_5$residuals

#Heteroskedastisitas X5
## Uji Breusch-Pagan
bptest(model_5)

#Autokorelasi X5
## Durbin Watson Test
dwtest(model_5, alternative = "two.sided")

#Linieritas X5
plot(fitted(model_5), galat_5)
abline(0,0)
crPlots(model_5)

#Normalitas X5
## Q-Q Plot 
qqnorm(galat_5)
qqline(galat_5, col="cyan")
## Kolmogorov Smirnov
ks.test(galat_5, "pnorm", mean(galat_5), sd(galat_5))

Dengan memastikan semua asumsi terpenuhi, model regresi berganda yang dibangun akan valid dan koefisiennya dapat diinterpretasikan secara akurat.

3.2.3 Seleksi Model: Forward, Backward, dan Stepwise

Seleksi model dilakukan untuk memilih kombinasi variabel independen yang paling baik menjelaskan variasi variabel dependen (Y) dengan model sekecil mungkin namun informatif. Kriteria yang digunakan dalam seleksi adalah Akaike Information Criterion (AIC) model dengan AIC terkecil dianggap lebih baik secara trade-off antara kecocokan dan kompleksitas model.

Pada penelitian ini, dilakukan tiga prosedur:

  1. Pemeriksaan multikolinearitas pada model penuh (semua variabel).
  2. Seleksi model manual/terbuka (all-possible regressions) sebagai eksplorasi.
  3. Seleksi model otomatis: Forward selection, Backward elimination, dan Stepwise (kombinasi forward+backward) berbasis stepAIC().

Semua analisis berikut menggunakan sampel yang telah dipilih (data_sample).

3.2.3.1 Uji Multikolinearitas pada Model Penuh

Uji multikolinearitas dilakukan menggunakan fungsi vif() dari paket car untuk memastikan tidak terdapat korelasi tinggi antar variabel independen; nilai VIF > 10 menunjukkan multikolinearitas tinggi, tetapi seluruh variabel pada analisis ini memiliki VIF < 10, sehingga semua variabel dapat digunakan dalam pembangunan model regresi berganda.

modelpenuh = lm(Y~X1+X2+X3+X4+X5, data = data_dairy)
summary(modelpenuh)
vif(modelpenuh)

3.2.3.2 All-possible Regressions

Untuk memahami pengaruh masing-masing kombinasi variabel independen terhadap variabel dependen, dilakukan all possible regression. Pada tahap ini, dibuat model regresi dari semua kombinasi satu, dua, tiga, empat, hingga lima variabel independen. Dari all possible regression dapat diperoleh gambaran lengkap mengenai performa semua kemungkinan model sebelum dilakukan pemilihan model secara otomatis

# ALL POSSIBLE REGRESSION

# 0 variabel (model kosong)
Model0 = lm(Y ~ 1, data = data_dairy)

# 1 variabel
Model1 = lm(Y~X1, data = data_dairy)
summary(Model1)
Model2 = lm(Y~X2, data = data_dairy)
summary(Model2)
Model3 = lm(Y~X3, data = data_dairy)
summary(Model3)
Model4 = lm(Y~X4, data = data_dairy)
summary(Model4)
Model5 = lm(Y~X5, data = data_dairy)
summary(Model5)

# 2 variabel
Model6 = lm(Y~X1+X2, data = data_dairy)
summary(Model6)
Model7 = lm(Y~X1+X3, data = data_dairy)
summary(Model7)
Model8 = lm(Y~X1+X4, data = data_dairy)
summary(Model8)
Model9 = lm(Y~X1+X5, data = data_dairy)
summary(Model9)
Model10 = lm(Y~X2+X3, data = data_dairy)
summary(Model10)
Model11 = lm(Y~X2+X4, data = data_dairy)
summary(Model11)
Model12 = lm(Y~X2+X5, data = data_dairy)
summary(Model12)
Model13 = lm(Y~X3+X4, data = data_dairy)
summary(Model13)
Model14 = lm(Y~X3+X5, data = data_dairy)
summary(Model14)
Model15 = lm(Y~X4+X5, data = data_dairy)
summary(Model15)

# 3 variabel
Model16 = lm(Y~X1+X2+X3, data = data_dairy)
summary(Model16)
Model17 = lm(Y~X1+X2+X4, data = data_dairy)
summary(Model17)
Model18 = lm(Y~X1+X2+X5, data = data_dairy)
summary(Model18)
Model19 = lm(Y~X1+X3+X4, data = data_dairy)
summary(Model19)
Model20 = lm(Y~X1+X3+X5, data = data_dairy)
summary(Model20)
Model21 = lm(Y~X1+X4+X5, data = data_dairy)
summary(Model21)
Model22 = lm(Y~X2+X3+X4, data = data_dairy)
summary(Model22)
Model23 = lm(Y~X2+X3+X5, data = data_dairy)
summary(Model23)
Model24 = lm(Y~X2+X4+X5, data = data_dairy)
summary(Model24)
Model25 = lm(Y~X3+X4+X5, data = data_dairy)
summary(Model25)

# 4 variabel
Model26 = lm(Y~X1+X2+X3+X4, data = data_dairy)
summary(Model26)
Model27 = lm(Y~X1+X2+X3+X5, data = data_dairy)
summary(Model27)
Model28 = lm(Y~X1+X2+X4+X5, data = data_dairy)
summary(Model28)
Model29 = lm(Y~X1+X3+X4+X5, data = data_dairy)
summary(Model29)
Model30 = lm(Y~X2+X3+X4+X5, data = data_dairy)
summary(Model30)

# 5 variabel (model penuh)
Model31 = lm(Y~X1+X2+X3+X4+X5, data = data_dairy)
summary(Model31)

3.2.3.3 Forward, Backward, dan Stepwise

FORWARD SELECTION

Proses forward selection dimulai dari model kosong yang hanya memuat intercept. Variabel independen kemudian ditambahkan satu per satu ke dalam model berdasarkan kriteria AIC terkecil. Iterasi ini dilanjutkan hingga penambahan variabel baru tidak lagi menurunkan nilai AIC.

# FORWARD SELECTION

# 0 VARIABEL (MODEL KOSONG)
Model0 = lm(Y ~ 1, data = data_dairy)   # hanya intercept
AIC(Model0)          # titik awal pemilihan model

# 1 VARIABEL
# Tambah X1
Model1  = lm(Y ~ X1, data = data_dairy)
AIC11 <- AIC(Model1)
# Tambah X2
Model2  = lm(Y ~ X2, data = data_dairy) 
AIC12 <- AIC(Model2)
# Tambah X3
Model3  = lm(Y ~ X3, data = data_dairy) 
AIC13 <- AIC(Model3)
# Tambah X4
Model4  = lm(Y ~ X4, data = data_dairy)
AIC14 <- AIC(Model4)
# Tambah X5
Model5  = lm(Y ~ X5, data = data_dairy) 
AIC15 <- AIC(Model5)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe1f <- data.frame(
  Model1variabel = c("X1","X2","X3","X4","X5"),
  AIC = c(AIC11,AIC12,AIC13,AIC14,AIC15)
)
dataframe1f

# 2 VARIABEL (tambahkan variabel lain ke X5)
# Tambah X1
Model9 = lm(Y ~ X5 + X1, data = data_dairy)
AIC21 <- AIC(Model9)
# Tambah X2
Model12 = lm(Y ~ X5 + X2, data = data_dairy)
AIC22 <- AIC(Model12)
# Tambah X3
Model14 = lm(Y ~ X5 + X3, data = data_dairy)
AIC23 <- AIC(Model14)
# Tambah X4
Model15 = lm(Y ~ X5 + X4, data = data_dairy)
AIC24 <- AIC(Model15)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe2f <- data.frame(
  Model = c("X5+X1","X5+X2","X5+X3","X5+X4"),
  AIC = c(AIC21,AIC22,AIC23,AIC24)
)
dataframe2f

# 3 VARIABEL (tambahkan variabel lain ke X5 + X4)
# Tambah X1
Model21 = lm(Y ~ X5 + X4 + X1, data = data_dairy)
AIC31 <- AIC(Model21)
# Tambah X2 
Model24 = lm(Y ~ X5 + X4 + X2, data = data_dairy)
AIC32 <- AIC(Model24)
# Tambah X3
Model25 = lm(Y ~ X5 + X4 + X3, data = data_dairy)
AIC33 <- AIC(Model25)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe3f <- data.frame(
  Model = c("X5+X4+X1","X5+X4+X2","X5+X4+X3"),
  AIC = c(AIC31,AIC32,AIC33)
)
dataframe3f

# Karena AIC memburuk, maka 
# Model Terbaik Y ~ X5 + X4

Model terbaik yang dihasilkan dari forward selection adalah model dengan kombinasi variabel yang menghasilkan AIC paling rendah, yaitu X4 (Price per Unit) dan X5 (Quantity Sold).

BACKWARD SELECTION

Metode backward elimination dimulai dari model penuh yang memuat semua lima variabel independen. Selanjutnya, variabel dihapus satu per satu berdasarkan nilai AIC, di mana variabel yang penghapusannya menyebabkan penurunan AIC paling besar akan dihapus terlebih dahulu. Proses ini berlanjut hingga penghapusan variabel selanjutnya justru meningkatkan nilai AIC.

# BACKWARD SELECTION

# Model penuh
# 5 variabel
Model31 = lm(Y~X1+X2+X3+X4+X5, data = data_dairy)
AIC(Model31)

# 4 variabel
# Buang X5
Model26 = lm(Y~X1+X2+X3+X4, data = data_dairy)
AIC14 <- AIC(Model26)
# Buang X4
Model27 = lm(Y~X1+X2+X3+X5, data = data_dairy)
AIC24 <- AIC(Model27)
#Buang X3
Model28 = lm(Y~X1+X2+X4+X5, data = data_dairy)
AIC34 <- AIC(Model28)
# Buang X2
Model29 = lm(Y~X1+X3+X4+X5, data = data_dairy)
AIC44 <- AIC(Model29)
# Buang X1
Model30 = lm(Y~X2+X3+X4+X5, data = data_dairy)
AIC54 <- AIC(Model30)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe1b <- data.frame(
  Model = c("X1+X2+X3+X4","X1+X2+X3+X5","X1+X2+X4+X5","X1+X3+X4+X5","X2+X3+X4+X5"),
  AIC = c(AIC14,AIC24,AIC34,AIC44,AIC54)
)
dataframe1b


# AIC TERKECIL BUANG X1
# 3 Variabel
# Buang X1 dan X5
Model22 = lm(Y~X2+X3+X4, data = data_dairy)
AIC13 <- AIC(Model22)
# Buang X1 dan X4
Model23 = lm(Y~X2+X3+X5, data = data_dairy)
AIC23 <- AIC(Model23)
# Buang X1 dan X3 
Model24 = lm(Y~X2+X4+X5, data = data_dairy)
AIC33 <- AIC(Model24)
# Buang X1 dan X2
Model25 = lm(Y~X3+X4+X5, data = data_dairy)
AIC43 <- AIC(Model25)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe2b <- data.frame(
  Model = c("X2+X3+X4","X2+X3+X5","X2+X4+X5","X3+X4+X5"),
  AIC = c(AIC13,AIC23,AIC33,AIC34)
)
dataframe2b

# 2 Variabel
# AIC TERKECIL BUANG X1 DAN X3
# Buang X1, X3, X5
Model11 = lm(Y~X2+X4, data = data_dairy)
AIC12 <- AIC(Model11)
# Buang X1, X3, X4
Model12 = lm(Y~X2+X5, data = data_dairy)
AIC22 <- AIC(Model12)
# Buang X1, X3, X2
Model15 = lm(Y~X4+X5, data = data_dairy)
AIC32 <- AIC(Model15)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe3b <- data.frame(
  Model = c("X2+X4","X2+X5","X4+X5"),
  AIC = c(AIC12,AIC22,AIC32)
)
dataframe3b

# 1 Variabel
# AIC TERKECIL BUANG X1, X2, X3
# Buang X1, X2, X3, X5
Model4 = lm(Y~X4, data = data_dairy)
AIC11 <- AIC(Model4)
# Buang X1, X2, X3, X4
Model5 = lm(Y~X5, data = data_dairy)
AIC21 <- AIC(Model5)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe4b <- data.frame(
  Model = c("X4","X5"),
  AIC = c(AIC11,AIC21)
)
dataframe4b

# Karena AIC memburuk, maka 
# Model Terbaik Y ~ X4 + X5

Model terbaik yang diperoleh melalui backward elimination adalah X4 (Price per Unit) dan X5 (Quantity Sold)

STEPWISE SELECTION

Stepwise selection merupakan metode gabungan dari forward dan backward. Proses ini dimulai dari model kosong, di mana variabel ditambahkan satu per satu (forward) dan secara bersamaan dievaluasi untuk kemungkinan penghapusan (backward). Iterasi dihentikan ketika penambahan atau penghapusan variabel tidak lagi memperbaiki nilai AIC.

# STEPWISE SELECTION

# INISIALISASI (Model Kosong)
Model0 = lm(Y ~ 1, data = data_dairy)
AIC0 <- AIC(Model0)
AIC0

# ITERASI 1
## Fase Forward 
# Tambah X1
Model1  = lm(Y ~ X1, data = data_dairy)
AIC1 <- AIC(Model1)
# Tambah X2
Model2  = lm(Y ~ X2, data = data_dairy) 
AIC2 <- AIC(Model2)
# Tambah X3
Model3  = lm(Y ~ X3, data = data_dairy) 
AIC3 <- AIC(Model3)
# Tambah X4
Model4  = lm(Y ~ X4, data = data_dairy)
AIC4 <- AIC(Model4)
# Tambah X5
Model5  = lm(Y ~ X5, data = data_dairy) 
AIC5 <- AIC(Model5)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe1s <- data.frame(
  Model = c("X1","X2","X3","X4","X5"),
  AIC = c(AIC1,AIC2,AIC3,AIC4,AIC5)
)
dataframe1s
cat("AIC terkecil:", min(dataframe1s$AIC))

## Fase Backward
# Hapus X5
Model5_drop = lm(Y ~ 1, data = data_dairy)
AIC5drop <- AIC(Model5_drop)
AIC5drop
if (AIC5drop < min(dataframe1s$AIC)) {cat("AIC membaik")} else {cat("AIC memburuk")}

# Karena AIC memburuk, maka pertahankan X5

# ITERASI 2
## Fase Forward: X5 + X lainnya
# Tambah X1
Model9 = lm(Y ~ X5 + X1, data = data_dairy)
AIC9 <- AIC(Model9)
# Tambah X2
Model12 = lm(Y ~ X5 + X2, data = data_dairy)
AIC12 <- AIC(Model12)
# Tambah X3
Model14 = lm(Y ~ X5 + X3, data = data_dairy)
AIC14 <- AIC(Model14)
# Tambah X4 
Model15 = lm(Y ~ X5 + X4, data = data_dairy)
AIC15 <- AIC(Model15)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe2s <- data.frame(
  Model = c("X5+X1","X5+X2","X5+X3","X5+X4"),
  AIC = c(AIC9,AIC12,AIC14,AIC15)
)
dataframe2s
cat("AIC terkecil:", min(dataframe2s$AIC))
if (min(dataframe2s$AIC) < min(dataframe1s$AIC)) {cat("AIC membaik")} else {cat("AIC memburuk")}

## Fase Backward: Buang satu variabel
# Hapus X5
Model15_dropX5 = lm(Y ~ X4, data = data_dairy)
AIC15D1 <- AIC(Model15_dropX5)
# Hapus X4
Model15_dropX4 = lm(Y ~ X5, data = data_dairy)
AIC15D2 <- AIC(Model15_dropX4)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe3s <- data.frame(
  Model = c("X4","X5"),
  AIC = c(AIC15D1,AIC15D2)
)
dataframe3s
cat("AIC terkecil:", min(dataframe3s$AIC))
if (min(dataframe3s$AIC) < min(dataframe2s$AIC)) {cat("AIC membaik")} else {cat("AIC memburuk")}

# Karena AIC memburuk, maka pertahankan model X4 + X5

# ITERASI 3
## Fase Forward: X4 + X5 + X lainnya
# Tambah X1
Model21 = lm(Y~X1+X4+X5,data = data_dairy)
AIC21 <- AIC(Model21)
# Tambah X2
Model24 = lm(Y~X2+X4+X5, data = data_dairy)
AIC24 <- AIC(Model24)
# Tambah X3
Model25 = lm(Y~X3+X4+X5, data = data_dairy)
AIC25 <- AIC(Model25)
# Bandingkan AIC dan seleksi AIC terkecil
dataframe4s <- data.frame(
  Model = c("X1+X4+X5","X2+X4+X5","X3+X4+X5"),
  AIC = c(AIC21,AIC24,AIC25)
)
dataframe4s
cat("AIC terkecil:", min(dataframe4s$AIC))
if (min(dataframe4s$AIC) < min(dataframe2s$AIC)) {cat("AIC membaik")} else {cat("AIC memburuk")}

# Karena pada fase ini AIC terus memburuk, maka iterasi dihentikan
# Model Terbaik Y ~ X4 + X5

Model terbaik dari metode stepwise juga terpilih X4 (Price per Unit) dan X5 (Quantity Sold).

Kriteria Pemilihan Model

AIC (Akaike Information Criterion) digunakan sebagai ukuran utama, karena memperhitungkan fit model sekaligus kompleksitas model. Model dengan AIC paling rendah dipilih sebagai model terbaik karena memberikan keseimbangan antara akurasi prediksi dan jumlah variabel.

Hasil Pemilihan Model

Hasil pemilihan model menunjukkan bahwa dari ketiga metode tersebut: forward, backward, dan stepwise, model terbaik yang konsisten adalah model dengan variabel X4 (Price per Unit) dan X5 (Quantity Sold). Model ini memiliki AIC terkecil dibandingkan semua kombinasi lain, sehingga dianggap paling optimal untuk menjelaskan variasi Approx. Total Revenue (INR). Oleh karena itu, semua analisis berikutnya, termasuk uji kebaikan model, analisis regresi, dan uji lanjut, menggunakan model ini sebagai model referensi.

3.2.4 Uji Kebaikan Model (Koefisien Determinasi)

Setelah model regresi linear berganda terbaik dipilih, langkah selanjutnya adalah mengevaluasi kualitas model tersebut melalui uji kebaikan model. Uji kebaikan model dilakukan untuk mengetahui seberapa besar kemampuan variabel independen terpilih dalam menjelaskan variasi variabel dependen. Ukuran yang digunakan adalah R-squared (R²) dan Adjusted R-squared.

R-squared menunjukkan proporsi variasi variabel dependen yang mampu dijelaskan oleh model regresi. Nilai R² berada pada rentang 0–1, di mana nilai yang lebih mendekati 1 menunjukkan kemampuan penjelasan model yang semakin baik.

Adjusted R-squared digunakan sebagai ukuran yang telah disesuaikan terhadap jumlah variabel dalam model, sehingga lebih tepat digunakan saat model memiliki lebih dari satu variabel independen.

# Model terbaik dari hasil semua kemungkinan regresi
ModelTerbaik = lm(Y ~ X4 + X5, data = data_dairy)
summary(ModelTerbaik)

# Menampilkan R-squared 
R2 = summary(ModelTerbaik)$r.squared
cat("R-squared Model Terbaik :", R2, "\n")

# Menampilkan Adjusted R-squared 
AdjR2 = summary(ModelTerbaik)$adj.r.squared
cat("Adjusted R-squared      :", AdjR2, "\n")

# Plot diagnostik 
par(mfrow=c(2,2))
plot(ModelTerbaik)
par(mfrow=c(1,1))

3.2.5 Analisis Korelasi

Setelah uji kebaikan model, dilakukan analisis korelasi menggunakan fungsi cor() dari paket stats. Tahap ini bertujuan untuk melihat hubungan linear antar semua variabel, baik independen maupun dependen. Matriks korelasi dihitung untuk mengetahui kekuatan dan arah hubungan antar variabel, sehingga dapat membantu interpretasi hasil regresi.

Nilai koefisien korelasi berada pada rentang -1 sampai +1, di mana:

  • nilai mendekati +1 menunjukkan hubungan positif yang kuat,
  • nilai mendekati -1 menunjukkan hubungan negatif yang kuat,
  • nilai mendekati 0 menunjukkan hubungan yang lemah atau tidak ada hubungan linear.
# Mengambil semua variabel X dan Y
data_korelasi <- data_dairy[, c("Approx_Total_Revenue","Total_Land_Area","Number_of_Cows","Quantity","Price_per_Unit","Quantity_Sold")]

# Matriks korelasi
cor_matrix <- cor(data_korelasi)

# Tampilkan hasil
print("Matriks Korelasi:")
print(round(cor_matrix, 3))

# Matriks korelasi
cor_matrix = cor(data_korelasi)

# Tampilkan matriks korelasi
print("Matriks Korelasi:")
print(round(cor_matrix, 3))

Hasil analisis korelasi digunakan sebagai dasar untuk membangun model regresi linear berganda, sehingga pengaruh masing-masing variabel independen terhadap variabel dependen dapat dianalisis lebih mendalam.

3.2.6 Analisis Regresi Linear

Pada tahap ini, dilakukan regresi linear berganda menggunakan model terbaik X4 dan X5 dengan fungsi lm() dari paket stats. Analisis regresi linear dilakukan untuk mengetahui pengaruh variabel independen terpilih terhadap variabel dependen.

Uji asumsi klasik seperti heteroskedastisitas (bptest() dari paket lmtest), autokorelasi (durbinWatsonTest() dari paket car), multikolinearitas (vif() dari paket car), linieritas (scatter plot residual vs fitted), dan normalitas residual (shapiro.test() dan qqnorm()) dilakukan kembali untuk memastikan model valid. Koefisien regresi dianalisis untuk menilai pengaruh masing-masing variabel independen terhadap variabel dependen.

library(readxl)
library(dplyr)
library(lmtest)
#Model Linear (Model Terbaik)
model_lm<-lm(Y~X4+X5)
summary(model_lm)

# Uji Autokorelasi
## Uji Durbin-Watson
galat<-model_lm$residuals
#Non-Autokorelasi
dwtest(model_lm,alternative="two.sided")

# Uji Heteroskedastisitas
## Uji Breusch-Pagan-Godfrey (BP Test)
bptest(model_lm)

# Uji Multikolinearitas
# VIF
library(car)
vif(model_lm)
vif.inv<-1/vif(model_lm)
print(vif.inv)

3.2.7 Uji Lanjut

Tahap terakhir adalah uji lanjut. Dilakukan dengan menghitung interval kepercayaan 95% untuk setiap koefisien regresi menggunakan fungsi confint() dari paket stats guna mengetahui kisaran estimasi parameter populasi.

confint(model_lm, level = 0.95)

Dengan selesainya uji lanjut, semua informasi mengenai pengaruh dan hubungan antar variabel telah diperoleh, sehingga dapat digunakan sebagai dasar penarikan kesimpulan


BAB IV :HASIL DAN PEMBAHASAN

4.1 Gambaran Umum Hasil Analisis

Pada BAB III telah dilakukan serangkaian uji statistik yang meliputi uji asumsi klasik, eksplorasi model menggunakan all-possible regressions, serta pemilihan model terbaik menggunakan metode forward selection, backward elimination, dan stepwise. Seluruh proses tersebut menghasilkan model regresi terbaik yang dapat menjelaskan variasi pendapatan total (Approx. Total Revenue (INR)) berdasarkan kombinasi variabel bebas.

Secara umum, hasil analisis menunjukkan bahwa X4 (Price per Unit) dan X5 (Quantity Sold) merupakan variabel yang paling dominan dalam mempengaruhi pendapatan total Y.

4.2 Hasil Uji Asumsi Klasik

Uji asumsi dilakukan pada masing-masing model sederhana (Y terhadap setiap variabel X).

library(readxl)
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(car)
## Loading required package: carData
#Input Data
data_dairy = read_excel("D:/Coolyeah/Mata Kuliah/Semester 3/Analisis Regresi/Project/Data_Project_Anreg.xlsx")
data_dairy
## # A tibble: 80 × 6
##    `Approx, Total Revenue(INR)` `Total Land Area (acres)` `Number of Cows`
##                           <dbl>                     <dbl>            <dbl>
##  1                         576.                     311.                96
##  2                       21896.                      19.2               44
##  3                        8655.                     582.                24
##  4                       17381.                     908                 89
##  5                       12045.                     862.                21
##  6                        6272.                      87.6               51
##  7                       13391.                      73.3               74
##  8                         436.                      67.6               77
##  9                       21302.                      72.3               76
## 10                        4984.                     413.                36
## # ℹ 70 more rows
## # ℹ 3 more variables: `Quantity (liters/kg)` <dbl>, `Price per Unit` <dbl>,
## #   `Quantity Sold (liters/kg)` <dbl>
View(data_dairy)
# Definisi Variabel
Y = data_dairy$`Approx, Total Revenue(INR)`
X1 = data_dairy$`Total Land Area (acres)`
X2 = data_dairy$`Number of Cows`
X3 = data_dairy$`Quantity (liters/kg)`
X4 = data_dairy$`Price per Unit`
X5 = data_dairy$`Quantity Sold (liters/kg)`
#model 1
model_1 <- lm(Y ~ X1, data = data_dairy)
summary(model_1)
## 
## Call:
## lm(formula = Y ~ X1, data = data_dairy)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -16157 -12781  -6442   5900  50504 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1.585e+04  3.799e+03   4.172 7.76e-05 ***
## X1          4.869e-01  7.035e+00   0.069    0.945    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 17940 on 78 degrees of freedom
## Multiple R-squared:  6.14e-05,   Adjusted R-squared:  -0.01276 
## F-statistic: 0.00479 on 1 and 78 DF,  p-value: 0.945
#model 2
model_2 <- lm(Y ~ X2, data = data_dairy)
summary(model_2)
## 
## Call:
## lm(formula = Y ~ X2, data = data_dairy)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -16730 -12724  -7064   6309  49047 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 18725.74    4602.62   4.068 0.000112 ***
## X2            -46.37      72.53  -0.639 0.524475    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 17900 on 78 degrees of freedom
## Multiple R-squared:  0.005213,   Adjusted R-squared:  -0.007541 
## F-statistic: 0.4088 on 1 and 78 DF,  p-value: 0.5245
#model 3
model_3 <- lm(Y ~ X3, data = data_dairy)
summary(model_3)
## 
## Call:
## lm(formula = Y ~ X3, data = data_dairy)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -27856  -8781   -562   4507  37900 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2507.329   3155.127  -0.795    0.429    
## X3             36.298      5.325   6.816 1.76e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14210 on 78 degrees of freedom
## Multiple R-squared:  0.3733, Adjusted R-squared:  0.3653 
## F-statistic: 46.46 on 1 and 78 DF,  p-value: 1.757e-09
#model 4
model_4 <- lm(Y ~ X4, data = data_dairy)
summary(model_4)
## 
## Call:
## lm(formula = Y ~ X4, data = data_dairy)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -22178 -12658  -4771   8173  48740 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  4140.30    4812.18   0.860   0.3922   
## X4            201.56      74.53   2.704   0.0084 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 17160 on 78 degrees of freedom
## Multiple R-squared:  0.08573,    Adjusted R-squared:  0.07401 
## F-statistic: 7.314 on 1 and 78 DF,  p-value: 0.008397
#model 5
model_5 <- lm(Y ~ X5, data = data_dairy)
summary(model_5)
## 
## Call:
## lm(formula = Y ~ X5, data = data_dairy)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -36867  -3643   -122   3100  24708 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  142.499   1651.015   0.086    0.931    
## X5            55.894      4.256  13.132   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10010 on 78 degrees of freedom
## Multiple R-squared:  0.6886, Adjusted R-squared:  0.6846 
## F-statistic: 172.4 on 1 and 78 DF,  p-value: < 2.2e-16

Interpretasi:

  • Model 1: Y ~ X1 (Total_Land_Area)

    • Koefisien X1 (0.4869): Setiap kenaikan 1 unit luas lahan hanya menaikkan pendapatan sebesar 0.4869 INR → Pengaruh sangat kecil

    • P-value = 0.945: Tidak signifikan secara statistik (p > 0.05)

    • R² = 0.00614%: Luas lahan hanya menjelaskan 0.00614% variasi pendapatan → Hampir tidak ada hubungan

    • Kesimpulan: Luas lahan tidak relevan sebagai prediktor tunggal pendapatan

  • Model 2: Y ~ X2 (Number_of_Cows)

    • Koefisien negatif (-46.37): Setiap penambahan 1 ekor sapi justru menurunkan pendapatan 46.37 INR → Hubungan terbalik tidak logis

    • P-value = 0.524: Tidak signifikan

    • R² = 0.52%: Jumlah sapi hanya menjelaskan 0.52% variasi pendapatan

    • Kesimpulan: Jumlah sapi bukan prediktor yang baik untuk pendapatan

  • Model 3: Y ~ X3 (Quantity)

    • Koefisien positif (36.298): Setiap kenaikan 1 unit produksi menaikkan pendapatan 36.298 INR → Hubungan positif

    • P-value = 1.76e-09: Sangat signifikan (p < 0.001)

    • R² = 37.33%: Kuantitas produksi menjelaskan 37.33% variasi pendapatan

    • Kesimpulan: Produksi berpengaruh signifikan terhadap pendapatan

  • Model 4:Y ~ X4 (Price_per_Unit)

    • Koefisien (201.56): Setiap kenaikan 1 unit harga menaikkan pendapatan 201.56 INR

    • P-value = 0.0084: Signifikan (p < 0.01)

    • R² = 8.57%: Harga menjelaskan 8.57% variasi pendapatan

    • Kesimpulan: Harga berpengaruh signifikan meski daya jelas rendah

  • Model 5: Y ~ X5 (Quantity_Sold)

    • Koefisien (55.894): Setiap kenaikan 1 unit penjualan menaikkan pendapatan 55.894 INR

    • P-value < 2.2e-16: Sangat sangat signifikan (p ≈ 0)

    • R² = 68.86%: Kuantitas terjual menjelaskan 68.86% variasi pendapatan → Paling tinggi

    • Kesimpulan: Variabel terbaik sebagai prediktor tunggal Pembahasan dilakukan berdasarkan hasil uji heteroskedastisitas, autokorelasi, linearitas, dan normalitas residual.

4.2.1 Heteroskedastisitas

#Heteroskedastisitas X1
## Uji Breusch-Pagan
bptest(model_1)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_1
## BP = 0.50027, df = 1, p-value = 0.4794
#Heteroskedastisitas X2
bptest(model_2)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_2
## BP = 0.70154, df = 1, p-value = 0.4023
#Heteroskedastisitas X3
bptest(model_3)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_3
## BP = 21.013, df = 1, p-value = 4.563e-06
#Heteroskedastisitas X4
## Uji Breusch-Pagan
bptest(model_4)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_4
## BP = 13.95, df = 1, p-value = 0.0001877
#Heteroskedastisitas X5
## Uji Breusch-Pagan
bptest(model_5)
## 
##  studentized Breusch-Pagan test
## 
## data:  model_5
## BP = 30.518, df = 1, p-value = 3.308e-08

Hasil uji Breusch–Pagan menunjukkan bahwa:

  • Untuk X1 dan X2: p-value > 0,05 → tidak terdapat heteroskedastisitas

  • Untuk X3, X4, dan X5: p-value < 0,05 → terdapat indikasi heteroskedastisitas

Namun karena pada tahap pemilihan model akan digunakan regresi berganda, pelanggaran pada model sederhana tidak serta-merta membuat variabel tidak layak. Hal ini karena heteroskedastisitas pada model sederhana sering hilang pada model regresi berganda.

4.2.2 Autokorelasi

#Autokorelasi X1
## Durbin Watson Test
dwtest(model_1, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  model_1
## DW = 2.6142, p-value = 0.004846
## alternative hypothesis: true autocorrelation is not 0
#Autokorelasi X2
dwtest(model_2, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  model_2
## DW = 2.6362, p-value = 0.003422
## alternative hypothesis: true autocorrelation is not 0
#Autokorelasi X3
## Durbin Watson Test
dwtest(model_3, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  model_3
## DW = 2.5063, p-value = 0.02046
## alternative hypothesis: true autocorrelation is not 0
#Autokorelasi X4
dwtest(model_4, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  model_4
## DW = 2.6599, p-value = 0.002391
## alternative hypothesis: true autocorrelation is not 0
#Autokorelasi X5
dwtest(model_5, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  model_5
## DW = 2.1573, p-value = 0.4825
## alternative hypothesis: true autocorrelation is not 0

Menunjukan Hasil:

  • Model 1: DW = 2.6142, p-value = 0.004846 → Autokorelasi negatif

  • Model 2: DW = 2.6362, p-value = 0.003422 → Autokorelasi negatif

  • Model 3: DW = 2.5063, p-value = 0.02046 → Autokorelasi negatif

  • Model 4: DW = 2.6599, p-value = 0.002391 → Autokorelasi negatif

  • Model 5: DW = 2.1573, p-value = 0.4825 → Tidak ada autokorelasi

Interpretasi:

  • Pada Model 1-4: DW ≈ 2.5-2.7,nilai Durbin-Watson sebesar 2.6142 menunjukkan adanya autokorelasi negatif ringan. Residual pada periode t cenderung berlawanan tanda dengan residual pada periode t-1. Meski signifikan secara statistik (p < 0.05), besarnya efek relatif kecil dalam konteks data cross-sectional.

  • Pada Model 5: DW = 2.1573, Nilai Durbin-Watson 2.1573 mendekati nilai ideal 2, dan uji formal tidak signifikan (p = 0.4825). Dengan demikian, dapat disimpulkan bahwa tidak ada autokorelasi yang berarti dalam model dengan X5.

kesimpulan: Durbin-Watson untuk X1–X4 memiliki p-value kecil, sedangkan X5 memiliki p-value besar. Namun autokorelasi bukan isu utama dalam model cross-sectional, sehingga tidak menjadi masalah besar dalam interpretasi.

4.2.3 Linearitas

# Buat residual
galat_1 <- resid(model_1)
galat_2 <- resid(model_2)
galat_3 <- resid(model_3)
galat_4 <- resid(model_4)
galat_5 <- resid(model_5)
#Linieritas X1
plot(fitted(model_1), galat_1)
abline(0,0)

crPlots(model_1)

#Linieritas X2
plot(fitted(model_2), galat_2)
abline(0,0)

crPlots(model_2)

#Linieritas X3
plot(fitted(model_3), galat_3)
abline(0,0)

crPlots(model_3)

#Linieritas X4
plot(fitted(model_4), galat_4)
abline(0,0)

crPlots(model_4)

#Linieritas X5
plot(fitted(model_5), galat_5)
abline(0,0)

crPlots(model_5)

Interpretasi:

  • Model 1 & 2 (X1 & X2): Plot residual vs fitted untuk X1 dan X2 menunjukkan pola yang kurang jelas dengan sebaran titik yang tidak sepenuhnya acak. Terdapat indikasi bahwa hubungan antara Y dan X1 atau X2 mungkin tidak sepenuhnya linear, atau terdapat variabel lain yang perlu dipertimbangkan.

  • Model 3, 4, 5 (X3, X4, X5): Plot menunjukkan sebaran titik yang relatif acak di sekitar garis nol, meski dengan beberapa outlier. Pola acak ini mengindikasikan bahwa asumsi linearitas untuk model dengan X3, X4, dan X5 secara umum terpenuhi.

Kesimpulan: Grafik residual vs fitted menunjukkan pola yang acak untuk seluruh variabel. Hal ini menunjukkan bahwa hubungan antara variabel respon (Y) dan variabel prediktor (Xi) bersifat linear, sehingga regresi linear merupakan metode yang tepat.

4.2.4 Normalitas Residual

#Normalitas X1
## Q-Q Plot 
qqnorm(galat_1)
qqline(galat_1, col="red")

## Kolmogorov Smirnov
ks.test(galat_1, "pnorm", mean(galat_1), sd(galat_1))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  galat_1
## D = 0.19285, p-value = 0.004424
## alternative hypothesis: two-sided
#Normalitas X2
## Q-Q Plot 
qqnorm(galat_2)
qqline(galat_2, col="blue")

## Kolmogorov Smirnov
ks.test(galat_2, "pnorm", mean(galat_2), sd(galat_2))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  galat_2
## D = 0.19765, p-value = 0.003252
## alternative hypothesis: two-sided
#Normalitas X3
## Q-Q Plot 
qqnorm(galat_3)
qqline(galat_3, col="purple")

## Kolmogorov Smirnov
ks.test(galat_3, "pnorm", mean(galat_3), sd(galat_3))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  galat_3
## D = 0.13881, p-value = 0.0831
## alternative hypothesis: two-sided
#Normalitas X4
## Q-Q Plot 
qqnorm(galat_4)
qqline(galat_4, col="magenta")

## Kolmogorov Smirnov
ks.test(galat_4, "pnorm", mean(galat_4), sd(galat_4))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  galat_4
## D = 0.1558, p-value = 0.03669
## alternative hypothesis: two-sided
#Normalitas X5
## Q-Q Plot 
qqnorm(galat_5)
qqline(galat_5, col="cyan")

## Kolmogorov Smirnov
ks.test(galat_5, "pnorm", mean(galat_5), sd(galat_5))
## 
##  Exact one-sample Kolmogorov-Smirnov test
## 
## data:  galat_5
## D = 0.14349, p-value = 0.067
## alternative hypothesis: two-sided

Interpretasi Statistik:

  • X1 & X2 (p < 0.01): Uji Kolmogorov-Smirnov menunjukkan penyimpangan yang signifikan dari distribusi normal (p < 0.01). Statistik D sebesar 0.193 menunjukkan perbedaan maksimum sekitar 19.3% antara distribusi empiris residual dan distribusi normal teoritis.

  • X3 & X5 (p > 0.05): Tidak cukup bukti untuk menyimpulkan bahwa residual tidak berdistribusi normal (p > 0.05). Meski demikian, ukuran sampel yang relatif kecil (n=80) membuat uji ini kurang powerful, sehingga kesimpulan ‘normal’ perlu hati-hati.

Interpretasi Q-Q Plots:

  • Titik mengikuti garis diagonal → Normalitas baik

  • Penyimpangan di ekor → Heavy-tailed atau light-tailed

  • S-shaped curve → Skewness

  • Q-Q plots menunjukkan bahwa residual untuk X1, X2, dan X4 menyimpang dari garis diagonal, terutama di ekor distribusi. Hal ini mengindikasikan adanya outlier atau distribusi yang lebih heavy-tailed daripada distribusi normal. Untuk X3 dan X5, titik-titik lebih dekat dengan garis diagonal, meski masih terlihat beberapa penyimpangan di ekor atas.

4.2.5 Hasil All-Possible Regression

# ALL POSSIBLE REGRESSION

# 0 variabel (model kosong)
Model0 = lm(Y ~ 1, data = data_dairy)

# 1 variabel
Model1 = lm(Y~X1, data = data_dairy)
summary(Model1)
Model2 = lm(Y~X2, data = data_dairy)
summary(Model2)
Model3 = lm(Y~X3, data = data_dairy)
summary(Model3)
Model4 = lm(Y~X4, data = data_dairy)
summary(Model4)
Model5 = lm(Y~X5, data = data_dairy)
summary(Model5)

# 2 variabel
Model6 = lm(Y~X1+X2, data = data_dairy)
summary(Model6)
Model7 = lm(Y~X1+X3, data = data_dairy)
summary(Model7)
Model8 = lm(Y~X1+X4, data = data_dairy)
summary(Model8)
Model9 = lm(Y~X1+X5, data = data_dairy)
summary(Model9)
Model10 = lm(Y~X2+X3, data = data_dairy)
summary(Model10)
Model11 = lm(Y~X2+X4, data = data_dairy)
summary(Model11)
Model12 = lm(Y~X2+X5, data = data_dairy)
summary(Model12)
Model13 = lm(Y~X3+X4, data = data_dairy)
summary(Model13)
Model14 = lm(Y~X3+X5, data = data_dairy)
summary(Model14)
Model15 = lm(Y~X4+X5, data = data_dairy)
summary(Model15)

# 3 variabel
Model16 = lm(Y~X1+X2+X3, data = data_dairy)
summary(Model16)
Model17 = lm(Y~X1+X2+X4, data = data_dairy)
summary(Model17)
Model18 = lm(Y~X1+X2+X5, data = data_dairy)
summary(Model18)
Model19 = lm(Y~X1+X3+X4, data = data_dairy)
summary(Model19)
Model20 = lm(Y~X1+X3+X5, data = data_dairy)
summary(Model20)
Model21 = lm(Y~X1+X4+X5, data = data_dairy)
summary(Model21)
Model22 = lm(Y~X2+X3+X4, data = data_dairy)
summary(Model22)
Model23 = lm(Y~X2+X3+X5, data = data_dairy)
summary(Model23)
Model24 = lm(Y~X2+X4+X5, data = data_dairy)
summary(Model24)
Model25 = lm(Y~X3+X4+X5, data = data_dairy)
summary(Model25)

# 4 variabel
Model26 = lm(Y~X1+X2+X3+X4, data = data_dairy)
summary(Model26)
Model27 = lm(Y~X1+X2+X3+X5, data = data_dairy)
summary(Model27)
Model28 = lm(Y~X1+X2+X4+X5, data = data_dairy)
summary(Model28)
Model29 = lm(Y~X1+X3+X4+X5, data = data_dairy)
summary(Model29)
Model30 = lm(Y~X2+X3+X4+X5, data = data_dairy)
summary(Model30)

# 5 variabel (model penuh)
Model31 = lm(Y~X1+X2+X3+X4+X5, data = data_dairy)
summary(Model31)

Berdasarkan kriteria Adjusted R² tertinggi, model terbaik yang dipilih adalah model dengan 2 variabel:

Model15: Y = -17517.908 + 280.959X4 + 59.484X5

Statistik Model:

  • Adjusted R²: 0.8485 (84.85%)

  • F-statistic: 222.1, p-value: < 2.2e-16

  • Standard Error: 6942

  • Semua koefisien signifikan pada α = 0.001

Interpretasi Koefisien:

  1. Konstanta (-17517.908): Ketika X4 dan X5 bernilai nol, terdapat kerugian dasar sebesar 17,517.908 INR

  2. Koefisien X4 (280.959): Ceteris paribus, setiap kenaikan 1 unit harga meningkatkan pendapatan sebesar 280.959 INR

  3. Koefisien X5 (59.484): Ceteris paribus, setiap tambahan 1 unit terjual meningkatkan pendapatan sebesar 59.484 INR

Kesimpulan: Berdasarkan analisis all-possible regression terhadap 31 model, disimpulkan bahwa model terbaik untuk memprediksi pendapatan peternakan adalah regresi linear dengan dua variabel: Price_per_Unit (X4) dan Quantity_Sold (X5). Model ini memiliki R² Adjusted 84.85% dengan kedua koefisien sangat signifikan (p < 0.001). Variabel lain tidak memberikan kontribusi tambahan yang signifikan secara statistik.

4.3 Hasil Seleksi Model

4.3.1 Forward Selection

library(readxl)
library(lmtest)
library(car)
# input database
data_dairy = read_excel("D:/Coolyeah/Mata Kuliah/Semester 3/Analisis Regresi/Project/Data_Project_Anreg.xlsx")
data_dairy
## # A tibble: 80 × 6
##    `Approx, Total Revenue(INR)` `Total Land Area (acres)` `Number of Cows`
##                           <dbl>                     <dbl>            <dbl>
##  1                         576.                     311.                96
##  2                       21896.                      19.2               44
##  3                        8655.                     582.                24
##  4                       17381.                     908                 89
##  5                       12045.                     862.                21
##  6                        6272.                      87.6               51
##  7                       13391.                      73.3               74
##  8                         436.                      67.6               77
##  9                       21302.                      72.3               76
## 10                        4984.                     413.                36
## # ℹ 70 more rows
## # ℹ 3 more variables: `Quantity (liters/kg)` <dbl>, `Price per Unit` <dbl>,
## #   `Quantity Sold (liters/kg)` <dbl>
View(data_dairy)
# Definisi Variabel
Y = data_dairy$`Approx, Total Revenue(INR)`
X1 = data_dairy$`Total Land Area (acres)`
X2 = data_dairy$`Number of Cows`
X3 = data_dairy$`Quantity (liters/kg)`
X4 = data_dairy$`Price per Unit`
X5 = data_dairy$`Quantity Sold (liters/kg)`

Langkah 0: Model kosong

Model awal yang digunakan adalah model kosong, yaitu model yang hanya berisi intercept:

# 0 VARIABEL (MODEL KOSONG)
Model0 = lm(Y ~ 1, data = data_dairy)   # hanya intercept
AIC(Model0)          # titik awal pemilihan model
## [1] 1796.218

Pada model kosong ini, dimana hanya ada intercept pada model dihasilkan AIC sebesar 1796,218. Model kosong ini menjadi model terbaik sementara. Selanjutnya akan dimasukkan variabel satu per satu.

Langkah 1: Pengujian model dengan satu variabel

Setiap variabel X dicoba ditambahkan secara terpisah:

##   Model      AIC
## 1    X1 1798.213
## 2    X2 1797.800
## 3    X3 1760.833
## 4    X4 1791.047
## 5    X5 1704.895

Pada model satu variabel ini yang menjadi AIC terkecil yaitu setelah X5 ditambahkan sebesar 1704,895. Kemudian AIC setelah X5 dimasukkan, dibandingkan dengan AIC model sebelumnya yaitu model kosong (1796,218). Karena AIC model setelah X5 ditambahkan menurun, maka model terbaik sementara menjadi Y ~ X5.

Langkah 2: Pengujian model dengan 2 variabel

Selanjutnya, dari model terbaik sementara Y ~ X5, setiap variabel lain dicoba ditambahkan satu per satu:

##   Model      AIC
## 1 X5+X1 1705.255
## 2 X5+X2 1706.826
## 3 X5+X3 1706.880
## 4 X5+X4 1647.218

Pada iterasi ini dihasilkan AIC terkecil yaitu setelah X4 ditambahkan sebesar 1647,218. Hasil AIC ini dibandingkan dengan AIC model sebelumnya dari 1704,895 menurun menjadi 1647,218. Jadi, model Y ~ X4 + X5 menjadi model terbaik sementara.

Langkah 3: Pengujian model dengan 3 variabel

Dari model Y ~ X4 + X5, dilakukan pengujian untuk menambahkan variabel lain:

##      Model      AIC
## 1 X5+X4+X1 1649.089
## 2 X5+X4+X2 1648.982
## 3 X5+X4+X3 1649.055

AIC terkecil pada pengujian 3 variabel ini yaitu sebesar 1648,982 dari model Y ~ X4 + X5 + X2. Jika dibandingkan dengan AIC sebelumnya, maka AIC pada 3 variabel ini memburuk. Jadi model terbaik diambil dari pengujian sebelumnya yaitu Y ~ X4 + X5. Karena tidak ada variabel tambahan yang dapat menurunkan AIC, proses forward selection dihentikan.

Berdasarkan seluruh langkah forward selection, maka dapat disimpulkan bahwa model terbaiknya yaitu: \[Y = \beta_0 + \beta_1 X_4 + \beta_2 X_5\]

4.3.2 Backward Selection

Backward selection dimulai dari model penuh yang memuat seluruh variabel prediktor. Pada setiap langkah, satu variabel dihapus dan nilai AIC dibandingkan untuk menentukan apakah model menjadi lebih baik. Berikut hasil dan penjelasannya.

Langkah 0: Model penuh (semua variabel masuk)

Model awal adalah model penuh dengan seluruh variabel X1–X5:

# Model penuh
# 5 variabel
Model31 = lm(Y~X1+X2+X3+X4+X5, data = data_dairy)
AIC(Model31)
## [1] 1652.691

Langkah 0 pada backward selection ini dimulai dari model penuh dimana semua variabel prediktor dimasukkan. Nilai AIC untuk model penuh adalah 1652.691, dan model ini menjadi model terbaik sementara sebelum dilakukan penghapusan variabel.

Langkah 1: Pengujian model dengan 4 variabel

Satu variabel dihapus pada setiap model sehingga tersisa empat variabel:

##         Model      AIC
## 1 X1+X2+X3+X4 1747.181
## 2 X1+X2+X3+X5 1709.190
## 3 X1+X2+X4+X5 1650.861
## 4 X1+X3+X4+X5 1650.933
## 5 X2+X3+X4+X5 1650.805

Pada iterasi ini dihasilkan AIC terkecil yaitu setelah X1 dibuang menjadi sebesar 1650,805 dihasilkan oleh model X2+X3+X4+X5. Hasil AIC ini dibandingkan dengan AIC model sebelumnya dari 1704,895 menurun menjadi 1650,805. Jadi, model Y ~ X2+X3+X4+X5 menjadi model terbaik sementara.

Langkah 2: Pengujian model dengan 3 variabel

Dari model terbaik sementara (X2, X3, X4, X5), satu variabel kembali dicoba untuk dibuang:

##      Model      AIC
## 1 X2+X3+X4 1745.274
## 2 X2+X3+X5 1708.809
## 3 X2+X4+X5 1648.982
## 4 X3+X4+X5 1650.861

Pada langkah ini menghasilkan AIC terkecil sebesar 1648,982 yaitu dengan membuang variabel X1 dan X3. Kemudian jika dibandingkan dengan AIC pada model terbaik sebelumnya, maka AIC pada model di langkah ini membaik. Jadi pada saat ini yang menjadi model terbaik yaitu Y ~ X2+X4+X5.

Langkah 3: Pengujian model dengan 2 variabel

Dari model X2 + X4 + X5, diuji kembali penghapusan setiap variabel:

##   Model      AIC
## 1 X2+X4 1792.513
## 2 X2+X5 1706.826
## 3 X4+X5 1647.218

Pada langkah ini didapatkan AIC tekecil yaitu pada model X4+X5 dengan AIC sebesar 1647,218. AIC model ini lebih kecil dari model terbaik sebelumnya. Maka model terbaik sementara saat ini yaitu dengan membuang X2 menjadi Y ~ X4+X5.

Langkah 4: Pengujian model dengan 1 variabel

Pengecekan kembali dilakukan dengan membuang masing-masing variabel dari model terbaik sementara:

##   Model      AIC
## 1    X4 1791.047
## 2    X5 1704.895

Pada langkah ini didapatkan AIC terkecil yaitu 1704,895. Jika dibandingkan dengan AIC model terbaik sementara sebelumnya maka AIC pada model ini memburuk. Jadi pengujian seleksi model dihentikan.

Maka dapat diputuskan model terbaik yang didapatkan dengan metode Backward Selection ini yaitu \[Y = \beta_0 + \beta_1 X_4 + \beta_2 X_5 \]

4.3.3 Stepwise Selection

Langkah 0: Inisialisasi (Model Kosong / Null Model)

# INISIALISASI (Model Kosong)
Model0 = lm(Y ~ 1, data = data_dairy)
AIC0 <- AIC(Model0)
AIC0
## [1] 1796.218

Pada langkah ini model hanya berisi intercept tanpa variabel X. Nilai AIC model kosong adalah 1796.218, yang menjadi dasar pembanding untuk menambah variabel baru.

Langkah 1: Coba menambahkan setiap variabel (Forward Step)

Model kosong dicoba ditambahkan satu per satu variabel:

##   Model      AIC
## 1    X1 1798.213
## 2    X2 1797.800
## 3    X3 1760.833
## 4    X4 1791.047
## 5    X5 1704.895

Hasilnya ada beberapa AIC yang lebih besar dari AIC model kosong, sehingga memburuk. AIC terbaik adalah 1704.895 pada model Y ~ X5. Variabel pertama yang dipilih adalah X5 karena menghasilkan penurunan AIC terbesar.

## [1] 1796.218
## AIC memburuk

Kemudian pada fase backward saat dibandingkan dengan model kosong sebelumnya, dihasilkan AIC memburuk jika variabel dibuang. Maka model Y ~ X5 dipertahankan.

Langkah 2: Dari model X5, coba tambah variabel lain (Forward Step)

Model dasar sekarang Y ~ X5, lalu dicoba menambahkan variabel lain satu per satu:

##   Model      AIC
## 1 X5+X1 1705.255
## 2 X5+X2 1706.826
## 3 X5+X3 1706.880
## 4 X5+X4 1647.218
## AIC terkecil: 1647.218
## AIC membaik

Hasilnya menunjukkan semua AIC lebih besar kecuali model X5 + X4 dengan AIC terkecil adalah 1647.218. Maka variabel berikutnya yang masuk adalah X4 sehingga model menjadi Y ~ X5 + X4.

Selanjutnya pada fase backward, dari model Y ~ X5 + X4 dilakukan pengecekan dengan membuang masing-masing variabel:

##   Model      AIC
## 1    X4 1791.047
## 2    X5 1704.895
## AIC terkecil: 1704.895
## AIC memburuk

Hasil kedua model setelah membuang variabel memiliki AIC lebih tinggi dibanding model sebelumnya (1647.218). Artinya membuang variabel membuat model lebih buruk. Maka tidak ada variabel yang dibuang (AIC membaik = model dipertahankan).

Langkah 3: Menambahkan varibel lagi pada model terbaik sementara

Model sekarang Y ~ X4 + X5, lalu dicoba menambahkan variabel lain satu per satu:

##      Model      AIC
## 1 X1+X4+X5 1649.089
## 2 X2+X4+X5 1648.982
## 3 X3+X4+X5 1649.055
## AIC terkecil: 1648.982
## AIC memburuk

Hasilnya menunjukkan bahwa semua AIC lebih buruk daripada AIC sebelumnya (1647.218). AIC terkecil adalah 1648.982, tetapi tetap lebih besar dari 1647.218. Karena penambahan variabel tidak menurunkan AIC, proses forward berhenti.

Karena penambahan variabel membuat AIC naik, proses backward dicoba lagi. Namun seperti pada proses sebelumnya, semua hasil menunjukkan AIC memburuk bila variabel dihapus, maka proses dihentikan.

Maka dapat disimpulkan model terbaik berdasarkan proses stepwise selection yaitu: \[Y = \beta_0 + \beta_1 X_4 + \beta_2 X_5 \] ## 4.4 Model Regresi Terbaik

Model terbaik yang ditetapkan oleh seluruh metode seleksi adalah:

\[ Y = \beta_0 + \beta_4 X_4 + \beta_5 X_5 \]

Berdasarkan output (Model15):

  • Intercept = -17517.908

  • Koefisien X4 = 280.959 (p < 0.001)

  • Koefisien X5 = 59.484 (p < 0.001)

  • Adjusted R² = 0.8485

  • F-statistic = 222.1 (p < 0.001)

  • Residual standard error = 6942

Interpretasi :

  • X4 (Price per Unit) Setiap peningkatan harga jual sebesar 1 unit akan meningkatkan pendapatan sebesar 280.959 INR, dengan asumsi variabel lain tetap. Harga per unit terbukti berpengaruh signifikan terhadap pendapatan.

  • X5 (Quantity Sold) Setiap penambahan jumlah produk terjual sebesar 1 unit meningkatkan pendapatan sebesar 59.484 INR. Variabel ini memiliki pengaruh terbesar dan paling signifikan dalam model.

  • Adjusted R² = 0.8485 Artinya, 84,85% variasi pendapatan dapat dijelaskan oleh harga per unit dan jumlah terjual.

4.5 Pembahasan

4.5.1 Pembahasan Hasil Uji Asumsi Klasik

Uji asumsi klasik pada setiap model sederhana memberikan gambaran awal mengenai karakteristik masing-masing variabel prediktor. Meskipun terdapat beberapa pelanggaran, kondisi seperti ini umum terjadi pada data ekonomi dan bisnis. Berikut penjelasannya:

  1. Heteroskedastisitas pada Variabel Penting

    Heteroskedastisitas ditemukan pada model dengan X3, X4, dan X5. Kondisi ini menunjukkan bahwa variasi residual tidak konstan ketika nilai prediksi meningkat. Fenomena ini sering muncul pada data pendapatan karena skala usaha setiap peternak berbeda-beda. Usaha yang lebih besar cenderung menunjukkan variabilitas pendapatan yang lebih tinggi.

  2. Validitas Linearitas

    Uji linearitas menunjukkan bahwa hubungan pendapatan dengan X4 (Price per Unit) dan X5 (Quantity Sold) bersifat linear. Temuan ini memperkuat bahwa regresi linear adalah metode yang tepat untuk menganalisis hubungan antara variabel. Selain itu, hasil ini sejalan dengan teori dasar ekonomi yang menyatakan bahwa pendapatan dipengaruhi oleh harga dan jumlah penjualan.

  3. Normalitas Residual yang Cukup Baik

    Meskipun beberapa model sederhana menunjukkan penyimpangan dari normalitas, residual pada model dengan X3 dan X5 terlihat lebih mendekati distribusi normal. Dengan jumlah observasi mencapai 80 data, Central Limit Theorem membantu memastikan bahwa pendugaan parameter tetap valid meskipun asumsi normalitas tidak sepenuhnya terpenuhi.


4.5.2 Pembahasan Hasil All-Possible Regression

A. Dominasi X4 dan X5 sebagai Prediktor Utama

Hasil All-Possible Regression secara konsisten menunjukkan bahwa kombinasi X4 (Price per Unit) dan X5 (Quantity Sold) merupakan prediktor yang paling kuat. Hal ini selaras dengan prinsip ekonomi sebagai berikut:

  1. Konsistensi dengan Teori Dasar Ekonomi

    Dalam teori ekonomi mikro, pendapatan total dirumuskan sebagai:

    \[ TR = P \cdot Q \]

    Model regresi yang terbentuk:

    \[ Y = -17517.908 + 280.959\,X_4 + 59.484\,X_5 \]

    secara langsung merepresentasikan hubungan linear antara harga, jumlah terjual, dan pendapatan. Koefisien positif pada kedua variabel menunjukkan bahwa peningkatan harga atau jumlah penjualan akan meningkatkan pendapatan.

  2. Besarnya Pengaruh Relatif

    Koefisien X4 (280.959) lebih besar dibandingkan X5 (59.484), yang berarti bahwa perubahan harga memiliki dampak per unit yang lebih besar terhadap pendapatan. Namun demikian, jumlah terjual (X5) yang bervariasi cukup besar secara praktis tetap memberikan kontribusi signifikan.


B. Redundansi Variabel X3

X3 (Quantity) terlihat tidak signifikan dalam model regresi berganda meskipun signifikan ketika diuji sendiri. Hal ini terjadi karena dua alasan berikut:

  1. Overlap Informasi

    X3 dan X5 kemungkinan mengukur aspek yang mirip. X5 menggambarkan jumlah yang benar-benar terjual, sehingga memiliki hubungan langsung dengan pendapatan. Ketika X5 masuk ke model, kontribusi X3 menjadi kecil.

  2. Multikolinearitas

    Korelasi tinggi antara X3 dan X5 menyebabkan multikolinearitas. Akibatnya, X5 menjelaskan lebih banyak variansi yang sebelumnya dijelaskan oleh X3, sehingga X3 tampak tidak signifikan.


C. Ketidaksignifikanan X1 dan X2

Variabel X1 (Total Land Area) dan X2 (Number of Cows) tidak signifikan dalam model. Hal ini dapat dipahami melalui penjelasan berikut:

  1. Efek Tidak Langsung

    Luas lahan dan jumlah sapi bukan faktor langsung yang menentukan pendapatan. Pengaruhnya muncul melalui peningkatan produksi atau jumlah penjualan (yang diwakili oleh X3 dan X5). Ketika variabel output tersebut masuk ke model, pengaruh langsung X1 dan X2 menjadi tidak signifikan.

  2. Inefisiensi Produksi

    Koefisien negatif pada X2 (meskipun tidak signifikan) dapat mencerminkan inefisiensi produksi. Artinya, memiliki lebih banyak sapi tidak selalu meningkatkan pendapatan, terutama jika biaya operasional naik atau produktivitas menurun.


BAB V :KESIMPULAN DAN SARAN

5.1 Kesimpulan

Secara keseluruhan, hasil analisis menunjukkan bahwa pendapatan total peternakan sangat dipengaruhi oleh dua variabel utama, yaitu harga jual per unit (X4) dan jumlah produk yang berhasil terjual (X5). Kedua variabel ini memang merupakan komponen langsung dari pendapatan, sehingga wajar jika keduanya menjadi prediktor paling kuat dalam model.

Sementara itu, variabel seperti luas lahan (X1), jumlah sapi (X2), dan bahkan volume produksi (X3) tidak memberikan kontribusi tambahan yang signifikan setelah X4 dan X5 dimasukkan ke model. Hal ini mengindikasikan bahwa pendapatan tidak ditentukan oleh kapasitas produksi saja, tetapi oleh berapa banyak produk yang benar-benar terjual dan berapa harga yang ditetapkan.

Hasil ini sejalan dengan teori pada BAB II, bahwa regresi linear akan memilih prediktor yang memiliki hubungan paling kuat dan konsisten terhadap variabel respon.

5.2 Saran

Saran untuk penelitian selanjutnya adalah agar proses seleksi model tidak hanya menggunakan AIC, tetapi juga dibandingkan dengan kriteria lain seperti BIC atau Adjusted R² untuk memperoleh model yang lebih konsisten. Selain itu, model yang terpilih sebaiknya divalidasi menggunakan metode seperti cross-validation agar kemampuan generalisasinya dapat dipastikan. Pemeriksaan asumsi regresi juga perlu dilakukan kembali setelah proses seleksi model, serta variabel yang dipilih hendaknya mempertimbangkan relevansi teoritis, bukan hanya hasil perhitungan statistik. Penelitian berikutnya juga disarankan menambahkan variabel prediktor yang lebih representatif serta menggunakan visualisasi diagnostik untuk membantu mengevaluasi kualitas model akhir.


DAFTAR PUSTAKA

Aprihartha, M. A. Pemilihan Model Regresi Linear Berganda Terbaik untuk Menentukan Faktor-Faktor Penyebab Kasus Balita Gizi Buruk di Jawa Tengah. Jurnal EurekaMatika, 13(1), 35-46.

Darma, Budi. Statistika penelitian menggunakan SPSS (Uji validitas, uji reliabilitas, regresi linier sederhana, regresi linier berganda, uji t, uji F, R2). Guepedia, 2021.

Hazra, A. (2017). Using the confidence interval confidently. Journal of thoracic disease, 9(10), 4125.

Hutagaol, K. (2025). Kajian Tentang Uji Asumsi Klasik Berbantuan SPSS. Jurnal Padegogik, 8(2), 15-28.

Khoiroh, U. (2011). Uji Heteroskedastisitas pada Regresi Nonparametrik (Doctoral dissertation, UNIVERSITAS AIRLANGGA).

Mardiatmoko, G. (2020). Pentingnya uji asumsi klasik pada analisis regresi linier berganda (studi kasus penyusunan persamaan allometrik kenari muda [canarium indicum l.]). BAREKENG: Jurnal Ilmu Matematika Dan Terapan, 14(3), 333-342.

Novia, A. D. (2012). Analisis Perbandingan Uji Autokorelasi Durbin-Watson dan Breusch-Godfrey (Doctoral dissertation, Universitas Islam Negeri Maulana Malik Ibrahim).

Nugraha, Billy. Pengembangan uji statistik: Implementasi metode regresi linier berganda dengan pertimbangan uji asumsi klasik. Pradina Pustaka, 2022.

Pramono, A., Tama, T. J. L. G., & Waluyo, T. (2021). Analisis arus tiga fasa daya 197 KVA dengan menggunakan metode uji normalitas kolmogorov-smirnov. Jurnal RESISTOR (Rekayasa Sistem Komputer), 4(2), 213-216

Roflin, E., & Riana, F. (2022). Analisis Korelasi dan Regresi. Penerbit NEM.