Aller au contenu
🛠️ToolsShed

Calculatrice de Régression Linéaire

Calcule la régression linéaire à partir de points de données : pente, intercept, R² et prédictions.

#XY
1
2
3
4
5

À propos de cet outil

La régression linéaire est une méthode statistique fondamentale qui modélise la relation entre deux variables en ajustant une ligne droite à travers un ensemble de points de données. Cette calculatrice vous aide à trouver la ligne de meilleur ajustement, à calculer la pente et l'ordonnée à l'origine, et à mesurer la qualité de l'ajustement de vos données à un modèle linéaire par la valeur R². Que vous analysiez les tendances des données de ventes, compariez des résultats expérimentaux ou exploriez les corrélations dans des études scientifiques, comprendre les relations linéaires est essentiel pour la prise de décision basée sur les données.

Pour utiliser cet outil, entrez simplement vos points de données sous forme de paires de valeurs X et Y, puis cliquez sur Calculer pour obtenir instantanément la pente (le taux de variation), l'ordonnée à l'origine (où la ligne croise l'axe Y), le coefficient R² (une mesure de la qualité de l'ajustement de 0 à 1, où 1 signifie un ajustement parfait) et les équations de prédiction. L'outil vous permet également d'entrer une nouvelle valeur X pour prévoir la valeur Y correspondante sur la base du modèle ajusté.

Cette calculatrice est idéale pour les étudiants qui apprennent la statistique, les chercheurs qui valident des hypothèses et les professionnels qui identifient les tendances des métriques commerciales. Gardez à l'esprit que la régression linéaire suppose que votre relation est approximativement linéaire ; si vos données présentent un motif courbe ou une large dispersion, le modèle pourrait ne pas être fiable. Pour des relations plus complexes, envisagez des régressions polynomiales ou autres non linéaires.

Questions Fréquentes

Implémentation du Code

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.