-
R 을 이용한 Linear regression 연습하기 (Rohwer data set in heplots R package)R 2021. 3. 8. 16:51
이번에 R을 이용하여 linear regression 다루는것을 연습해 보았다.
먼저 이번에 연습한 linear model은 다음과 같다.
Linear regression:
$$\mathbf{Y} = \mathbf{X}\mathbf{\beta}+\mathbf{\epsilon}.$$
여기서 $\mathbf{Y}$ 는 response variable 또는 predicted variable 이라고 불리는 변수이며 보통 우리가 estimate 하고 싶은 변수이다.
$\mathbf{X}$는 covariates, input variables 등으로 불리는 주어진 data 이다.
$\mathbf{\beta}$는 effects 또는 regression coefficients 로 불리는 변수이다.
$\mathbf{\epsilon}$ 은 랜덤변수이다.
Linear regression은 주어진 $\mathbf{Y}$ 와 $\mathbf{X}$를 이용하여 최적의 $\mathbf{\beta}$를 찾는것이라고 보면 된다.
이제 R을 이용해서 연습을 해보자.
먼저 이번 연습에 쓰일 R 패키지인 heplots 가 필요하다. 다음의 코드를 입력하면 패키지를 설치 가능하다.
install.packages("heplots")
우선 Rohwer data set 을 구경해보자.
library("heplots")
data(Rohwer)
head(Rohwer)위의 코드를 입력하면 다음의 데이터 표가 나온다.
6개의 데이터가 나온다. 여기서 SES 는 Socioeconomic status 라는데, 사회 경제적 지위?를 나타내는 것 같다. SAT, PPVT 는 각각 SAT 시험점수, PPVT 시험점수를 나타낸다. 나머지 변수들의 자세한 내용은 다음의 코드를 입력하면 볼 수 있다.
help(Rohwer)
이제, linear regression 을 적용하여 linear model (regression coefficients $\mathbf{\beta}$) 를 찾아보자.
먼저 data 중에서 group variable은 categorical 변수이기 때문에 factor 함수를 이용해서 categorical 변수인것을 명시해야한다.
그 후 lm 함수를 이용해서 SAT 점수에 대한 linear model 을 구한다. Input variable 로는 group, n, s, ns, na, ss 를 이용 할 것이다.
다음의 코드를 입력하면 R 이 알아서 계산해준다! (너무 편함)
Rohwer$\$$group <- factor(Rohwer$\$$group)
res <- lm(SAT~group+n+s+ns+na+ss,data=Rohwer)
summary(res)코드를 실행하면 다음과 같은 summary가 나온다.
Summary of linear regression R 이 자동으로 residual, coefficient 등을 계산해준다.
여기서 중요한건 coefficients, 즉 모델 변수들이다.
첫번째 행, "Estimate" 이라고 쓰여있는 행이 input variable에 대한 $\mathbf{\beta}$값이다.
Coefficient쪽을 보면 $*$이 한개 이상($\text{p-value} < 0.05$)인 input variable은 ns, na 두개뿐이다. 따라서 쓸만한 변수가 이것 두개정도로 보인다. Intercept 까지 하면 3개정도?
참고로 coefficient $\mathbf{\beta}$만 보고싶다면 summary 대신 coef($\cdot$) 함수를 이용하면 된다.
예시로 다음의 코드를 입력해보자.
mlm=lm(cbind(SAT,PPVT,Raven)~group+n+s+ns+na+ss, data=Rohwer)
coef(mlm)SAT, PPVT, Raven 을 response variables로 적용한 multiple linear regression 이다.
coef() 를 사용하여 다음과 같은 coefficient $\mathbf{\beta}$ 를 얻게된다.
연습 끝~!😎
'R' 카테고리의 다른 글
R 을 이용한 linear regression 연습 (underfitting and overfitting) (0) 2021.03.10