아래의 내용은 '데이터 분석 전문가/준전문가' 라는 책에 있는 내용을 따라서 해본것이며, 나름 재미있다. 교과서 답지않게 딱딱하지도 않고 내공이 돋보인다. 사 보도록 한다.
모수적 통계분석 기법개요
빈도분석 / 상관분석 / 표본평균검증 / 세집단 이상의 평균검정 / 회귀분석
비모수적 통계분석 기법개요
적합도 검정 / 변수간 상관분석
표본추출
단순랜덤샘플링
계통샘플링 : 임의 위치에서 매 k번째 항목 추출
층화샘플링 : 명확하게 다른 데이터를 중첩없이 분할하여 샘플링
집락추출 : 군집을 구분하고 군집별로 단순랜덤샘플링한 후 모든자료를 활용
추출 명령어
비복원추출
sample(1:100,5)
복원추출(한번뽑은걸 다시뽑음)
sample(1:100,5,replace=TRUE)
가중치부여
sample(1:100, 5, replace=T, prob=1:100 )
층화추출
층화추출을 하기위해서는 다음과 같이 패키지설치가 필요하다.
install.packages("sampling")
library(sampling)
그리고 샘플데이터인 iris 를 로드할수 있다.
data("iris")
비복원 층화추출은
x<-strata(c("Species"),size=c(2,2,2),method="srswor",data=iris)
복원 층화추출은
x<-strata(c("Species"),size=c(2,2,2),method="srswr",data=iris)
결과값은 다음과 같이 나타난다.
Sepal.Length Sepal.Width Petal.Length Petal.Width 8 5.0 3.4 1.5 0.2 32 5.4 3.4 1.5 0.4 67 5.6 3.0 4.5 1.5 85 5.4 3.0 4.5 1.5 113 6.8 3.0 5.5 2.1 118 7.7 3.8 6.7 2.2 Species ID_unit Prob Stratum 8 setosa 8 0.04 1 32 setosa 32 0.04 1 67 versicolor 67 0.04 2 85 versicolor 85 0.04 2 113 virginica 113 0.04 3 118 virginica 118 0.04 3
계통 샘플 추출
install.packages("doBy")
library(doBy)
x<-data.frame(x=1:100)
sampleBy(~1, frac=.3, data = x, systematic = T)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] 1 1 4 7 11 14 17 21 24 27 31 34 [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] 1 37 41 44 47 51 54 57 61 64 67 [,22] [,23] [,24] [,25] [,26] [,27] [,28] [,29] [,30] 1 71 74 77 81 84 87 91 94 97
난수발생
rnorm(5, mean=10, sd=25)
[1] 92 67 46 40 19
확률계산
pnorm(0,mean=0,sd=1)
[1] 0.5
표준정규분포
qnorm(0.9, mean=0, sd=1)
[1] 1.281552
표준정규분포 그리기
plot(density(rnorm(1000,0.1)))
* 참고 - 귀무가설, 대립가설, 유의수준, 검정력, 기각역, 유의확률
t.test(x) 로 검정할수 있는데, 다음과 같은 테스트가 가능하다.
One Sample t-test data: x t = -0.5215, df = 999, p-value = 0.6021 alternative hypothesis: true mean is not equal to 0 95 percent confidence interval: -0.07757682 0.04500120 sample estimates: mean of x -0.01628781
즉, 대립가설은 평균이 0이 아니다라고 하는데, 귀무가설은 평균은 0이다. 들어간 데이터셋은 평균 0에 수렴하는 정규분포를 따르는 1000개의 데이터인데, 모평균의 평균은 -0.016이며, 95퍼센트의 신뢰도를 가지는 구간은 -0.07 ~ 0.04이다. p-value는 0.05보다 훨 큰 값이므로, 귀무가설을 기각할수 없다.
독립 2표본 평균검정
> t.test(extra~group, data=sleep, paired=F, var.equal=T)
Two Sample t-test
data: extra by group
t = -1.8608, df = 18, p-value = 0.07919
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.363874 0.203874
sample estimates:
mean in group 1 mean in group 2
귀무가설 기각불가
대응 표본 평균검정
> t.test(extra~group, data=sleep, paired=T, var.equal=T)
Paired t-test
data: extra by group
t = -4.0621, df = 9, p-value = 0.002833
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-2.4598858 -0.7001142
sample estimates:
mean of the differences
-1.58
귀무가설 기각
이표본분산
분산이 같지 않다는 대립가설
> var.test(iris$Sepal.Width, iris$Sepal.Length) F test to compare two variances data: iris$Sepal.Width and iris$Sepal.Length F = 0.27706, num df = 149, denom df = 149, p-value = 3.595e-14 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.2007129 0.3824528 sample estimates: ratio of variances 0.2770617
귀무가설 기각 - 분산이 같지 않음.
일표본비율
100번중 45번이 나왔으면 과연 50%확률일까?
> prop.test(45,100) 1-sample proportions test with continuity correction data: 45 out of 100, null probability 0.5 X-squared = 0.81, df = 1, p-value = 0.3681 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.3514281 0.5524574 sample estimates: p 0.45
p-value 0.05이상, 귀무가설 채택, 50%라고 할수있다.
이표본비율
44/100 55/90 이 같은확률인가?
> prop.test(c(44,55),c(100,90)) 2-sample test for equality of proportions with continuity correction data: c(44, 55) out of c(100, 90) X-squared = 4.8929, df = 1, p-value = 0.02697 alternative hypothesis: two.sided 95 percent confidence interval: -0.32169925 -0.02052297 sample estimates: prop 1 prop 2 0.4400000 0.6111111
귀무가설 기각
상관계수 검정
두 벡터간의 상관관계 측정
> cor.test(c(1,2,3,4,5),c(1,4,2,5,1),method="pearson") Pearson's product-moment correlation data: c(1, 2, 3, 4, 5) and c(1, 4, 2, 5, 1) t = 0.15133, df = 3, p-value = 0.8893 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: -0.8613737 0.9001792 sample estimates: cor 0.08703883
귀무가설 채택.
독립성 검정
chisq.test()
정규분포 값 여부 검정
벡터가 정규분포를 이루는지에 대한 테스트
> shapiro.test(rnorm(1000)) Shapiro-Wilk normality test data: rnorm(1000) W = 0.99836, p-value = 0.4652
귀무가설 채택
정규분포여부 검정
> ks.test(rnorm(100), runif(100)) Two-sample Kolmogorov-Smirnov test data: rnorm(100) and runif(100) D = 0.42, p-value = 4.366e-08 alternative hypothesis: two-sided
'데이터분석 > 기초통계' 카테고리의 다른 글
[용어정리] 베이지안 정리 공식 (0) | 2015.12.03 |
---|---|
R 기본 통계 명령어 (0) | 2015.11.17 |
[개념] 가우시안 분포 (Gaussian Distribution) (0) | 2015.10.18 |
[개념] 왜도, 첨도 (0) | 2015.10.17 |
[개념] 고유값(eigenvalue)과 고유벡터(eigenvector) (0) | 2015.10.01 |