Introdução ao Método
O método de Mínimos Quadrados Ordinários, conhecido como Ordinary Least Squares (OLS), constitui a abordagem fundamental para estimação de parâmetros em modelos de regressão linear. Primordialmente, este método visa encontrar os coeficientes que minimizam a soma dos quadrados dos resíduos.
Formulação Matemática
Consideremos um conjunto de dados com n observações e p features. O modelo linear assume a forma:
\(y = X\beta + \epsilon\)Onde:
- \(y\) representa o vetor de valores alvo
- \(X\) denota a matriz de features
- \(\beta\) simboliza os coeficientes a serem estimados
- \(\epsilon\) corresponde ao termo de erro
Função Objetivo
O objetivo do OLS consiste em minimizar a seguinte função custo:
\(\min_{\beta} ||y – X\beta||_2^2\)Esta expressão representa a soma dos quadrados das diferenças entre os valores observados e os valores previstos pelo modelo.
Solução Fechada
Surpreendentemente, o problema dos mínimos quadrados admite uma solução analítica fechada quando a matriz \(X^TX\) é invertível:
\(\hat{\beta} = (X^TX)^{-1}X^Ty\)Contudo, quando a matriz \(X^TX\) aproxima-se de uma matriz singular, a estimação torna-se numericamente instável. Analogamente, problemas de multicolinearidade podem comprometer a qualidade das estimativas.
Implementação no scikit-learn
No scikit-learn, a classe LinearRegression implementa o método OLS. Importante salientar que esta implementação utiliza a função scipy.linalg.lstsq, que emprega a decomposição SVD para resolver o problema de mínimos quadrados.
Vantagens do OLS
- Simplicidade conceitual e implementacional
- Interpretabilidade direta dos coeficientes
- Propriedades estatísticas ótimas sob premissas gaussianas
- Computacionalmente eficiente para datasets de tamanho moderado
Limitações e Considerações
Entretanto, o método OLS apresenta algumas limitações importantes:
- Sensibilidade a outliers
- Pressuposição de linearidade na relação entre features e target
- Problemas com multicolinearidade
- Tendência ao overfitting quando o número de features é elevado
Exemplo Prático em Python
Posteriormente, apresentamos um exemplo concreto de implementação utilizando o scikit-learn:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import numpy as np from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score import matplotlib.pyplot as plt # Gerar dados sintéticos np.random.seed(42) X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) # Instanciar e treinar o modelo modelo_ols = LinearRegression() modelo_ols.fit(X, y) # Fazer previsões y_pred = modelo_ols.predict(X) # Coeficientes do modelo print(f"Coeficiente (inclinação): {modelo_ols.coef_[0][0]:.4f}") print(f"Intercepto: {modelo_ols.intercept_[0]:.4f}") print(f"R² Score: {r2_score(y, y_pred):.4f}") print(f"MSE: {mean_squared_error(y, y_pred):.4f}") # Visualização plt.figure(figsize=(10, 6)) plt.scatter(X, y, alpha=0.7, label='Dados observados') plt.plot(X, y_pred, color='red', linewidth=2, label='Reta de regressão') plt.xlabel('Feature X') plt.ylabel('Target y') plt.title('Regressão Linear - Mínimos Quadrados Ordinários') plt.legend() plt.grid(True, alpha=0.3) plt.show() |
Considerações Finais
Decerto, o método de Mínimos Quadrados Ordinários permanece como pedra angular na análise de regressão. Embora possua limitações, sua simplicidade e propriedades estatísticas o tornam indispensável no arsenal do cientista de dados. Ademais, serve como ponto de partida para compreensão de métodos mais sofisticados como Ridge e Lasso regression.
Inegavelmente, a escolha adequada do método de regressão depende fundamentalmente das características dos dados e dos objetivos específicos da análise. Portanto, recomenda-se sempre validar as premissas do modelo e considerar abordagens alternativas quando necessário.