구조방정식.매개모형,SEM,AMOS/구조방정식,매개모형,SEM,AMOS

잭나이프(jacknife)와 부트스트랩 (bootstrap)간단 이해

학위논문통계 2020. 6. 23. 13:06

ross확률과확률모형.pdf
3.02MB

앞에서 어떤 분이 구조방정식 부트스트랩(bootstrap)에 관한 물어 봐서 여기에 대해 간단히 써 보겠습니다. 책에는 전혀 안 나오죠.

 

저도 AMOS 구조방정식에서 bootstrap을 어떻게 계산하는지는 정확하게는 모릅니다. 뭐 좀 생각해보면 알 수도 있겠지만. 하여간 간단하게 개념만 설명 드리겠습니다.

 

 

bootstrap 이전에 나온 방법이 jackknife라는 방식입니다. 일종의 재표본(resampling) 방식인데요 이건 이해하기 간단합니다.

 

만약 데이터가 50개가 있다고 생각하죠. 그럼 통상 우리가 모집단의 평균을 추정하기 위해서는 표본평균을 구합니다.

 

잭나이프 방식은 50개 데이터 중 하나씩만 제거합니다. 그럼 50개 데이터셑이 만들어집니다. 예를 들어 데이터 50개 번호를 (1, 2, 3, ..., 50)라 하면

 

data1=(2,3,4,...,50)

data2=(1,3,4,...,50)

data3=(1,2,4,...,50)

data50=(1,2,3,...,49)

 

이렇게 데이터 하나를 제거한 표분수가 49개인 50개 데이터셑을 새로 생성해서 각각의 데이터 셑에서 표본평균 50개를 구합니다. 이걸 다시 평균을 내서 모집단의 평균의 추정치로 사용하겠다는 이야기입니다. 물론 다양한 곳에 사용될 수 있습니다.

 

 

부트스트랩은 잭나이프 방식을 보고 Efron이라는 사람이 새로 만들어 낸 방법입니다. 이 사람의 부트스트랩 논문은 매우 유명합니다. 관심이 있으면 검색해 보세요.

 

최초 아이디어는 데이터를 새로 만드는데 부트스트랩은 누적경험분포라는 것을 만드는 것입니다.

 

예를 들어 우리가 갖고 있는 데이터가 (5, 33, 33, 33, 100) 이렇게 5개가 있다고 하죠. 그럼 5의 확률은 1/5, 33이 나올 확률은 3/5, 100이 나올 확률은 1/5입니다.

 

이 확률 법칙에 따라 데이터를 새로 추출하는 방법입니다. 만약 10개를 추출한다고 하면

 

data1=(33, 33, 1, 100, 100, 33, 33, 1, 1, 100, 33)

data2=(1, 100, 33, 33, 33, 33, 1, 33, 33, 33, 33, 1)

data3=(100, 100, 33, 33, 33, 33, 1, 1, 100, 33, 100)

 

 

이렇게 데이터 셑을 여러개 만들어 각각의 평균을 구하는 것입니다.

 

그럼 이런 데이터 셑을 어떻게 만들가요? 별로 어렵지 않습니다. R을 사용한다면 간단하게 프로그램해서 만들 수 있습니다.

 

 

일단 먼저 누적경험분포를 만듭니다. 이 그래프는 01 사이에 있는 그래프입니다.

 

둘째는 01사이에서 랜덤 넘버를 생성합니다. 이건 통상 프로그램하는 컴파일러 프로그램에 명령어로서 다 있고, R에서도 다 있습니다.

 

 

마지막으로 01 사이에서 랜덤넘버를 생성한 다음 누적경험분포의 역함수 개념으로 데이터를 찾아가시면 됩니다.

 

이 과정은 제가 이미지 프로세싱인가 어디선가 자세히 설명한 부분이 있습니다. 아마 제 블로그에서 검색하시면 좀 자세한 내용을 알 수 있을 겁니다.

 

아니면 첨부한 책, ross의 확률책 마지막 부분 simulation에서 inverse transformation 방법을 찾아서 읽기 바랍니다.

 

 

재표집 방법은 인공지능이나 형태인식 분야에서 검증하는데도 사용될 수 있습니다.