ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.