O R oferece suporte abrangente para regressão linear múltipla. Os tópicos abaixo são fornecidos em ordem crescente de complexidade.
Ajuste do modelo
# Multiple Linear Regression Example
fit <- lm(y ~ x1 + x2 + x3, data=mydata)
summary(fit)# show resultsTecnologia
# Other useful functions
coefficients(fit)# model coefficients
confint(fit, level=0.95)# CIs for model parameters
fitted(fit)# predicted values
residuals(fit)# residuals
anova(fit)# anova table
vcov(fit)# covariance matrix for model parameters
influence(fit)# regression diagnosticsTecnologia
Gráficos de diagnóstico
Os gráficos de diagnóstico fornecem verificações de heterocedasticidade, normalidade e observações influentes.
Você pode comparar modelos aninhados com a função anova( ). O código a seguir fornece um teste simultâneo de que x3 e x4 são adicionados à previsão linear acima e além de x1 e x2.
# Assessing R2 shrinkage using 10-Fold Cross-Validation
fit <- lm(y~x1+x2+x3,data=mydata)
library(bootstrap)# define functions
theta.fit <-function(x,y){lsfit(x,y)}
theta.predict <-function(fit,x){cbind(1,x)%*%fit$coef}# matrix of predictors
X
<- as.matrix(mydata[c("x1","x2","x3")])# vector of predicted values
y <- as.matrix(mydata[c("y")])
results <- crossval(X,y,theta.fit,theta.predict,ngroup=10)
cor(y, fit$fitted.values)**2# raw R2
cor(y,results$cv.fit)**2# cross-validated R2Tecnologia
Seleção de variáveis
A seleção de um subconjunto de variáveis preditoras de um conjunto maior (por exemplo, seleção por etapas) é um tópico controverso. Você pode executar a seleção por etapas (para frente, para trás, ambas) usando a função stepAIC( ) do pacote MASS. stepAIC( ) executa a seleção do modelo por etapas pelo AIC exato.
Como alternativa, você pode executar a regressão de todos os subconjuntos usando a função leaps( ) do pacote leaps. No código a seguir, nbest indica o número de subconjuntos de cada tamanho a ser relatado. Aqui, os dez melhores modelos serão relatados para cada tamanho de subconjunto (1 preditor, 2 preditores, etc.).
# All Subsets Regression
library(leaps)
attach(mydata)
leaps<-regsubsets(y~x1+x2+x3+x4,data=mydata,nbest=10)# view results
summary(leaps)# plot a table of models showing variables in each model.#
models are ordered by the selection statistic.
plot(leaps,scale="r2")# plot statistic by subset size
library(car)
subsets(leaps, statistic="rsq")Tecnologia
Outras opções para plot( ) são bic, Cp e adjr2. Outras opções para plotagem comsubset( ) são bic, cp, adjr2 e rss.
# Calculate Relative Importance for Each Predictor
library(relaimpo)
calc.relimp(fit,type=c("lmg","last","first","pratt"),
rela=TRUE)# Bootstrap Measures of Relative Importance (1000 samples)
boot <- boot.relimp(fit, b =1000, type = c("lmg","last","first","pratt"), rank =TRUE,
diff =TRUE, rela =TRUE)
booteval.relimp(boot)# print result
plot(booteval.relimp(boot,sort=TRUE))# plot resultTecnologia
Aprimoramentos gráficos
O pacote car oferece uma ampla variedade de gráficos para regressão, incluindo gráficos de variáveis adicionadas, diagnóstico aprimorado e gráficos de dispersão.
O R oferece suporte abrangente para regressão linear múltipla. Os tópicos abaixo são fornecidos em ordem crescente de complexidade.
Ajuste do modelo
Gráficos de diagnóstico
Os gráficos de diagnóstico fornecem verificações de heterocedasticidade, normalidade e observações influentes.
Para uma avaliação mais abrangente do ajuste do modelo, consulte os diagnósticos de regressão ou os exercícios em neste curso interativo</a > sobre Aprendizado Supervisionado em R: Regressão.
Comparação de modelos
Você pode comparar modelos aninhados com a função anova( ). O código a seguir fornece um teste simultâneo de que x3 e x4 são adicionados à previsão linear acima e além de x1 e x2.
Validação cruzada
Você pode fazer a validação cruzada K-Fold</a >usando a função cv.lm( ) no pacote DAAG.
Some o MSE para cada dobra, divida pelo número de observações e tire a raiz quadrada para obter o erro padrão de estimativa com validação cruzada.
Você pode avaliar a redução de R2 por meio da validação cruzada K-fold. Usando a função crossval() do pacote bootstrap</a ></strong >, faça o seguinte:
Seleção de variáveis
A seleção de um subconjunto de variáveis preditoras de um conjunto maior (por exemplo, seleção por etapas) é um tópico controverso. Você pode executar a seleção por etapas (para frente, para trás, ambas) usando a função stepAIC( ) do pacote MASS. stepAIC( ) executa a seleção do modelo por etapas pelo AIC exato.
Como alternativa, você pode executar a regressão de todos os subconjuntos usando a função leaps( ) do pacote leaps. No código a seguir, nbest indica o número de subconjuntos de cada tamanho a ser relatado. Aqui, os dez melhores modelos serão relatados para cada tamanho de subconjunto (1 preditor, 2 preditores, etc.).
Outras opções para plot( ) são bic, Cp e adjr2. Outras opções para plotagem comsubset( ) são bic, cp, adjr2 e rss.
Importância relativa
O pacote relaimpo</a > fornece medidas de importância relativa para cada um dos preditores do modelo. Consulte help(calc.relimp) para obter detalhes sobre as quatro medidas de importância relativa fornecidas.
Aprimoramentos gráficos
O pacote car oferece uma ampla variedade de gráficos para regressão, incluindo gráficos de variáveis adicionadas, diagnóstico aprimorado e gráficos de dispersão.
Indo além
Regressão não linear
O pacote nls fornece funções para regressão não linear. Consulte o site de John Fox Nonlinear Regression and Nonlinear Least Squares</a > para obter uma visão geral. Huet e colegas Statistical Tools for Nonlinear Regression (Ferramentas estatísticas para regressão não linear): A Practical Guide with S-PLUS and R Examples</a > é um valioso livro de referência.
Regressão robusta
Há muitas funções no R para ajudar na regressão robusta. Por exemplo, você pode realizar uma regressão robusta com a função rlm( ) do pacote MASS. De John Fox (quem mais?) Robust Regression</a > fornece uma boa visão geral inicial. O site da UCLA Statistical Computing tem Exemplos de regressão robusta</a > .
O pacote robust fornece uma biblioteca abrangente de métodos robustos, incluindo regressão. O pacote robustbase</a > também fornece estatísticas robustas básicas, incluindo métodos de seleção de modelos. E David Olive forneceu uma análise on-line detalhada de Applied Robust Statistics</a > com um exemplo de código R .
Para praticar
Este curso de aprendizado de máquina em R</a > inclui exercícios de regressão múltipla e validação cruzada .