Calculadora de Regressão Linear
Calcula regressão linear a partir de pontos de dados: inclinação, intercepto, R² e previsões.
| # | X | Y | |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 | |||
| 5 |
Sobre esta ferramenta
A regressão linear é um método estatístico fundamental que modela a relação entre duas variáveis ajustando uma linha reta através de um conjunto de pontos de dados. Esta calculadora ajuda você a encontrar a linha de melhor ajuste, calcular a inclinação e a interceptação, e medir o quão bem seus dados seguem um padrão linear através do valor R². Quer você esteja analisando tendências em dados de vendas, comparando resultados experimentais ou explorando correlações em estudos científicos, entender relações lineares é essencial para a tomada de decisão baseada em dados.
Para usar esta ferramenta, simplesmente insira seus pontos de dados como pares de valores X e Y, e clique em Calcular para obter instantaneamente a inclinação (a taxa de mudança), a interceptação (onde a linha cruza o eixo Y), o coeficiente R² (uma medida da qualidade do ajuste de 0 a 1, onde 1 significa ajuste perfeito) e equações de previsão. A ferramenta também permite que você insira um novo valor X para prever o Y correspondente com base no modelo ajustado.
Esta calculadora é ideal para estudantes que aprendem estatística, pesquisadores que validam hipóteses e profissionais que identificam tendências em métricas de negócios. Tenha em mente que a regressão linear assume que sua relação é aproximadamente linear; se seus dados mostram um padrão curvo ou uma dispersão ampla, o modelo pode não ser confiável. Para relações mais complexas, considere regressões polinomiais ou outras não lineares.
Perguntas Frequentes
Implementação 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.