獨斷論

통계 R의 명령어 입문 (6): 선형회귀분석(linear regression analysis) 본문

과학과 기술/R 통계

통계 R의 명령어 입문 (6): 선형회귀분석(linear regression analysis)

부르칸 2013. 7. 8. 01:36

R에서 간단한 linear regression을 수행하는 방법을 알아보자.

우선 종속변수를 y라 하고 독립변수를 x라 했을때 두 변수에 임의 값을 지정하자. 

    > x = c(1.1, 2.5, 3.1, 4.9, 5.9, 8.1)
    > y = c(1.2, 6.4, 9.0, 23.5, 38, 61.1)

이 두 변수를 이용하여 linear regression을 수행하는 방법은 아주 간단하고 아래와 같다. 

    > lm(y ~ x) 

    Call:
    lm(formula = y ~ x)

    Coefficients:
    (Intercept)            x 
        -14.552        8.848

위 선형회귀분석의 결과를 저장하고자 한다면 아래와 같이 수행하면 된다.

> lm.results = lm(y ~ x)

> summary(lm.results)


Call:
lm(formula = y ~ x)


Residuals:
     1      2      3      4      5      6
 6.019 -1.168 -3.877 -5.304  0.348  3.982

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) -14.5522     4.2038  -3.462 0.025779 * 
x             8.8482     0.8656  10.221 0.000516 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.918 on 4 degrees of freedom
Multiple R-squared:  0.9631,    Adjusted R-squared:  0.9539
F-statistic: 104.5 on 1 and 4 DF,  p-value: 0.0005163

그 밖에 잡다한 명령어를 알아보자.

 

어떤 명령어에 대한 도움말을 보고자 한다면 아래와 같이 한다.

> help(function.name)

> help(cor.test)

명령어는 기억이 안나지만 어떤단어와 연관이 있는 명령어를 찾기를 원한다면 아래와 같이 한다. 

> help.search("something.related")

> help.search("normal")

 

일반적인 R작업에서는 데이터 파일을 미리 만들어놓고 그것을 불러들이는 경우가 많으므로 데이터 파일을 어떻게 R로 불러들이는지 알아보자.

여러가지 파일을 불러들일 수 있지만 가장 쉽고 간단한 방법은 csv파일 즉 쉼표로 변수들을 나누어 놓은 파일을 불러들이는 방법이다. 보통 실험데이터를 엑셀에 저장해 놓는데 엑셀에서 "Save As"를 클릭하고 잘 찾아보면 comma delimited (csv)라고 된 것이 보이므로 이 파일 형식으로 저장하면 된다. 마지막으로 엑셀을 닫고 나올때는 저장하지 않고 나와야지 csv파일이 텍스트파일로 유지된다는 것에 유의하여야 한다. 

그러면 아래와 같은 가상의 데이터를 exprmntdat.csv 파일로 만들었다고 가정해보자. 

x1, x2, y

1, 3, 5 

2, 4, 8

6, 10, 22

9, 20, 49

12, 30, 60

19, 60, 120

이제 위 데이터를 R에서 불러들이기 위해서는 아래와 같이 수행하면 된다.

    > dataframe.xxy = read.csv("exprmntdat.csv")  

    > dataframe.xxy
      x1 x2   y
    1  1  3   5
    2  2  4   8
    3  6 10  22
    4  9 20  49
    5 12 30  60
    6 19 60 120
    > dataframe.xxy$x1
    [1]  1  2  6  9 12 19
    > dataframe.xxy$x2
    [1]  3  4 10 20 30 60
    > dataframe.xxy$y
    [1]   5   8  22  49  60 120
    > dataframe.xxy$y[1]
    [1] 5
    > dataframe.xxy$x2[4]
    [1] 20

    > names(dataframe.xxy)
    [1] "x1" "x2" "y"
    > dim(dataframe.xxy)
    [1] 6 3
    > summary(dataframe.xxy)
           x1               x2              y        
     Min.   : 1.000   Min.   : 3.00   Min.   :  5.00 
     1st Qu.: 3.000   1st Qu.: 5.50   1st Qu.: 11.50 
     Median : 7.500   Median :15.00   Median : 35.50 
     Mean   : 8.167   Mean   :21.17   Mean   : 44.00 
     3rd Qu.:11.250   3rd Qu.:27.50   3rd Qu.: 57.25 
     Max.   :19.000   Max.   :60.00   Max.   :120.00

 

exprmntdat.csv의 맨 윗줄에 변수명이 입력되었으며 이 변수명이 read.csv() 명령으로 dataframe.xxy에 저장되었다. dataframe.xxy는 일반 벡터나 행렬과 같지 않고 각 열의 변수명을 가지고 있으며 이 변수명을 참조하기 위해서

"$"

가 사용된다. 예를 들어  dataframe.xxy의 x1만 참조하기 위해서는

dataframe.xxy$x1

이라고 하면 된다.

 

Comments