일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 기자
- 통계
- linear regression
- 선형회귀분석
- 창평
- 풍백
- 신라
- 독사방여기요
- Histogram
- categorical variable
- 패수
- R
- 기자조선
- repeated measures ANOVA
- 한서지리지
- 히스토그램
- 단군
- 유주
- 한서
- 태그를 입력해 주세요.
- 통계학
- post hoc test
- 후한서
- spss
- 지리지
- 고구려
- ANOVA
- 우분투
- 낙랑군
- t test
- Today
- Total
獨斷論
통계 R의 명령어 입문 (6): 선형회귀분석(linear regression analysis) 본문
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
이라고 하면 된다.