기본 콘텐츠로 건너뛰기

3. 연속형확률분포(정규분포, T분포)

연속형 확률분포

연속형 확률분포는 이산형과는 다르게 상황이 분포를 결정짓지 못합니다. 데이터들의 형태를 보고 추측하는 정도가 전부입니다. 통계에서는 그것을 분포 가정이라고 표현하며 실질적으로 저희가 분석하는 대부분의 것들은 이 분포 가정을 통해 이루어집니다.

  1. 정규분포(Normal Distribution)

정규분포는 주어진 데이터의 형태가 산봉우리일 때 가정되는 분포입니다. 흔히 '종모양'에 비유하기도 합니다. 종모양이라함은 중심에 많은 데이터들이 모여있고 중심에서 멀어질수록 적은 데이터를 포함합니다. 또한 중심을 기준으로 좌우가 대칭적인 형태를 가지고 있습니다. 이는 곧 데이터의 중심과 산술적인 평균이 동일함을 의미합니다. 과거의 학자들은 많은 분야의 연속형 데이터들이 이런 형태를 띈다는 것을 발견하였고 그에 착안하여 정규분포를 고안하였습니다. 위에서 언급했던 것처럼 연속형 자료는 수집 상황이 분포를 결정하는 것이 아니고 데이터의 형태를 보고 그에 알맞는 분포를 선택한다는 것을 생각하면 지극히 상식적인 관점에서 만들어진 분포라고 생각할 수 있습니다.

그렇다면 이 산봉우리 분포는 어떤 식으로 표현될 수 있을까요. 두 가지를 이용합니다.

  • 산봉우리 정상을 나타내는 '데이터의 중심' - 평균
  • 산의 경사를 나타내는 '데이터의 퍼짐 정도' - 분산

평균에 따라 산은 좌우로 이동이 가능하며 분산에 따라 산의 경사가 완만한지 가파른지를 가늠할 수 있습니다. 만약 완만하다고 하면 데이터는 비교적 중심에 덜 모여 있을 것입니다. 이 경우 분산은 높다고 할 수 있습니다. 반대로 경사가 가파르다면 데이터들은 중심에서 밀도가 높고 이 경우 분산은 낮습니다.

이해를 돕기 위해 간단한 그림 하나를 보겠습니다.

위 그림을 보면 두 가지의 정규분포가 있습니다. 데이터의 중심이자 평균은 동일하고 분산은 파란색이 붉은색보다 높습니다. 그래서 산봉우리 형태의 경사가 파란색이 더 완만한 것을 볼 수 있습니다. 정규분포의 형태를 결정해주는 평균과 분산은 각각 로 표현합니다.

정규분포에서는 분산 의 양의 제곱근인 를 표준편차라고 부릅니다. 이 역시 데이터가 얼마나 퍼져있는지에 대한 척도로 볼 수 있습니다. 분산이 있는데도 불구하고 굳이 표준편차가 쓰이는 이유는 단위(스케일)의 문제입니다. 분산이라는 것은 실제 자료의 제곱을 이용해서 만들어집니다. 그렇기에 분산은 실제 자료에서 제곱된 단위(스케일)을 가지고 있고 양의 제곱근을 통해 구해진 는 실제 데이터들과 같은 스케일을 가지고 있습니다.

정규분포의 중요한 특징 중 하나는 정규분포를 따라는 확률변수의 선형조합 역시 정규분포를 따른다는 사실입니다. 예를 들어 평균이 10인 정규확률변수가 가정된 데이터에 모두 -10씩 해주면 그들 역시 정규분포를 따르고 평균은 0이 될 것 입니다. 같은 식으로 분산이 100인 정규확률변수가 가정된 데이터에 모두 10씩 나누어 주면 그들 역시 정규분포를 따르고 분산은 1이 됩니다. 이는 곧 중심과 단위(scale)를 자유자재로 바꾸어 줄 수 있는 유연성을 가졌다는 의미입니다.

이 성질을 이용해 정규분포 데이터의 단위를 맞추어 줄 수 있습니다. 각 데이터에서 평균을 빼고 표준편차를 나누어 주면 어떤 정규확률 변수든 평균이 0, 분산이 1인 동일한 단위를 갖게 됩니다. 이를 정규화한다고 표현하며 정규화된 분포를 표준정규분포(standard normal distribution)라고 합니다.

정규화의 실질적 의미는 각 데이터들의 단위를 제거하여 서로 다른 집단끼리도 비교할 수 있는 것입니다. 대부분의 비교 검정은 다 이런 컨셉을 근간에 두고 진행됩니다.

