4. [] ggplot []로 보는 선형회귀모델의 stat_smooth(method=lm, level= 0.95) 와 lm(y~X, df)로 확인하는 절편/기울기
2019. 1. 2. 17:34
1. 데이터 준비(dataframe)
age <- c(18, 23, 25, 35, 65,
54, 34, 56, 72, 19,
23, 42, 18, 39, 37)
maxHR <- c(202, 186, 187, 180, 156,
169, 174, 172 ,153, 199,
193, 174, 198, 183, 178)
df <- data.frame(age, maxHR)
df
## age maxHR
## 1 18 202
## 2 23 186
## 3 25 187
## 4 35 180
## 5 65 156
## 6 54 169
## 7 34 174
## 8 56 172
## 9 72 153
## 10 19 199
## 11 23 193
## 12 42 174
## 13 18 198
## 14 39 183
## 15 37 178
2. Linear Regression model 그리기
lm()함수를 사용하는데, y ~ X : X에 따른 y값(결과값)이다.
인자는 (y칼럼 ~ X칼럼, data = df ) 형태로 들어가야한다.
그 결과로는 계수(coefficients)가 나오는데
- 1차함수의 절편인 (intercept)와 2) 기울기가 나온다.
lm_result <- lm(maxHR ~ age, data = df)
lm_result
##
## Call:
## lm(formula = maxHR ~ age, data = df)
##
## Coefficients:
## (Intercept) age
## 210.0485 -0.7977
print(paste("y(maxHR) =",lm_result$coefficients[2],"x(age) +" ,lm_result$coefficients[1]))
## [1] "y(maxHR) = -0.797726564933042 x(age) + 210.048458424167"
y(maxHR) = -0.7977(age) + 210.0485
3. Visualization with ggplot
ggplot(data=df, aes(X축칼럼, x축칼럼)) +
geom_그래프종류() +
xlab(“x축이름”) + ylab(“y축이름”) +
ggtitle(“그래프이름”) +
stat_smooth(method = lm, level=0.95) # 오차를 최소로 만드는 선을 linear model로 추가, 신뢰도 0.95로 지정가능
#install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(age, maxHR)) +
geom_point() +
xlab("AGE") +
ylab("Maxium Heart Rate") +
ggtitle("Relation betweeb Maxium Heart Rate and Age") +
stat_smooth(method = lm, level = 0.95)