Kalkulator Regresi Linear
Menghitung regresi linear dari titik data: kemiringan, intersep, R², dan prediksi.
| # | X | Y | |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 |
Tentang alat ini
Regresi linear adalah metode statistik fundamental yang memodelkan hubungan antara dua variabel dengan mencocokan garis lurus melalui serangkaian titik data. Kalkulator ini membantu Anda menemukan garis kecocokan terbaik, menghitung kemiringan dan intersep, serta mengukur seberapa baik data Anda mengikuti pola linear melalui nilai R². Baik Anda menganalisis tren dalam data penjualan, membandingkan hasil eksperimen, atau mengeksplorasi korelasi dalam studi ilmiah, memahami hubungan linear sangat penting untuk pengambilan keputusan berbasis data.
Untuk menggunakan alat ini, cukup masukkan titik data Anda sebagai pasangan nilai X dan Y, kemudian klik Hitung untuk langsung mendapatkan kemiringan (laju perubahan), intersep (tempat garis memotong sumbu Y), koefisien R² (ukuran kualitas kecocokan dari 0 hingga 1, dengan 1 berarti kecocokan sempurna), dan persamaan prediksi. Alat ini juga memungkinkan Anda memasukkan nilai X baru untuk memprediksi nilai Y yang sesuai berdasarkan model yang dipasang.
Kalkulator ini ideal untuk siswa yang mempelajari statistik, peneliti yang memvalidasi hipotesis, dan profesional yang mengidentifikasi tren dalam metrik bisnis. Perlu diingat bahwa regresi linear mengasumsikan hubungan Anda kira-kira linear; jika data Anda menunjukkan pola melengkung atau penyebaran luas, model mungkin tidak dapat diandalkan. Untuk hubungan yang lebih kompleks, pertimbangkan regresi polinomial atau non-linear lainnya.
Pertanyaan yang Sering Diajukan
Implementasi Kode
def linear_regression(x: list, y: list) -> dict:
n = len(x)
if n < 2:
raise ValueError("Need at least 2 data points")
sum_x = sum(x)
sum_y = sum(y)
sum_xy = sum(xi * yi for xi, yi in zip(x, y))
sum_x2 = sum(xi ** 2 for xi in x)
mean_x = sum_x / n
mean_y = sum_y / n
slope = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x ** 2)
intercept = mean_y - slope * mean_x
# R-squared
ss_res = sum((yi - (slope * xi + intercept)) ** 2 for xi, yi in zip(x, y))
ss_tot = sum((yi - mean_y) ** 2 for yi in y)
r2 = 1 - ss_res / ss_tot if ss_tot != 0 else 1.0
return {"slope": slope, "intercept": intercept, "r_squared": r2,
"pearson_r": r2 ** 0.5 if r2 >= 0 else 0}
x = [1, 2, 3, 4, 5]
y = [2.1, 3.9, 6.2, 7.8, 10.1]
result = linear_regression(x, y)
print(f"y = {result['slope']:.4f}x + {result['intercept']:.4f}")
print(f"R² = {result['r_squared']:.4f}")
# Predict
x_new = 6
y_pred = result['slope'] * x_new + result['intercept']
print(f"Prediction at x=6: {y_pred:.2f}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.