İçeriğe geç
🛠️ToolsShed

Doğrusal Regresyon Hesaplayıcı

Veri noktalarından doğrusal regresyon hesaplar: eğim, kesim, R² ve tahminler.

#XY
1
2
3
4
5

Bu araç hakkında

Doğrusal regresyon, bir veri noktaları kümesinden geçen düz bir doğru uydurarak iki değişken arasındaki ilişkiyi modellemeyen temel bir istatistiksel yöntemdir. Bu hesap makinesi, en uygun doğruyu bulmak, eğimi ve y-kesişim noktasını hesaplamak ve R² değeri aracılığıyla verilerinizin doğrusal bir modele ne kadar uyduğunu ölçmenize yardımcı olur. İster satış verilerindeki eğilimleri analiz ediyor, ister deneysel sonuçları karşılaştırıyor, ister bilimsel çalışmalardaki korelasyonları araştırıyor olun, doğrusal ilişkileri anlamak veri tabanlı karar almak için gereklidir.

Bu aracı kullanmak için, veri noktalarınızı X ve Y değer çiftleri olarak girin ve Hesapla düğmesine tıklayın. Anında eğimi (değişim hızı), y-kesişim noktasını (doğrunun Y-eksenini kestiği yer), R² katsayısını (0 ile 1 arasında uyum kalitesi ölçüsü, 1 mükemmel uyumu anlamına gelir) ve tahmin denklemlerini elde edeceksiniz. Araç ayrıca, uydurulmuş modele dayanarak uygun Y değerini tahmin etmek için yeni bir X değeri girmenize de olanak tanır.

Bu hesap makinesi, istatistik öğrenen öğrenciler, hipotez valide eden araştırmacılar ve iş ölçümlerindeki eğilimleri tanımlayan profesyoneller için idealdır. Doğrusal regresyonun ilişkinizin yaklaşık olarak doğrusal olduğunu varsaydığını unutmayın; verileriniz eğri bir desen gösteriyorsa veya geniş bir dağılım varsa, model güvenilir olmayabilir. Daha karmaşık ilişkiler için polinom veya diğer doğrusal olmayan regresyonları göz önünde bulundurun.

Sıkça Sorulan Sorular

Kod Uygulaması

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.