---
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)
```

