일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 3과목
- ADSP
- 오블완
- 옻
- 방학
- 신청
- 머신러닝
- 절사평균
- 평균
- 독학
- 데이터독학
- 데이터분석프로젝트
- 분위수
- 기하분포
- 베르누이
- 3ㅣ
- r #데이터분석 #adsp #자격증 #대외활동 #여름방학 #취업준비
- 인스타툰 #지식 #클래스101 #전자책 #인스타그램 #인스타 #만화 #웹툰 #아이패드드로잉
- 대학생
- dsa프로젝트
- WISET
- 파이썬
- R
- 기술통계
- 연속확률분포
- 정기시험
- 데이터분석
- 티스토리챌린지
- 자격증
- 이항분포
- Today
- Total
mmings_pring_day
[통계 데이터 분석] 가설검정과 확률분포 ⭕ 본문
[반도체 수율의 중요성]
- 반도체 수율 관리 (안정성): 기존 공정 하에서 70%_혹은 70% 이상의 희구성 (가능성) -> 3 %
( * 귀무가설: 기존 반도체 수율의 평균이 50% 부근 *)
- 70 이상의 빈도에 대한 평가= '우리 공장은 3% 밖에 안 되는데?' (연구원의 주장 받아들임) , '우리 공장도 3%나 되는데~' (받아들이지 않음)
- 70% : 검정 통계량 (test 하고자 하는 수치)
- 유의확률 (p-value): 검정 통계량이 발생할 확률
- 유의수준- 판단기준 [5%] : 70% 발생율 3% 가 희귀하다고 생각하여 연구원의 새로운 주장을 받아들임
( *판단기준 [5%] vs 판단기준 [1%] : 판단기준 [1%]가 엄격함 -> 주제에 따라서 다름 (수질 오염 검사 결과 시) *)
- 통계적으로 유의미하다
1. 가설과 가설검정
- 모집단에 대한 새로운 주장을 대립가설 (alternative hypothesis)이라고 하고, 기존의 주장을 귀무가설 (null hypothesis)라고 함
- 통계적 검정 (statistical test) 또는 가설검정 (hypothesis test)이란 표본 데이터를 기반으로 모집단에 대한 새로운 주장의 옳고 그름을 추론하는 과정을 말함
- 귀무가설 (기존과 다를 바 없다- 알려진 주장) -> 흔하게 나타남!
- 대립가설 (기존과 다르다) -> 드물게 나타남!
(예: 벤처기업을 경영하는 30대 및 40대 경영자의 평균 혈압이 같은 연령대의 일반 사람들과 비교해서 상대적으로 높은지 혹은 낮은지를 알고 싶다고 할 때,
-> 새로운 주장 (대립가설) = 벤처기업 경영자의 혈압은 일반 사람과 다르다
-> 기존 주장 (귀무가설) = 벤처기업 경영자의 혈압은 일반 사람과 별반 다르지 않다
- 통계적 검정/ 가설검정
- 일반적으로 새로운 주장은 분명하게 입증되지 않으면, '받아들여지기'가 쉽지 않음
-> 대립가설을 새로운 사실로 받아들이기 위해서는 , '기존의 주장이 명백하게 잘못되었음'을 입증해야 함 -> 입증과정 (가설검정)
- 가설검정 귀무가설이 현 상황을 제대로 설명하고 있다는 가정 하에서 시작함
-> 표본으로부터 얻은 통계량 (예를 들면 표본으로부터 계산된 평균값)이 귀무가설이 옳다는 전제 하에서는 좀처럼 나타나기 어려운 극단적이고 예외적인 값이 나올 경우에는 '계속해서 귀무가설이 옳다고 주장할 수 는 없음'
-> 귀무가설을 기각하고 대립가설을 채택하게 됨
(예: '벤처기업 경영자의 혈압은 일반 사람과 다르다' 는 새로운 주장, 즉 대립가설의 주장을 검정하기 위해서 무작위로 선정한 30명의 벤처기업 경영자의 혈압을 측정해서 평균을 계산함)
-> 그렇게 계산된 평균 혈압이 135라고 했을 때, 이 135 라는 혈압이 기존에 일반 사람들의 혈압 분포 하에서 얼마나 흔하게 나타나는지, 혹은 드물게 나타나는지를 평가하게 됨
-> 그래서 벤처기업 경영자의 평균 혈압 135 라는 것이 '일반 사람들의 혈압분포 하에서 굉장히 흔하게 발생하는 것'이라고 한다면
'그런 정도의 혈압'은 일반 사람들한테서도 충분히 나타날 수가 있기 때문에
: '벤처기업 경영자의 혈압이 일반 사람들하고 다르다'고 할 만한 충분한 증거를 갖고 있지 못하는 것이 됨
-> 135 라는 '벤처기업 경영자의 표본 혈압'이 일반 사람들의 혈압분포에서는 좀처럼 나타나지 않는 굉장히 드문 경우일 때,
: '벤처기업 경영자의 혈압이 일반 사람들하고는 다르다'라고 판단을 내릴 수 있음
1-1. 가설검정 절차
- 표본으로부터 검정하고자 하는 검정통계량 (test statistic) 계산
(* 검정통계량= 표본평균일 수도 있고, 좀 더 복잡한 방식으로 계산된 값일 수도 *)
( 통계량의 분포를 알아야 함: t 검정 - t 분포, F 검정- F 분포 등)
- 검정 통계량과 그 확률분포로부터 p-값 (p-value) 계산 (통계량의 분포를 알아야 함)
- 귀무가설이 사실이라는 가정 하 (일반 사람들의 혈압분포) 에서 관측한 통계량과 같거나 그보다 더 극단적인 값이 발생할 확률을 의미 (벤처기업 사업가의 표본으로부터 계산된 혈압의 평균이 135 또는 그 이상이 발생할 확률)
- 유의확률 (significance probability)이라고도 함
- p- 값이 매우 작으면 귀무가설 기각
- 판단의 기준으로 사용하는 5% (0.05) 또는 1%의 확률을 유의수준(significance level)이라고 함
- 표본으로부터 관측된 결과 (즉, 계산된 통계량)가 나타날 가능성이 5% 미만 또는 1% 미만이 되어(강력한 증거) 귀무가설을 기각하면 이를 통계적으로 유의하다 (statistically significant)라고 표현함
( * p-값이 매우 작다는 것 = 귀무가설이 사실일 경우
가설검정과 검정력, 검정력이 클수록 잘못된 귀무가설을 기각할 가능성이 커진다.
- 귀무가설이 진심임에도 -> 귀무가설 기각 (대립가설 채택)
-> 실수에 대한 확률: 1종 오류 (a) = 유의수준
-> 나의 판단기준 (5%) = 내가 실수할 확률 5%
-> 판단기준을 낮춘다 = 왠만하면 새로운 대립가설은 채택하지 않겠다.
통제할 수 있는 오류= 1종 오류 (유의수준을 조절하여)
-> 사실 귀무가설의 주장이 옳은 것임에도 불구하고, 선정한 표본이 우연히도 예외적인 것이어서 귀무가설을 기각하는 판단의 오류를 범할 수 있음 => 판단의 오류 (1종 오류)
(사실은 벤처기업의 사업가들의 혈압과 일반 사람들의 혈압이 같음에도 불구하고 우리가 추측한 표본에서 계산한 벤처기업 사업가 혈압의 표본평균이 우연히도 굉장히 큰 값이 나오는 바람에, 일반 사람들의 혈압분포에서는 그렇게 큰 값을 관측한 가능성이 5% 미만이기 때문에 귀무가설을 기각하고 대립가설을 채택하는 즉, '벤처기업 사업가의 혈압과 일반 사람들의 혈압이 다르다'는 결론을 내림 -> 오류 발생 )
- 귀무가설 채택 (대립가설 거절) + 하지만, 귀무가설이 '거짓'
-> 2종오류
사실 벤처 기업 사업가의 혈압과 일반 사람들의 혈압이 다름에도 불구하고, 우리가 확인한 표본의 값이 유의수준을 넘지 못해, '귀무가설을 기각하지 않음'
- 귀무가설이 틀릴 때 잘못된 귀무가설을 기각할 수 있는 확률= 검정력 (1-B)
(검정력이 클수록, 잘못된 귀무가설을 기각할 가능성이 커지게 됨) => 가설검정을 통해 검정력을 키워야 함!
- 검정력 증가: 유의수준/ 표본 크기 증가
(하지만, 유의수준을 크게하는 것은 -> 가설검정 결과에 대한 신뢰도를 저하할 수 있고, 표본크기 또한 비용상의 문제로 무한정 크게 할 수 없음
-> 연구모델을 검증할 때, 연구자는 이러한 트레이드오프 (trade-off) 관계를 고려해서 일반적으로 유의수준과 표본크기를 적정 수준으로 유지하면서 동시에 가설검정의 검정력은 가능한 최대화하는 것을 목표로 함
- 검정 통계량 계산 / 검정통계량에 대한 '확률분포' 를 통해서 -> 드문지, 희귀한지 계산
-> R 의 함수는 '일정한 규칙' 이 존재함! (함수의 특성을 나타내는 영문 글자 하나와 확률분포를 나타내는 고유의 이름으로 구성됨)
(ex- 정규분포를 나타내는 고유의 이름: norm/ norm 이란 이름이 정규분포와 관련된 함수에 공통적으로 사용됨)
+ 함수의 특성을 나타내는 d, p, q, 를 앞에 붙임으로써 함수의 이름이 완성됨!!
[ 정규분포 관련 함수를 살펴보면, ]
- dnorm( ) : 정규분포 확률밀도함수
- pnorm( ): 정규분포 확률분포함수
- qnorm( ): 정규분포 백분위수함수
- rnorm( ): 정규분포 난수생성함수
[ t 분포 관련 함수를 살펴보면: t 라는 이름이 t 분포 관련 함수를 대표하는 표기 ]
- dt( ): t 분포의 확률밀도함수
- pt( ): t 분포의 확률분포함수
- qt( ): t 분포의 백분위수함수
- rt( ): t 분포의 난수생성함수
2. 이항분포 (binomial distribution)
- 대표적인 이산확률분포 로서 매회 어떤 사건이 일어날 확률이 동일한 독립 시행의 경우에 있어서 이 사건이 일어나는 횟수가 만들어 내는 분포
( 예로, 동전을 일정 횟수 반복하여 던지는 실험에서 매 시행시마다 숫자면이 나타날 확률이 0.5 라고 할 때, 숫자면이 나타나는 횟수는 이항분포를 따름/ 동전을 던지는 행위를 10번 반복한다고 했을 때, 숫자면은 0~ 10회까지 나타날 수 있음)
- 확률변수 = 0~10 까지의 숫자면 출현 횟수
- 확률분포= 각 확률변수값이 발생할 확률의 분포
- 이항분포의 확률밀도함수 를 통해 '동전을 던지는 실험을 열 번 반복했을 때, 숫자면이 일곱 번 나타날 확률을 구할 수 있음'
(이항분포의 확률밀도함수: dbinom( ) 함수)
[이항분포의 확률밀도함수]
# dbinom 의 첫번째 인수: 사건이 발생할 횟수를 지정
# -> (숫자면이 일곱 번 나타날 확률을 구할 것이기에, 사건이 발생할 확률: 7)
# dbinom 의 두번째 인수 (size 인수): 시행 횟수 지정
# -> (동전을 던지는 행위를 열번 반복, 시행 횟수: 10)
# dbinom 의 세번째 인수 (prob 인수) : 각 시행에서 해당 사건이 발생할 확률 지정
# -> (숫자면이 나타날 확률이기에, 사건 발생 확률: 0.5)
dbinom(7, size=10, prob=0.5) #이항분포(성공, 실패)
# 주사위 10번 던졌을 때, 7 확률
- 특정 횟수까지의 누적확률: 이항분포의 확률분포 함수 -> pbinom( )함수 이용
: 동전을 던지는 실험을 열번 반복했을 때, 숫자면이 일곱 번 이하가 나타날 확률
[이항분포의 확률분포함수]
# pbinom 의 첫번째 인수: 누적 횟수 지정
# pbinom 의 두번째 인수 (size 인수): 시행 횟수 지정
# pbinom 의 세번째 인수 (prob 인수) : 각 시행에서 해당 사건이 발생할 확률 지정
pbinom(7, size=10, prob=0.5) #누적확률분포
# 일곱 번이 나타나거나, 여섯 번이 나타나거나, 다섯 번이 나타나거나, 네 번, 세 번, 두 번, 한 번, 0 번 시의 합
sum(dbinom(0:7, size=10, prob=0.5))
# dbinom(0: 7) = '0:7' 숫자 벡터를 지정하면 여덟 개의 확률 계산
# = 숫자면이 0회 나타날 확률부터 7회 나타날 확률까지 계산= 7회 이하가 나타날 확률은 모든 확률의 합
- pbinom(7, size= 10, prob= 0.5) 의 값과 sum(dbinom(0:7, size= 10, prob= 0.5)) 의 값이 동일함
- 누적확률의 반대편 영역의 확률을 구하기 위해선 (특정 관측값을 기준으로 윗부분의 확률을 구하려면),
lower.tail 인수에 FALSE 를 지정함
[숫자면이 여덟 번 이상 나타날 확률을 의미함]
pbinom(7, size=10, prob=0.5, lower.tail=FALSE) #반대 확률 구하기
[ 두 관측값 간의 확률을 구하려면, 각각에 대한 누적확률을 구한 다음에 그 차이를 계산하면 됨 ]
(예- 숫자면이 네 번 이상 일곱 번 이하 발생할 확률은, 일곱 번 이하 발생할 확률에서 세 번 이하 발생할 확률을 뺴서 구할 수 있음)
pbinom(7, size= 10, prob= 0.5) - pbinom(3, size= 10, prob= 0.5)
# 네 번 이상 일곱 번 이하 발생할 확률 계산
- R의 벡터 연산 기능을 이용하면, 두 관측값 간의 누적확률을 한꺼번에 구할 수 있음
pbinom(c(3,7), size= 10, prob= 0.5)
#세번 이하 발생할 확률과 일곱 번 이하 발생할 확률을 동시에 구할 수 있음
네 번 이상 일곱 번 이하 발생할 확률은 이 두 개의 차이
-> diff(pbinom(c(3,7), size= 10, prob= 0.5)
- 'diff(pbinom(c(3,7), size= 10, prob= 0.5)' = 'pbinom(7, size= 10, prob= 0.5)' => 네 번 이상 일곱 번 이하 발생할 확률을 구함
[이항분포로부터 난수를 생성하기 위해서는 'rbinom( ) 함수 사용' ]
# 난수를 생성하기 전에 set.seed( ) 함수를 이용해서 seed 번호를 지정
set.seed(1)
# -> seed 번호를 지정하게 되면 비록 난수이긴 하지만, 동일한 실행 결고가 나올 수 있도록 실행 결과를 재현해 줌
# rbinom 의 첫번째 인수: 생성할 난수의 개수 지정
# rbinom 의 두번째 인수 (size 인수): 시행 횟수 지정
# rbinom 의 세번째 인수 (prob 인수) : 각 시행에서 해당 사건이 발생할 확률 지정
rbinom(1, size=10, prob=0.5)
# -> 1을 지정하면 난수 한 개 생성
rbinom(5, size=10, prob=0.5)
# 5를 지정하게 되면: 동전을 던지는 실험을 10번 반복했을 때, 나타나게 될 숫자면의 개수 5개를 무작위 생성
3. 정규분포 (normal distribution)
- 대표적인 연속확률분포로서 통계적 검정을 위해 가장 널리 활용되는 분포
(정규분포가 가지고 있는 유용한 특성 중 하나는 '평균과 표준편차'를 알고 있으면, 관측값이 일정 구간 내에 포함될 확률을 구할 수 있다는 점!
-> 정규분포에서는 '평균을 중심으로 한 개의 표준편차 이내에 전체 관측값의 약 68.26% 가 존재함.
-> 두 개의 표준편차 이내에는 약 95.44% 가 존재함
-> 세 개의 표준편차 이내에는 약 99.74% 의 관측값이 존재함
(예- IQ 테스트 점수가 평균이 100, 표준편차가 10인 정규분포를 한다고 가정
- 전체 모집단에서 IQ 테스트 점수가 90점에서 110 점 사이에 속하는 사람은 약 68% 존재
(90점 = 평균에서 아래로 하나의
- IQ 테스트 점수가 80 점에서 120 점 사이에 속하는 사람은 약 95.44% 존재
- IQ 테스트 점수가 70 점에서 130 점 사이에 속하는 사람은 약 99% 이상의 대부분의 사람이 존재
* 평균과 표준편차가 다르기 때문에 모든 정규분포가 동일한 분포 형태를 가질 순 없지만, 어느 정규분포든 평균을 중심으로 일정 범위 내의 비율은 동일하다는 특성을 가짐.
표준정규분포 = 평균과 표준편차가 다른 다양한 형태의 정규분포를 비교 가능한 통일된 하나의 분포로 변환시킨 것
- 표준정규분포는 '표준점수로 이루어진 분포를 말하며 평균은 0이고 표준편차는 1임.'
-> 표준정규분포는 표준점수 (Z 값_ Z score 로 이루어짐) = Z 분포
-> 표준점수는 관측값과 평균의 차이를 표준편차로 나눠서 구할 수 있음 (예- IQ 100은 표준점수 0으로 환산/ IQ 110 은 표준점수 1로 환산/ IQ 70은 표준점수 -3 으로 환산 가능)
-> '표준점수 = 0' ) 원래의 관측값과 평균이 동일하다는 의미를 가짐
-> '표준점수= 1' ) 관측값이 평균으로부터 하나의 표준편차만큼 위에 있다는 의미를 가짐
-> '표준점수= 2' & '표준점수= 3' ) 관측값이 평균으로부터 두 개의 표준판차만큼 위에 있다는 것과 세 개의 표준편차만큼 아래에 있다는 것을 나타냄
- 정규분포의 특성에 따라서,
-> 표준점수 -1 과 1 사이에는 전체 관측값의 68% 가 존재하고,
-> 표준점수 -2 와 2 사이에는 전체 관측값의 95% 가 존재하고,
-> 표준점수 -3 과 3 사이에는 전체 관측값의 99% 이상이 존재함
- 정규분포에서는 대부분의 관측값이 중앙에 몰려 있으며 중앙에서 멀어질수록 그 빈도수가 점점 작아지는 종 모양의 대칭인 모습을 가짐 (대칭인 모습: 평균인 0을 중심으로 오른쪽에 전체 관측값의 절반이 존재하고, 왼쪽에 나머지 절반이 존재함)
-> 0과 -1 사이에는 약 34% 관측값이 존재함
-> -1 과 1사이에 68% 관측값이 존재함 (0과 -1 사이의 크기가 그 절반이기 떄문에)
-> -1 보다 작은 값의 영역에는 약 16% 의 관측값이 존재함 (0보다 작은 영역에 50% 관측값이 존재하고, 0과 -1 사이가 34% 이기에) = 1보다 큰 영역의 크기 (16%) [[대칭]]
- 정규분포는 연속확률분포이기 때문에 '하나의 관측값에 대한 확률은 계산할 수 없고, 연속적인 구간에 대한 확률'만이 의미 있음
-> 특정 관측값 이하일 확률을 계산하기 위해선, 정규분포의 확률분포함수인 pnorm( ) 함수 이용함
3-1. pnorm( ) 함수 = 정규분포의 확률분포함수
# [정규분포: pnorm/ 평균이 100일 때 110 이하일 확률]
# pnorm 의 첫번째 인수: 누적확률을 계산하고자 하는 관측값을 지정
# pnorm 의 두번째 인수 (mean 인수): 정규분포의 평균
# pnorm 의 세번째 인수 (sd 인수) : 정규분포의 표준편차
pnorm(110, mean=100, sd=15)
# -> 성인의 IQ가 평균 100이고, 표준편차가 10인 정규분포를 따른다고 했을 때/ IQ가 110이하일 확률
# pnorm() 함수는 IQ가 110 이하일 누적확률을 산출해 줌
# IQ 가 110을 초과할 확률을 구하려면,
pnorm(110, mean=100, sd=15, lower.tail=FALSE) #반대(110 보다 클 확률= 110 이하일 누적확률의 반대편)
# *벤처기업 사업가가 일반 사람보다 아이큐가 높다
# 벤처기업 사업가의 평균 아이유: 110
# 110 보다 이상일 확률 (110의 희귀성): 25% -> '흔하지 않은데?' [판단기준: 5%]
- 인수로 평균과 표준편차를 지정하지 않으면, 평균이 0/ 표준편차가 1인 표준정규분포를 가정함
-> pnorm( ) 함수에 mean 인수와 sd 인수를 생략하고, '관측값에 대응되는 값'만을 지정하게 되면 표준정규분포를 가정한 상테에서 누적확률을 계산해 줌
-> 표준정규분포에서는 0이하일 확률이 0.5 이기 때문에 그 값을 산출함.
pnorm(0)
- mean 인수와 sd 인수의 표준정규분포의 평균과 표준편차를 0, 1로 명식적으로 지정한 것과 동일한 결과를 가져옴
pnorm(0, mean= 0, sd= 1)
- 두 개의 관측값 간의 구간의 확률을 계산하기 위해서는, 각 관측값까지의 누적확률을 계산한 다음 '두 확률의 차이'로서 산출
(예- IQ 가 90보다 크고, 110 보다 작거나 같은 확률은
1) 110까지의 누적확률 계산 -> 2) 90까지 누적확률 계산 -> 3) 그 차이를 산출 )
pnorm(110, mean=100, sd=10) - pnorm(90, mean=100, sd=10)
- 또는 pnorm( )함수에 110과 90을 벡터로 지정하고, 두 개의 누적확률을 계산한 다음, diff( )함수를 이용해서 차이를 산출
diff(pnorm(c(90, 110), mean=100, sd=10))
3-2. qnorm( ) 함 수 이용
[ 누적확률이 주어지고 이 확률에 대응되는 관측값을 알고 싶을 땐: qnorm( ) 함수 이용 ] <-> pnorm( ) = 관측값 -> 누적확률
(정규분포에 대한 백분위수를 계산하는 것과 동일)
# qnorm 의 첫번째 인수: 확률 지정 -> 확률에 대응되는 백분위수를 출력해 줌
# qnorm 의 두번째 인수 (mean 인수): 정규분포의 평균
# qnorm 의 세번째 인수 (sd 인수) : 정규분포의 표준편차]
# 평균 100, 표준쳔차가 10인 정규분포에서 누적확률 5% 이하에 대응되는 관측값은
qnorm(0.05, mean= 100, sd= 10)
-> IQ 가 83.5 이하인 사람이 전체의 5% 정도 차지하고 있음을 의미함
qnorm(0.95, mean=100, sd=10)
-> 전체 95% 는 IQ 가 116.4 이하라는 것을 의미함 (상위 5%인 사람은 IQ 가 116.5 이상이라는 뜻)
- 확률을 벡터로 지정하면, 동시에 여러 백분위수를 구할 수 있음
-> 5% 와 95% 에 대응되는 백분위수는 한꺼번에 벡터로 지정함으로써 구할 수 있음
qnorm(c(0.05, 0.95), mean=100, sd=10)
- qnorm( ) 함수는 '신뢰구간을 계산할 때 이용 가능'
(예- 평균 0, 표준편차가 1인 표준정규분포에서 표준점수의 95% 신뢰구간 계산 = 2.5% 와 97.5% 의 누적확률에 대응되는 백분위수를 구함)
qnorm(0.025)
qnorm(0.975)
=> - 1.96 부터 1.96 까지가 95% 신뢰구간임을 알 수 있음
- 벡터로 한꺼번에 지정하게 되면 '구간'을 한꺼번에 계산 가능
qnorm(c(0.025, 0.975))
3-3. rnorm( )함수 이용
- 정규분포로부터 난수를 생성하기 위해서는 rnorm( ) 함수 이용
# rnorm 의 첫번째 인수: 확률 지정 -> 생성할 난수의 개수 지정
# rnorm 의 두번째 인수 (mean 인수): 정규분포의 평균
# rnorm 의 세번째 인수 (sd 인수) : 정규분포의 표준편차]
# [평균 100, 표준쳔차가 10인 정규분포에서 난수를 한 개 생성하기 위해서는]
# 난수를 생성하기 전에 set.seed( ) 함수를 이용해서 seed 번호를 지정
set.seed(1)
# -> seed 번호를 지정하게 되면 비록 난수이긴 하지만, 동일한 실행 결과가 나올 수 있도록 실행 결과를 재현
rnorm(1, mean= 100, sd= 10)
- 5 개의 난수 생성
rnorm(5, mean= 100, sd= 10)
- 평균과 표준편차를 지정하지 않으면, '표준정규분포를 가정함'
# 평균이 0이고 표준편차가 1인 표준정규로부터 난수 추출
rnorm(1)
rnorm(5)
- rnorm( ) 함수의 평균과 표준편차 인수는 벡터로 지정 가능
rnorm(3, mean=c(-10, 0, 10), sd=1)
# -> 평균이 -10, 0, 10 이고, 표준편차가 모두 1인 세 개의 정규분포로부터 각각 한 개씩 총 세개의 난수 생성
rnorm(6, mean=c(-10, 0, 10), sd=1)
# -> [R의 재사용규칙]
# 평균이 -10, 0, 10 이고, 표준편차가 모두 1인 세 개의 정규분포로부터 세 개의 난수 생성하고 -> 다시 또 세 개를 생성해서 모두 여섯 개의 난수 생성
- 확률분포 가운데 정규분포는 통계적 검정에 있어서 특히 중요한 분포임
( 대부분의 통계적 검정은 표본 데이터가 정규분포를 따른다는 가정을 전제로 하기 때문에 )
-> 가설검정을 위한 검정 방법을 선택하기 전에, 우선 데이터의 분포가 종 모양의 정규분포를 갖는지를 확인하는 작업이 필요함
4. 데이터의 정규성 테스트 : shapiro.test( ) 함수 이용
- shapiro.test( ) 함수에 검정할 표본 데이터셋을 지정
# 난수를 생성하기 전에 set.seed( ) 함수를 이용해서 seed 번호를 지정 -> 동일한 결과가 나오도록
set.seed(123
# 1. 정규분포부터 추출한 100개의 표본 데이터 지정
shapiro.test(rnorm(100, mean= 100, sd= 10))
# 2. 정규분포와는 전혀 모양이 다른 '일양분포'로부터 추출한 100개의 표본 데이터를 지정
shapiro.test(runit(100, min= 2, max= 4))
- 일양분포 데이터셋을 생성하기 위해서는 '최솟값'과 '최댓값'을 인수로 지정함
- shapiro.test( ) 함수가 수행하는 샤피로 윌크 검정은 '표본 데이터가 정규성을 만족한다는 귀무가설을 검정'
-> 유의수준 0.05 를 적용할 때 p 값이 0.05 보다 커야만 귀무가설 그대로 유지 => 표본 데이터가 정규성을 충족한다고 결론 내림
-> 반대로 p 값이 0.05 보다 작으면 귀무가설을 기각하게 돼서 '표본데이터가 정규성을 충족한다는 주장을 유지하지 못하게 됨'
1) 정규분포로부터 추출한 표본에 대한 샤피로 윌크 검정을 보게 되면, p 값은 0.05 보다 훨씬 큼
=> 귀무가설은 유지되고 이 데이터의 정규성은 예상대로 충족한 것으로 판단
2) 일양분포로부터 추출한 표본의 경우- p값이 0.05 에 훨씬 못 미침
=> 귀무가설은 기각되어 역시 기대대로 정규성 요건을 충족하지 못한다고 결론을 내릴 수 있음
4-1. 데이터의 정규성 확인 (시각화) : 정규 Q-Q 도표을 통해서 (normal quantile plot)
(1) 정규 Q-Q 도표는 qqnorm( ) 함수를 이용해서 생성할 수 있음
-> qqnorm()함수에 표본 데이터를 인수로 제공하게 되면, R은 표준정규분포로부터 인수로 지어진 표본 데이터 크기만큼의 이론적 표본을 추가로 생성함
-> 두 표본의 데이터를 크기 순으로 정렬하고, 정렬된 각 쌍의 데이터를 산점도 형식으로 그리게 되면 정규 Q-Q 도표 완성
(정규분포로부터 추출한 100개의 표본 데이터를 이용해서 정규 Q-Q 도표 생성)
set.seed(123)
# qqnorm()함수에 표본 데이터를 인수로 제공하게 되면, R은 표준정규분포로부터 인수로 지어진 표본 데이터 크기만큼의 이론적 표본을 추가로 생성함
qqnorm(rnorm(100, mean=100, sd=15), col="blue",
main="Sample from Normal Distribution")
- 정규 Q-Q 도표의 x 축은 이론적 정규분포로부터 생성된 표본이고, y 축은 실제 표본
(x 축의 값은 '정규분포로부터 생성된 값이기 때문에, Q-Q 도표상에 점들이 대각선을 따라서 직선상에 분포하게 되면 인수로 주어진 표본 데이터는 정규분포를 따른다고 볼 수 있음)
- 정규 Q-Q 도표상에 qqline( ) 함수를 이용해서 첫번째 4분위수와 세번째 4분위수를 통과하는 직선을 그리게 되면, 정규성 충족 정도를 시각적으로 좀 더 쉽게 확인해 볼 수 있음
qqline(rnorm(100, mean=100, sd=10))
- 점들이 비교적 직선에 가까이 위치하고 있는 것을 볼 수 있음 (오른쪽)
-> 점들이 직선에 가까이 위치할수록 데이터 표본은 정규분포에 근접하게 됨
-> 정규분포로부터 생성한 Q-Q 도표 상 점들은, '직선 근처에 분포함'
(2) 일양분포로부터 추출한 표본 데이터를 이용해서 정규 Q-Q 도표 그리기
qqnorm(runif(100, min=2, max=4), col="red",
main="Sample from Uniform Distribution")
qqline(runif(100, min=2, max=4))
- 정규분포로부터 추출한 표본 데이터에서 대해서 생성한 정규 Q-Q 도표에 비해서 '점들이 직선으로부터 많이 벗어나 있는 것을 볼 수 있음'
=> 정규분포로부터 추출한 표본 데이터가 정규성의 조건을 조금 더 잘 충족하고 있다는 것을 의미함
자료출처:
https://github.com/kykwahk/Statistics-R/blob/master/Statistics-R_02.R
Statistics-R/Statistics-R_02.R at master · kykwahk/Statistics-R
『R을 이용한 통계데이터분석(제2판)』(곽기영, 도서출판 청람). Contribute to kykwahk/Statistics-R development by creating an account on GitHub.
github.com
https://www.youtube.com/watch?v=usFOvwgy8kg&t=403s
'통계' 카테고리의 다른 글
[통계 데이터 분석] 분산분석 (분산분석 설계) (0) | 2024.10.11 |
---|---|
[통계 데이터 분석] 평균검정 (t 검정) (0) | 2024.10.06 |
[통계 데이터분석] 데이터 요약- 연속형 변수 ⭕ (0) | 2024.09.29 |
[통계 데이터분석] 신뢰도 분석 (0) | 2024.09.23 |
[통계 데이터분석] 데이터 요약- 범주형 변수 (기술통계 관점) ⭕ (0) | 2024.09.22 |