정규분포가 중요한 이유는 비단 많은 연속형 데이터가 정규분포를 따르기 때문만은 아닙니다. 표본들을 뽑아서 표본들의 평균을 구해보면 그것들이 따르는 분포가 정규분포이기 때문에 더욱 중요합니다. 이를 표본분포(통계량의 확률분포)라고 합니다. 이는 매우 중요한 개념이어서 여기서 집고 넘어가도록 하겠습니다.

모수(parameter)와 통계량(statistic)
  • 모수

    통계적 추론에서 분석자의 최종목표이자 모집단(population)의 특성

  • 통계량

    해당 모집단에서 추출한 표본(sample)을 이용해 만든 것으로 표본들의 함수

때로는 통계적 검정을 위해 특수한 통계량을 사용하기도 하고 모수를 추정하기 위해 통계량을 구해보기도 합니다. 전자의 경우는 검정통계량(test statistic)이라 부르고 후자의 경우는 특별히 추정량(estimator)라고 부릅니다.

간단한 예를 하나 들어 보겠습니다.

우리가 원하는 정보는 대한민국 남성의 평균 키입니다. 우리는 이것을 알아보기 위해서 무작위로 100명의 남성을 뽑아서 그들의 키를 평균 내 보았습니다.

이 경우 모집단은 대한민국 남성이며 표본은 뽑은 100명의 남자입니다. 또한 우리의 최종 목표이자 모집단의 특성인 모수는 대한민국 남성의 평균 키라고 할 수 있겠고 표본들을 통해 구한 표본들의 평균 키는 통계량이자 모수를 추정하는 추정량입니다.

또한 많은 분들이 착각하는 부분이 있는데, 통계량은 꼭 표본평균, 표본분산과 같이 모수를 추정하는 것들만이 아닙니다. 표본들의 함수는 전부 통계량입니다. 다만 표본평균과 표본분산의 경우는 다음 과 같은 함수를 이용한 것으로 아주 특수한 경우일 뿐입니다.

굳이 이런 함수가 아니더라도 표본들을 이용해서 만든 모든 값들은 통계량이라고 할 수 있습니다. 예를 들어 표본들 중 가장 큰 수, 표본 중 홀수 번째 표본만 더한 값 등도 사용할 일은 별로 없을 수 있지만 하나의 통계량입니다.

표본분포(Sample Distribution)

표본분포를 한 마다로 정리하면 통계량의 확률분포입니다. 모집단이 어떤 특정한 분포를 따르고 있을 때 n개의 표본을 추출했다면 그 표본들은 모집단의 확률분포에 기반하여 추출된 것이라고 할 수 있습니다. 이 관점으로 보면 표본들은 확률표본(random sample)이고 통계량은 그 표본들의 함수이므로 당연히 특정한 확률 구조를 갖는 확률변수로 볼 수 있습니다. 이 통계량의 확률 구조를 표본분포라고 합니다.

만약 모집단이 평균이 고 분산이 인 정규분포를 따른다고 합시다. 그리고 거기서 n개의 표본을 뽑았다고 하면 표본평균 는 정규확률샘플들의 선형 결합이고 이는 위에서 언급한 정규분포의 특성으로 인해 정규분포를 따를 것입니다. 구체적으로 보면 다음과 같은 정규분포를 따릅니다.

모집단의 분포가 라면,

 

이것이 라는 통계량의 확률분포, 즉, 표본분포입니다. 말고도 다른 통계량들도 각자 마다의 특정한 확률구조를 가지고 있습니다. 그렇지만 우리는 까지만 알고 가겠습니다.

재밌는 것은 표본 수 n이 어느정도 큰 상황이면 굳이 모집단이 정규분포를 따르지 않다고 하여도 표본평균은 위와 같은 정규분포를 근사적으로 따르게 됩니다. 이를 중심극한정리(Central Limit Theorem, CLT)라고 하며 모든 통계 검정의 근간이 됩니다. 이 중심극한정리 때문에 정규분포는 모든 분포 중에서 가장 중요한 분포로 취급 받습니다. 모집단이 어떤 분포여도, 심지어 우리가 절대 일반화할 수 없는 매우 복잡한 확률구조를 갖고있어도 표본평균의 분포는 정규분포로 통일되기 때문이죠.

이는 다음과 같이 표현할 수 있습니다.

보시는 것과 같이 표본평균의 분포는 횟수가 많아질수록, 정규분포에 근사해지는 것을 알 수 있습니다. 이로써, 모집단의 분포와 상관 없이 평균이 이고 분산이 라면,

