Calculadora de Regresión Lineal
Calcula regresión lineal desde puntos de datos: pendiente, intercepto, R² y predicciones.
| # | X | Y | |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 |
Acerca de esta herramienta
La regresión lineal es un método estadístico fundamental que modela la relación entre dos variables ajustando una línea recta a través de un conjunto de puntos de datos. Esta calculadora te ayuda a encontrar la línea de mejor ajuste, calcular la pendiente e intercepción, y medir qué tan bien tus datos siguen un patrón lineal a través del valor R². Ya sea que estés analizando tendencias en datos de ventas, comparando resultados experimentales o explorando correlaciones en estudios científicos, comprender las relaciones lineales es esencial para la toma de decisiones basada en datos.
Para usar esta herramienta, simplemente ingresa tus puntos de datos como pares de valores X e Y, luego haz clic en Calcular para obtener instantáneamente la pendiente (la tasa de cambio), la intercepción (donde la línea cruza el eje Y), el coeficiente R² (una medida de la calidad del ajuste de 0 a 1, donde 1 significa ajuste perfecto) y ecuaciones de predicción. La herramienta también te permite ingresar un nuevo valor X para pronosticar el Y correspondiente basado en el modelo ajustado.
Esta calculadora es ideal para estudiantes que aprenden estadística, investigadores que validan hipótesis y profesionales que identifican tendencias en métricas empresariales. Ten en cuenta que la regresión lineal asume que tu relación es aproximadamente lineal; si tus datos muestran un patrón curvo o una dispersión amplia, el modelo podría no ser confiable. Para relaciones más complejas, considera regresiones polinomiales u otras no lineales.
Preguntas Frecuentes
Implementación de Código
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.