コンテンツへスキップ
🛠️ToolsShed

線形回帰計算機

データポイントから線形回帰を計算:傾き、切片、R²、予測値。

#XY
1
2
3
4
5

このツールについて

線形回帰は、データポイントに直線を当てはめることで、2つの変数間の関係をモデル化する基本的な統計手法です。このツールを使うと、最適直線を見つけ、傾き(勾配)と切片を計算し、R²値でデータが線形パターンにどの程度従っているかを測定できます。売上トレンドの分析、実験結果の比較、科学研究における相関の探索など、線形関係を理解することはデータに基づいた意思決定に不可欠です。

このツールを使うには、XとYの値のペアをデータポイントとして入力し、計算ボタンをクリックするだけです。すると、傾き(変化の速さ)、切片(Y軸との交点)、R²係数(0から1の範囲での適合度。1は完全な適合を意味します)、そして予測式が得られます。さらに、新しいX値を入力することで、フィットされたモデルに基づいて対応するY値を予測することができます。

このツールは、統計学を学んでいる学生、仮説を検証する研究者、ビジネス指標のトレンドを特定する専門家に最適です。線形回帰はデータとの関係が大体線形であることを仮定していることに注意してください。データが曲線パターンを示したり、ばらつきが大きい場合、モデルの信頼性は低いかもしれません。より複雑な関係については、多項式回帰などの非線形回帰を検討してください。

よくある質問

コード実装

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.