이는 표본평균이 '근사적으로 ' 정규분포를 따른다는 것입니다. 이는 n이 커질수록 더욱 정확히 따른다는 뜻을 내포하고 있기도 합니다. 이 부분은 매우 중요한 부분이니 꼭 기억하고 가시기 바랍니다.

 

  1. t-분포(t-distribution, Student's t-distribution)

t분포를 이해하려면 우선 t분포라는 분포가 왜 고안되었는지에 대해 알아야 합니다. t분포는 순전히 평균이 같은지 다른지 검정을 하기 위해 만들어졌습니다.

위에서 언급하길 만약 모집단이 정규분포르 따른다고 하면 표본들의 평균인 표본평균은 을 따른다고 하였습니다. 그래서 과거에는 이를 이용하여 평균 검정을 해왔는데, 일반적으로 우리는 모분산인 를 알 길이 없습니다. 만약 n이 매우 크다면 더욱 정확히 정규분포를 따를 것이고 표본평균의 분산 역시 0으로 점차 수렴하여 사실상 의 영향이 미미할테니 상관 없지만 문제는 표본 수가 작을 때입니다. 이때는 분산을 정확히 알 수 없어 정규분포를 이용한 검정이 그 신뢰성을 잃게됩니다.

이런 경우의 검정을 위해 표준정규분포를 이용하여 정규분포와 형태는 비슷하지만 모분산 항을 포함하고 있지 않고 그 모분산 대신 표분분산을 이용한 분포를 고안해 내는데, 그것이 t분포입니다.

t분포는 정규분포와 같이 중심을 기준으로 좌우 대칭이고 종모양의 형태를 갖고 중심은 0으로 고정되어있습니다. 즉, 위에서 다룬 표준정규분포와 중심이 같고 자유도(degree of freedom, df)에 따라 종의 형태가 조금씩 변화합니다. df는 표본 수와 관련이 있는 개념으로, 표본이 많아지면 표준정규분포와 거의 동일한 형태를 보입니다.

우선 t분포의 확률함수를 보고 가겠습니다.

t분포의 또 다른 특징은 표본 수가 적으면 적을수록 표준정규분포에 비해 양쪽 꼬리가 더 두텁다는 것입니다. 이는 데이터들이 그만큼 중심에 덜 모여있다는 뜻이기도 하고 검정의 관점으로 보면 조금 더 관대하다는 뜻입니다. 정규분포를 이용한 검정의 경우는 중심에서 비교적 조금만 벗어나도 다르다는 결과를 보이지만 t분포는 정규분포에 비해 상대적으로 더 벗어나도 같다는 결과를 줍니다.

이는 표본 수가 적은데서 나오는 우연에 의한 극단적인 값에 대해서도 어느정도 유연한 검정 결과를 준다고 할 수 있습니다.

물론 이 역시 표본이 적을 때의 경우이고 표본이 많아진다면 표준정규분포와 거의 동일한 결과를 보입니다. 극단적으로 표본이 무한에 가까워진다면 t분포는 표준정규분포와 동일한 확률 구조를 갖게될 것입니다.

아래 그림은 표준정규분포와 t분포의 차이를 보여주는 그림으로 t분포의 경우 자유도가 3인 경우입니다.

각 그래프의 색칠한 부분은 좌우 각각 데이터의 2.5% 씩, 합쳐서 5%의 영역입니다. 위 그림에서 확인할 수 있듯이 표준정규분포 보다는 t분포가 훨씬 더 중심에서 많이 퍼져있음을 볼 수 있습니다. 만약 이대로 검정을 하게 된다면 표준정규분포의 경우 중심과 2정도가 차이나면 다르다는 결과를 주겠지만 t분포의 경우는 중심과 3이 차이난다고 하여도 같다는 결과를 줄 것입니다. 이와 같은 결과를 '보수적이다' 혹은 '보수적인 검정이다' 라고 표현하는데 웬만큼 확신이 없으면 다르다는 결과를 주지 않기 때문에 그렇게 불립니다.

즉, 평균에 대한 검정에 한해서는 표준정규분포를 이용한 검정보다 t분포를 이용한 검정이 더 보수적인 접근방법이라고 할 수 있겠습니다.

이 블로그의 인기 게시물

6.1.2 고수들이 자주 쓰는 R코드 소개 2편 [중복 데이터 제거 방법]

Ch2. 중복데이터 제거하기 및 데이터 프레임 정렬 Ch2. 중복데이터 제거하기 및 데이터 프레임 정렬 흔하지는 않지만, 중복으로 입력되는 데이터 셋을 마주치는 일이 생기기 마련입니다. 보통 중복데이터는 데이터 수집단계에서 많이 발생합니다. 하지만 이를 하나하나 엑셀로 처리하는 것은 한계가 있기때문에, R에서 처리하는 방법에 대해 다루어 보고자 합니다. 1차원 벡터, 리스트에서의 중복 제거 A = rep(1:10, each = 2) # 1 ~ 10까지 2번씩 반복 print(A) ## [1] 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 # 중복 제거 unique(A) ## [1] 1 2 3 4 5 6 7 8 9 10 데이터 프레임에서의 중복 제거 다음과 같은 데이터 프레임을 예시로 삼겠습니다. 변수 설명 OBS : 번호 NAME : 환자 이름 ID : 환자 고유번호 DATE : 검사 날짜 BTW : Body total water 먼저, 환자 이름이 있고, 그 환자의 고유 ID가 있습니다. 세상에 동명이인은 많기 때문에 항상 고유 ID를 기록해둡니다. # 데이터 불러오기 DUPLICATE = read.csv("C:/R/DUPLICATED.csv") DUPLICATE ## OBS NAME ID DATE BTW ## 1 1 A A10153 2018-11-30 1 ## 2 2 A A10153 2018-11-30 3 ## 3 3 B B15432 2018-11-30 4 ## 4 4 A A15853 2018-11-29 5 ## 5 5 C C54652 2018-11-28 5 ## 6 6 C C54652 2018-11-27 6 ## 7 7 D D14

4.4.1 R 문자열(TEXT) 데이터 처리하기 1

Ch4. 문자열 데이터 다루기 1 데이터 다운로드 링크: https://www.kaggle.com/PromptCloudHQ/imdb-data # 데이터 불러오기 DATA=read.csv("C:\\R/IMDB-Movie-Data.csv") Ch4. 문자열 데이터 다루기 1 이번에는 문자열 데이터를 처리하는 방법에 대해 다루겠습니다. 문자열을 다룰 때 기본적으로 숙지하고 있어야 하는 명령어는 다음과 같습니다. 문자열 대체 : gsub() 문자열 분리 : strsplit() 문자열 합치기 : paste() 문자열 추출 : substr() 텍스트마이닝 함수: Corpus() & tm_map(), & tdm() # 문자열 추출 substr(DATA$Actors[1],1,5) # 첫번째 obs의 Actors변수에서 1 ~ 5번째에 해당하는 문자열 추출 ## [1] "Chris" # 문자열 붙이기 paste(DATA$Actors[1],"_",'A') # 첫번째 obs의 Actors변수에서 _ A 붙이기, 기본적으로 띄어쓰기르 구분 ## [1] "Chris Pratt, Vin Diesel, Bradley Cooper, Zoe Saldana _ A" paste(DATA$Actors[1],"_",'A',sep="") # 띄어쓰기 없이 붙이기 ## [1] "Chris Pratt, Vin Diesel, Bradley Cooper, Zoe Saldana_A" paste(DATA$Actors[1],"_","Example",sep="|") # |로 붙이기 ## [1] "Chris Pratt, Vin Diesel, Bradley Cooper, Zoe Saldana|

3. Resampling 방법론(Leave one out , Cross Validation)

Ch4. Resampling 방법론 이전 챕터에서는 앙상블에 대해 다루었습니다. 앙상블을 요약하자면, Training Set을 Resampling할 때 마다, 가중치를 조정할 것인지 말 것인지를 다루는 내용이었습니다. 이번에는 구체적으로 Resampling 방법들에 대해 다루어 보고자 합니다. 1. Resampling의 목적과 접근 방식 모형의 변동성(Variability)을 계산하기 위해서 입니다. Training Set으로 모형을 만들고, Test Set으로 Error rate를 계산하며, 이를 반복합니다. 각 실행 별, Error Rate 값이 계산이 될 것이며, 해당 Error rate의 분포를 보고 모형의 성능을 평가할 수 있습니다. Model Selection : 모형의 성능을 Resampling 방법론을 통해 평가한다면, 모델링 과정에서 어떤 변수를 넣어야 하고, 혹은 모형의 유연성(Flexibility)을 어느정도로 조절하는 것이 적당한지 결정을 할 수 있기 때문에 매우 중요한 방법론 중 하나입니다. 모형의 유연성에 대해서는 다음 챕터에서 설명하도록 하겠습니다. 2. Leave-One-Out Cross Validation(LOOCV) LOOCV는 n개의 데이터에서 1개를 Test Set으로 정하고 나머지 n-1개의 데이터로 모델링을 하는 방법을 의미합니다. LOOCV 방법은 데이터 수 n이 크다면, n번의 모델링을 진행해야되기 때문에, 시간이 오래 걸립니다. 회귀, 로지스틱, 분류모형 등에 다양하게 적용할 수 있습니다. 3. K - Fold Cross - Validation 연산시간이 오래걸린 다는 것은 곧, 작업시간이 길어진다는 의미이며 이는 곧 야근을 해야된다는 소리와 다를게 없어집니다. 그래서 시간이 오래걸리는 LOOCV를 대채하기 위하여 K-Fold Cross - Validation이 존재합니다. 위 그림은 데이터 셋을 총 4개의 Set로 구성하였습니다. Cross -

4. 통계적 추정(점추정,구간추정)

Ch1. 점추정 추정량은 우리가 알고 싶어하는 모수를 표본들을 이용하여 단 하나의 점으로 추측하는 통계량입니다. 그 과정을 점추정(Point estimation)이라고 하며, 그렇게 얻어진 통계량을 점주청량(Point estimator)라고 합니다. 점추정량은 다양한 방식으로 구할 수 있습니다. 모평균을 추정하기 위한 표본평균 계산 각 끝의 일정 부분씩은 무시하고 나머지 표본들의 평균 계산(절삭 평균, Trimmed Mean) 등의 방법들이 있습니다. 하지만 가장 많이 쓰는 척도는 표본평균입니다. 그 이유는 대표적으로 수리적인 확장성과 표본평균의 분포를 비교적 쉽게 알 수 있다는 점을 들 수 있습니다. 점추정은 단순히 모평균을 추정하는 것만이 아닌, 회귀식을 추정하였을 때의 회귀계수도 점추정이라고 할 수 있습니다. (회귀분석은 후에 다룰 예정입니다.) 다만, 이런 점추정에도 몇 가지의 장점과 단점이 있습니다. 점추정의 장점 점추정량은 지극히 직관적이다. 통계를 모르는 누군가가 한국의 30대 여성의 평균 수입을 묻는다면 점추정량으로 즉각적인 답을 줄 수 있을 것입니다. 점추정량은 매우 직관적이며 합리적입니다. 점추정량은 우리가 원하는 수치를 대체할 구체적인 값을 제시해준다. 우리가 통계적인 모델링 혹은 함수를 작성하기 위해 30대 여성 수입의 평균치가 필요하나 모평균을 알 수 없을 때 점추정량으로 간단히 대체할 수 있습니다. 사실상 이는 대부분에 통계이론을 전개하는데 가장 중요한 역할을 합니다. 간단한 예를 말씀드리자면 모분산을 추정하기 위해서는 평균이 필요하기 때문에 표본평균을 이용합니다. 여기서 분산은 각 개별 값들이 평균에서 얼만큼 멀리 떨어져있는지에 대한 척도입니다. 그런데 우리는 '진짜 평균'을 알 수 없으니 아래 식과 같이 표본들의 평균으로 대체하는 것입니다. 여기서 평균 값을 표본평균으로 대체하였기에 표본분산은 n이 아닌 n-1으로 나누어 주게 됩니다. 이해를 돕기 위해 자유도에 대한 개념을 잠깐 다루도록 하

3.2.3 R 시각화[ggplot2] 2편 (히스토그램, 밀도글래프, 박스플롯, 산점도)

R 데이터 시각화 2편 R 데이터 시각화 2편 데이터 다운로드 링크: https://www.kaggle.com/liujiaqi/hr-comma-sepcsv # 시각화 이전에 처리 되어 있어야 하는 시각화 DATA = read.csv('C:/R/HR_comma_sep.csv') DATA$left = as.factor(DATA$left) DATA$Work_accident = as.factor(DATA$Work_accident) DATA$promotion_last_5years = as.factor(DATA$promotion_last_5years) 히스토그램(Histogram) [연속형 변수 하나를 집계 내는 그래프, 1차원] 히스토그램은 연속형변수를 일정 범위로 구간을 만들어, x축으로 설정하고 y축은 집계된 값(Counting)을 나타내는 그래프입니다. library(ggplot2) # 기본 ggplot(DATA,aes(x=satisfaction_level))+ geom_histogram() ## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`. # 구간 수정 및 색 입히기 ggplot(DATA,aes(x=satisfaction_level))+ geom_histogram(binwidth = 0.01,col='red',fill='royalblue') # col은 테두리, fill은 채우기 밀도그래프(Density Plot)[연속형 변수 하나를 집계 내는 그래프, 1차원] 밀도그래프는 연속형변수를 일정 범위로 구간을 만들어, x축으로 설정하고 y축은 집계된 값(percentage)을 나타내는 그래프입니다. # 기본 ggplot(DATA,aes(x=satisfaction_level))+ geom_density() # 색 입히기 ggplot(DATA,a