Skip to content

Latest commit

 

History

History
15 lines (8 loc) · 3.75 KB

README.md

File metadata and controls

15 lines (8 loc) · 3.75 KB

Semiparametric Regression Model for Data with Measurement Error

설명변수 행렬 W와 별도의 설명변수 x가 반응변수 y와 y = Wb + f(x) + e와 같은 관계를 갖는다고 하겠습니다. 여기서 f는 x와 y 사이의 함수적 관계, e는 랜덤 노이즈를 나타냅니다. 이때, x에 측정오차(Measurement Error)가 포함되었다는 것은 실제 관측된 데이터가 x가 아닌 v = x + e'라는 의미입니다(e'는 e와 독립인 랜덤 노이즈입니다). 예를 들어, 측정 기계가 고장 등의 이유로 정밀하지 않은 측정을 했을 때나 자료를 저장하는 과정에서 반올림을 했을 때 데이터의 참값인 x대신에 측정오차가 포함된 v를 관측하게 됩니다.

이때 v와 y간 관계의 형태를 통해서 f의 형태에 대해서 알 수 없으므로, 이 형태에 대한 어떤 가정도 하지 않는 비모수적(Nonparametric) 추정이 적합합니다. 이 과정에서 v의 정보를 활용해 x의 참값을 추정하고, 이를 바탕으로 f를 추정하게 됩니다. 또한, 설명변수의 효과는 b라는 모수를 통해 추정하므로, 한 모형 안에서 모수적, 비모수적 추정을 함께 수행하게 됩니다. 이와 같은 모형을 준모수(Semiparametric) 회귀모형이라고 합니다. 이 모형을 VB라는 기법을 사용해, 기존 베이지안 추정법인 MCMC 기법과 비슷한 추정 결과를 MCMC보다 훨씬 빠른 시간 안에 반환하는 코드를 model_vb.R과 같이 구현했습니다.

simulation-result

소요 시간이 개선되는 효과를 보다 구체적으로 제시하기 위해, MCMC를 사용해 모형을 적합하는 코드를 model_mcmc.stan과 같이 작성했습니다. 그리고 나서 f(x)=2x+2sin(πx)로 설정하고, 첫 문단에서 설명한 모형의 형태에 맞춰 모의 데이터를 생성해 시뮬레이션을 준비했습니다. simulation.R을 실행시키시면 아래와 같은 4개의 플랏들을 출력해 보실 수 있습니다. 설명을 위해 왼쪽부터 순서대로 1, 2, 3, 4번 플랏이라고 하겠습니다.

1번 플랏은 회귀 계수 b에 대한 추정 결과입니다. 검은색 점은 b의 참값을 나타냅니다. 노란색, 파란색은 각각 VB, MCMC의 추정 결과를 의미하는데, 점은 b의 추정치, 선은 모수에 대한 95% 신용구간을 나타냅니다(신용구간은 빈도주의의 신뢰구간과 대응되는 개념으로, 모수가 특정 확률로 포함될 구간을 의미합니다).

2번 플랏에는 측정오차가 포함된 데이터 v와 반응변수 y의 산점도를 담았습니다. 관측된 데이터 v에 포함된, 실제 데이터 x에 대한 측정오차 때문에 사인 패턴은 잘 드러나지 않습니다. 이 모형은 이런 데이터만 가지고 숨겨진 f를 3, 4번 플랏과 같이 추정하는 데 사용합니다(즉, 측정오차로 가려진 실제 패턴을 데이터로부터 찾아내는 데 사용합니다). 3, 4번 플랏은 각각 VB, MCMC를 사용한 추정 결과입니다. 회색 선은 실제 f를, 채색된 선은 추정한 f를 나타냅니다.

두 플랏에서 채색된 선을 둘러싼 음영 부분은 각 기법을 통해 추정한 f의 95% 신용구간입니다. 두 기법이 유의미한 차이를 보이는 부분은 이 신용구간 뿐입니다. 이처럼 VB가 MCMC에 비해 신용구간을 좁게 추정하는 결과가 다른 연구에서도 많이 나타났지만, 추정치를 비교했을 때는 큰 차이가 없고 무엇보다 추정 결과를 얻는데 걸리는 시간상 이점이 확실하기 때문에 VB가 최근에 활발하게 연구되고 있습니다. 이 예시에서도 VB, MCMC 각각의 소요시간은 각각 4.973초와 21.558분으로, VB가 MCMC보다 약 260배 빨랐습니다.