2021-04-27

R로 Linear Regression Model로 분석하기

df라는 데이타프레임이 있다고 합시다. 하나 만들어 보았어요.

> df <-  data.frame(xx=c(1,2,3,4,5), yy=c(1.1, 2.1, 3.2, 3.9, 5.2))

df는 이렇게 생겼습니다.

> df
  xx  yy
1  1 1.1
2  2 2.1
3  3 3.2
4  4 3.9
5  5 5.2

xx와 yy의 관계를 그림으로 보면 이렇습니다.



yy가 xx의 linear model로 설명될 수 있는지를 알기 위해 lm함수를 이용해서 모델을 만듭니다.

> lin.model <- lm(yy~xx, data=df)

lm의 첫번째 argument는 yy와 xx의 관계를 표현하는 식, 두번째 argument는 사용할 데이타프레임, 그러니까 df입니다.

만들어진 linear modeling결과물을 봅시다.

> summary(lin.model)

Call:
lm(formula = yy ~ xx, data = df)
Residuals:
         1          2          3          4          5 
 6.939e-18  2.936e-16  1.000e-01 -2.000e-01  1.000e-01 
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.10000    0.14832   0.674 0.548486    
xx           1.00000    0.04472  22.361 0.000196 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1414 on 3 degrees of freedom
Multiple R-squared:  0.994, Adjusted R-squared:  0.992 
F-statistic:   500 on 1 and 3 DF,  p-value: 0.0001958

가장 중요한 부분에 하이라이트했어요. xx에 대한 p-value가 0.000196으로 별세개. 그러니까, yy는 xx의 선형함수로 표현되고 이게 통계학적으로 유의미하다는 결과가 나왔네요.