Repository ini berisi implementasi lengkap pipeline analisis regresi linear berganda menggunakan metode Ordinary Least Squares (OLS) untuk prediksi dan analisis error.
π pre-prosesing/
βββ data.csv # Dataset mentah
graph TD
A[data.csv] --> B[Data Cleaning]
B --> C[data_cleaned.csv]
C --> D[Data Splitting]
D --> E[train.csv]
D --> F[test.csv]
E --> G[Polynomial Features - Train]
F --> H[Polynomial Features - Test]
G --> I[train_polynomial.csv]
H --> J[test_polynomial.csv]
I --> K[Data Scaling - Train]
J --> L[Data Scaling - Test]
K --> M[train_scaled.csv]
L --> N[test_scaled.csv]
M --> O[OLS Training]
O --> P[train_olsCoefficients.csv]
P --> Q[MLR Prediction]
N --> Q
Q --> R[mlr_error_analysis.png]
Q --> S[test_mlr.csv]
File: pre-prosesing/cleaning.py
- Input:
data.csv - Output:
data_cleaned.csv - Fungsi:
- Menghapus baris yang mengandung nilai:
'-','8888','9999' - Membersihkan data missing/invalid
- Reset index data
- Menghapus baris yang mengandung nilai:
File: pre-prosesing/spliting.py
- Input:
data_cleaned.csv - Output:
input_data/train.csv(70% data)input_data/test.csv(30% data)
- Fungsi:
- Split data secara berurutan (sequential split)
- Rasio default: 70:30 (training:testing)
File: pre-prosesing/polynomial_features.py
- Input:
input_data/train.csvinput_data/test.csv
- Output:
polynomial_data/train_polynomial.csvpolynomial_data/test_polynomial.csv
- Fungsi:
- Membuat fitur polynomial (XβΒ², XβΓXβ, dll.) untuk meningkatkan kompleksitas model
- Degree default: 2 (quadratic features)
- Menangani interaksi antar variabel independent
- Mengonversi categorical wind direction ke numerical values
File: pre-prosesing/scaleing.py
- Input:
polynomial_data/train_polynomial.csvpolynomial_data/test_polynomial.csv
- Output:
output_data/train_scaled.csvoutput_data/test_scaled.csv
- Fungsi:
- Normalisasi data menggunakan standardization (z-score)
- Formula:
(x - mean) / std - Memastikan semua fitur dalam skala yang sama
File: prosesing/ols.py
- Input:
output_data/train_scaled.csv - Output:
train_olsCoefficients.csv - Fungsi:
- Estimasi koefisien menggunakan metode OLS
- Formula: Ξ² = (X'X)β»ΒΉX'y
- Menghitung intercept dan slope untuk setiap variabel
File: prosesing/mlr.py
- Input:
train_olsCoefficients.csv(koefisien model)output_data/test_scaled.csv(data test)
- Output:
test_mlr.csv(hasil prediksi)mlr_error_analysis.png(visualisasi error analysis)
- Fungsi:
- Prediksi menggunakan model MLR
- Analisis error: MAE, MSE, RMSE, RΒ²
- Visualisasi perbandingan actual vs predicted
π pre-prosesing/
βββ data_cleaned.csv # Data setelah cleaning
βββ π input_data/
β βββ train.csv # Data training (70%)
β βββ test.csv # Data testing (30%)
βββ π polynomial_data/
β βββ train_polynomial.csv # Data training dengan polynomial features
β βββ test_polynomial.csv # Data testing dengan polynomial features
βββ π output_data/
βββ train_scaled.csv # Data training yang sudah di-scale
βββ test_scaled.csv # Data testing yang sudah di-scale
π prosesing/
βββ train_olsCoefficients.csv # Koefisien model OLS
βββ test_mlr.csv # Hasil prediksi MLR
βββ mlr_error_analysis.png # Visualisasi analisis error
Jalankan seluruh pipeline dengan satu command:
./run_analysis.sh# 1. Aktifkan virtual environment
source ./regresi_env/bin/activate
# 2. Data Cleaning
python ./pre-prosesing/cleaning.py
# 3. Data Splitting
python ./pre-prosesing/spliting.py
# 4. Polynomial Features
python ./pre-prosesing/polynomial_features.py
# 5. Data Scaling
python ./pre-prosesing/scaleing.py
# 6. OLS Training
python ./prosesing/ols.py
# 7. MLR Prediction
python ./prosesing/mlr.pyBerisi koefisien model OLS dengan kolom:
Variable: Nama variabelCoefficient: Nilai koefisien Ξ²Std_Error: Standard errort_value: Nilai t-statistikp_value: P-value untuk uji signifikansi
Berisi hasil prediksi dengan kolom:
- Semua kolom input original
Predicted_RR: Nilai prediksi dari model MLRResidual: Selisih antara actual dan predictedAbs_Residual: Absolute residual
Visualisasi yang menampilkan:
- Scatter Plot: Actual vs Predicted values
- Residual Plot: Error distribution
- Histogram: Distribusi residual
- Metrics: MAE, MSE, RMSE, RΒ² score
- Data Preparation: Membersihkan dan mempersiapkan data untuk modeling
- Feature Scaling: Menormalisasi data untuk performa model yang optimal
- Model Training: Membangun model regresi linear berganda menggunakan OLS
- Prediction: Melakukan prediksi pada data test
- Error Analysis: Menganalisis performa model dengan berbagai metrik
- MAE (Mean Absolute Error): Rata-rata absolute error
- MSE (Mean Squared Error): Rata-rata squared error
- RMSE (Root Mean Squared Error): Akar dari MSE
- RΒ² Score: Koefisien determinasi (goodness of fit)
Lihat requirements.txt untuk dependencies:
- pandas
- numpy
- matplotlib
- seaborn
- scikit-learn
- openpyxl
- Dataset target variable:
RR - Split ratio: 70% training, 30% testing
- Scaling method: Z-score standardization
- Model: Multiple Linear Regression via OLS
- All paths menggunakan relative path untuk portabilitas
- BMKG Data Online - Badan Meteorologi, Klimatologi, dan Geofisika
- Link: https://dataonline.bmkg.go.id/data-harian
- Sumber data cuaca dan iklim Indonesia
- Weather Prediction Using Multi Linear Regression Algorithm
- Authors: N Anusha, M Sai Chaithanya, and Guru Jithendranath Reddy
- Published: IOP Conference Series: Materials Science and Engineering, Volume 590
- Conference: International Conference on Frontiers in Materials and Smart System Technologies
- Date: 10 April 2019, Tamil Nadu, India
- DOI: 10.1088/1757-899X/590/1/012034
- Link: https://iopscience.iop.org/article/10.1088/1757-899X/590/1/012034/meta
- Mathematical Foundation Document
- Link: https://drive.google.com/file/d/1pVPWokZJRlGjps9rks7KxTspnGk0db4f/view?usp=sharing
- Berisi teori matematika di balik implementasi MLR dan OLS
- Numerical Methods for Engineers (6th Edition)
- Authors: Steven C. Chapra and Raymond P. Canale
- Publisher: McGraw-Hill Education
- ISBN: 978-0073397924
- Referensi utama untuk metode numerik yang digunakan
Generated by MLR Analysis Pipeline - Metode Numerik 2025