--- layout: post title: Linear Regression in R published: yes --- Hồi quy tuyến tính trên R ```{r label="load libraries"} library(MASS) library(ISLR) ``` ## Hồi quy tuyến tính giản đơn ```{r label="simple linear regression"} names(Boston) attach(Boston) lm.fit=lm(medv~lstat) lm.fit summary(lm.fit) names(lm.fit) coef(lm.fit) confint(lm.fit) predict(lm.fit,data.frame(lstat=(c(5,10,15))), interval="confidence") predict(lm.fit,data.frame(lstat=(c(5,10,15))), interval="prediction") plot(lstat,medv) abline(lm.fit) abline(lm.fit,lwd=3) abline(lm.fit,lwd=3,col="red") plot(lstat,medv,col="red") plot(lstat,medv,pch=20) plot(lstat,medv,pch="+") plot(1:20,1:20,pch=1:20) par(mfrow=c(2,2)) plot(lm.fit) plot(predict(lm.fit), residuals(lm.fit)) plot(predict(lm.fit), rstudent(lm.fit)) plot(hatvalues(lm.fit)) which.max(hatvalues(lm.fit)) ``` ## Hồi quy tuyến tính nhiều biến ```{r label="multiple linear regression"} lm.fit=lm(medv~lstat+age,data=Boston) summary(lm.fit) lm.fit=lm(medv~.,data=Boston) summary(lm.fit) ?summary.lm summary(lm.fit)$r.sq summary(lm.fit)$sigma ``` ```{r label="car library"} # install.packages("car") library(car) vif(lm.fit) lm.fit1=lm(medv~.-age,data=Boston) summary(lm.fit1) # lm.fit1=update(lm.fit, ~.-age) ``` ## Tương tác giữa các biến ```{r label="interaction terms"} summary(lm(medv~lstat*age,data=Boston)) ``` ## Chuyển đổi phi tuyến các biến dự báo ```{r label="Non-linear Transformations of the Predictors"} lm.fit2=lm(medv~lstat+I(lstat^2)) summary(lm.fit2) lm.fit=lm(medv~lstat) anova(lm.fit,lm.fit2) par(mfrow=c(2,2)) plot(lm.fit2) lm.fit5=lm(medv~poly(lstat,5)) summary(lm.fit5) summary(lm(medv~log(rm),data=Boston)) ``` ## Các biến dự báo định tính ```{r label="Qualitative Predictors"} # fix(Carseats) names(Carseats) lm.fit=lm(Sales~.+Income:Advertising+Price:Age,data=Carseats) summary(lm.fit) attach(Carseats) contrasts(ShelveLoc) ```