predictors 찾아내려는 이유: 예측 --> 예방하려고

문제 제기

어떤 사람에게서 데이터를 모았다고 하자. 이 사람이 건강한 대조군인지 물질사용장애 환자 집단인지 어떻게 알 수 있을까?

가상적인 fMRI 연구를 예로 들자.  

약물 단서, 통제 단서 그림을 보여주고, 약물 단서를 볼 때 더 활성화되는 뇌영역을 알아볼 수 있다. 담배를 피는 사람과 담배 대신 펜을 든 사람의 사진을 보여줬다면 두 사진에서 담배와 펜만 다르기 때문에 다른 뇌활동을 통제할 수 있다. 

전통적 방법(hypothesis driven) 

보고싶은 것(ex 우울증 지표)이 있다면 그것과 상관되는 유의미한 복셀을 하나하나 찾아보는 것
voxel간의 상관관계와 상호 연관성이 독립 가정으로 무시되기 때문에 정보량에 한계가 있다.

전통적 방법: 각 복셀마다 t test를 한다. 유의미하면 색깔로 표시한다. (univariate approach)

전통적 방법의 문제: 

  • voxel 수가 많기 때문에 아무리 p value를 낮춰도 false positive할 확률이 높다. 이것을 교정하여 false positive를 줄이기 위해 correction 알고리즘을 사용하기는 하지만 완벽하지는 않다. 
  • N<<p problem도 문제다. N은 subject 수, p는 predictor 수다. fMRI는 N보다 p가 훨씬 크기 때문에, 과적합 등 여러 통계적 문제가 발생할 수 있다. 
    • 예를 들어 GPA를 예측할 때, 키, 몸무게, IQ 등을 예측변인으로 넣는다고 하자. 에러를 최소화하는 베타값을 각 변인에 대해 구해야 한다. 변수 수가 많지 않으면 키 빼고 돌려보고 몸무게 빼고 돌려보고.. 할 수 있는데, 
    • 변인이 만 개씩 된다면 전통적 회귀분석을 하기 어렵다. 키와 몸무게처럼 상관이 높은 변인은 일반적 회귀분석에 넣으면 오류를 일으키고 변인이 엄청 많다면 하나하나 따지는 것도 불가능하다. 
    • 과적합의 문제: 변인이 많아질수록 모델도 복잡해진다(high-dimensional). 모델이 복잡해질수록 training data의 fitting은 잘 할 수 있지만, 새로운 데이터에는 적합하지 않다. 이것을 과적합이라 한다.

우리가 원하는 것은 new data에 대해서도 일반화가 잘 되는 model complexity를 찾는 것. 그래서 기계학습 방법을 쓴다. 

Multivariate Pattern Analysis (MVAP)(=기계학습, predictive modeling)(data driven)

10만개의 voxel이 있으면 한꺼번에 가지고 이 데이터를 어떻게 조합해야 보고싶은 것을 예측할 수 있는지 찾아내는 것. 예측력이 더 높다.

  • 전통적 기법: 정상군과 임상군을 따로 나누어 binary 또는 continuous한 symptom score를 만들고, 이 지표가 brain measures와 얼마나 상관되는지를 voxel마다 본다. 
  • 기계학습 방법: 뇌 전체 데이터로 symptom score를 낸다. 먼저 brain measures가 있고 여기에 1000개의 변인이 있다고 하면, 1000개의 변인으로 symptom score를 가장 잘 예측할 수 있는 것을 찾고, 찾아낸 것으로 그림을 그린다. 

그니까 식을 먼저 내고 복셀하나하나 비교해가는게 아니라 일단 뇌 먼저 측정해서 뇌 전체를 가지고 전체적인 패턴을 찾는 거인듯? 

  • 예: support vector machine, Random Forest, Decision Tree, Penalized regression, Neural network(e.g., deep learning)
  • predictive modeling이 더 많은 정보를 뽑을 수 있고 예측도 더 잘 한다. 
    • 편도체 하나로만 예측했을 때 등등에는 변수를 설명하는 정도가 10%정도인데 predictive model로 뇌 전체를 가지고 하면 70% 넘게 변수를 설명할 수 있는 등
예시로 Penalized regression analysis 
  • 에러를 최소화하는 베타값을 찾는 건데 LASSO라는 걸 쓰면 중요하지 않은 변인을 0으로 보내버리는 feature selection을 할 수 있고, 
  • 또 뭐는 서로 상관이 높은 것이 있어도 모델 솔루션을 뽑을 수 있음. 이걸 grouping effect라고 함. 
  • 두개를 같이 쓰는 걸 Elastic Net이라고 하는데, feature selection과 grouping effect를 같이 쓸 수 있어서 fMRI나 유전체 분석에 유용하게 쓰임. 예를 들어 편도체 안에 있는 복셀끼리 상관이 높아도 같이 살아남을 수 있어서 유용함. 
  • 2010년대 초반부터 일라스틱넷을 fMRI나 뉴로이미지에 쓰는 논문이 나오고 있다. 

그다음 하는 게 cross validation(일반화를 위해)

  • 데이터가 100 %있다고 하자
  • training set 67%과 test set 33%으로 나눈다
  • fitting은 67%의 데이터를 가지고 한다. 
    • 이때 k-fold cross validation이라는 걸 하는데, 만약 k=5라서 five fold라고 한다면 5개 중 4개 써서 fitting하고 남은 하나는 testing하는 걸 다섯 번 반복하고 평균 내는 것. 
    • 목적은 일반화를 위하여 
  • 그다음 아직 손을 안 댄 33% test set에 test를 해봄. 그러면 test set에 해보는 예측은 좀더 unbiased 될 것.
  • 데이터가 100만명이면 숫자 자체의 power때문에 어떻게 training과 test로 나누든 상관이 없지만, 100명이면 어떻게 training과 test로 나누는지도 영향을 주기 때문에, random으로 해서 여러번 돌릴 수도 있다. 
  • 또한 67명을 5개의 fold로 나누는 것도 여러 경우의 수가 있을 것이다. 

ROC curve and AUC

Receiver Operating Characteristic (ROC) curve

레이더에 적의 비행기인지 아닌지 애매한 시그널이 있을 수 있다. 이걸 잘 분류할 수 있는 기술.

기본적으로 평균이 0인 noise distribution과 평균이 다른 signal distribution이 있다고 본다. 그리고 시그널의 크기(x축)가 특정 기준을 넘으면 signal, 낮으면 노이즈라고 한다. 노이즈와 시그널의 그래프가 교차하는 지점이 optimal한 라인일 것이다. 

하지만 false positive, false negative 등이 있을 수 있다. 

 

예시 연구: Neuropsychosocial profiles of current and future adolescent alcohol misusers

논문의 백그라운드 
  • 미국의 13-14살 중 40%가 넘는 애들이 한번쯤 술마셔본 적 있다고 함. 10%는 아예 마시는 애들. 
  • 16살때는 각각 65%랑 27%가 됨. 
  • 일찍 술마실수록 성인기에 알코올의존이 될 확률이 높아짐. 그래서 청소년기때부터 예측인자를 찾아내는게 예방에 도움됨. 
  • 근데 이전까지의 연구는 샘플 수가 작고, 하나의 risk factor만 보고 한꺼번에 보지는 못했고, 과적합 문제도 있다. 
  • --> 성격, 생애사건, 유전자, 인지적 요인(집행기능 등), 뇌사진 등등을 포함해서, 큰 표본으로 연구 
방법
  • 14살 때 빈지드링킹 하는 아이 / 컨트롤 집단 . 16살때 다시 잼 (종단연구)
  • 스탑시그널, 정서반응 과제.. 성격 재고 인지 재고 생애사건이랑 인구통계학이랑 유전자랑 다 재고
  • 머신러닝을 써서 cross validation도 하고 
결과
  • 분석1: 빈지드링커와 논 빈지드링커를 구분하는 것. AUC가 0.96 나왔다. 엄청 좋은 거임.  
  • 분석2: 첫 분석은 흡연 영향?도 포함되어 있었음. 흡연이 알코올과 같이 나오는 경우가 많았으니 흡연 없앴을 때는 0.96보단 좀 떨어졌지만 0.90 되었다. vmPFC 등 여러 영역이 involve되어있다는 것도 나왔고 
  • 분석8: 14살때 데이터로 누가 16살에 빈지드링커가 될까? 여기선 AUC가 0.75쯤 됐다. 그래도 꽤 좋은 것. 
  • 현재와 미래의 알코올 사용에 관련된 요인: 생애사건, 성격(Novelty-seeking, Disorderliness, Extravagance, 낮은 Conscientiousness), 그리고 14살 때 알코올 한번이라도 해본적 있었는지가 16살에도 중요 지표 
  • 지금은 중요한데 나중 예측할 때는 안중요한 지표: Disruptive family events, Personality trait of agreeableness, More developed pubertal status, Impulsivity, Higher delay discounting
  • 나중 예측할때는 중요한데 지금은 안중요한 지표: Anxiety sensitivity subscale 
  • 흡연하면 음주도 할 가능성 높고 
  • counter intuitive한 것이 유전과 뇌보다는 성격과 히스토리가 예측률이 높음.
  • 현재에 중요한 요인: 흡연여부, romantic events, 낮은 성실성, 낮은 우호성, 일탈 기록과 valence, 나머지는 다 고만고만 
  • 나중 예측할 때 지표: romantic events, 낮은 성실성, 등등 


머신러닝으로 Stimulants & Opioids 의 behavioral markers 알아본 연구

  • 건강한 대조군 / 퓨어 헤로인 유저 / 퓨어 암페타민 유저 / 폴리유저 (유저들은 다 in abstinence) --> 이것저것 측정함 
  • 헤로인, 암페타민 각각의 그룹을 예측하는 변인을 구함 
  • 둘다 공통적으로 나오는 변인이 하나밖에 없었음. psychopathy factor 2인데 반사회적?같은거 예측하는 요인 
  • 하지만 pure 헤로인과 pure 암페타민 유저를 구하기 어려웠음


늘어나는 머신러닝 & 샘플사이즈 큰 논문들

  • 요즘은 머신러닝 쓰는 논문들 늘어나고 있고, 샘플 사이즈는 최근으로 올수록 늘어나고 있다. 2015년에는 21만명이 샘플인 논문도 나옴 
  • 샘플 사이즈가 커질수록 분류 정확도가 떨어진다.
  • 샘플사이즈가 작아지면 신뢰도도 떨어지고 sample bias도 커지기 때문에 우연히 정확도가 좋아질 확률도 늘어난다.
  • 샘플 사이즈가 커질수록 그런 risk가 줄어든다. 그래서 결과도 좀더 robust해진다. ex 천명 피팅 모델과 30명 피팅 모델 간에는 얼마나 일반화할 수 있는지에 차이가 있을 것이다. 

Computational Psychiatry

  • 연구할 때 더 수학적이고 통계적인 방법을 많이 쓰자는 것. 더 promote하려 한다. 
  • RDoC: 
  • 행동, 증상만으로 진단하고 구분하는 DSM5와 달리 행동 이면의 신경학적, 인지적 메커니즘을 기반으로 질환을 분류하자는 접근 방식
  • 지금은 하나의 psychosis라는 집단으로 섞여있는데, 예시로 정신분열과  양극이 공병률이 높고 둘 중 뭔지 감별하기도 어려운 이유는 이 두 질환간 생물학적 매커니즘이나 유전적 변인이 오버랩이 크기 때문. 겉으로 드러나는 것만으로 진단하는게 큰 의미가 없을 수 있다는 것. 가상적으로는, 기전에 따라 생물학적 매커니즘으로 구분하면 훨씬 잘 분류될 거고, 치료에도 도움되지 않을까 하는 것. 그런데 이런 식으로 biotype을 나눌 때 RDoC나 computational psychology가 유용하다는 것. 

Theory-driven Computational Psychiatry

  • 모델 파라미터를 찾는 것
  • 심리적으로 의미있는 과정이나 construct도 발견할 수 있다
  • 겉으로 관찰할 수 있는 행동이나 뉴럴 액티비티만으로 예측하는 것보다 예측률을 높일 수 있다  
  • ex) 도파민 뉴런이 어떻게 작동하는지 밝힌 연구, RL 연구, RDoC이라면 다양한 집단을 모델 파라미터로 매핑할 수도 있다 

Data-driven Computational Psychiatry

  • big하고 high한 데이터로 let the data speak
  • 보통은 가설을 세우고 가설을 검증하려 하지만, 변인 차원이 너무 커지면 백개에 대한 가설을 하나하나 세우고 검증하는게 무의미할 때가 있음. 그냥 어떻게 데이터가 어떤 패턴을 나타내는지를 머신러닝을 써서 알아보자는 것 
ex)
  •  cross validation 기법, 
  • 우울증 환자에게 모은 휴식전위 fMRI 데이터로 subtyping했더니 클러스터에 따라 치료법 효과가 달랐고 clinical feature와 subtype 모두를 combine할 때가 예측이 가장 잘됐다는 논문, 
  • 우울증 환자에게 어떤 약물이 가장 잘 맞을지를 머신러닝으로 예측했더니 정확도가 60%(의사보다 높음)였다는 논문, 
  • 말을 못하는 아이이더라도 머신러닝으로 얼굴표정으로 pain level을 예측하는 연구(Facial Action Coding System FACS) 
  • 양극성의 조증과 울증을 목소리 지표만으로 구분 예측할 수 있다는 논문 
  • 적극적으로 참여하는 active 데이터와 그냥 있을 때를 보는 passive 데이터가 있는데, passive 데이터의 유용성이 더 크다 (active 데이터는 속일 수도 있고 오래 걸리기도 하니까) 
발전방향
  • 결국 유전자, 생물학적 endophenotype 등을 통합해 사람을 제대로 이해하려는 것인데, 단순히 elastic 방법은 실제 마음을 구성하는 레벨은 잘 고려하지 못함. 유전자, 유전자와 환경의 상호작용, 뉴로이미징 레벨, 행동 레벨, 등등 계층적으로 통합되어야 하는데 제대로 통합할 수 있는 모델은 아직 없음. (미래의 연구과제) 
  • 디지털 치료: 웨어러블 기기, 모바일 기기를 거의 다 가지고 다니므로 이 정보를 치료에 이용하자는 것.
  • RL + Deep Learning도 데이터드리븐: 딥뉴럴네트워크로  computational systems composed of neuron-like-units connected through synapse-like contacts.. 
  • Large-scale longitudinal studies: 빅데이터도 중요해짐. ABCD스터디
    • 10살짜리 아이 만명을 10년간 종단추적하는 연구
    • 10살때 마약하는 아이는 거의 없는데 13, 14살때부터 급속히 늘기 때문
    • 이미 마약을 한 다음부터 종단추적을 하면 뭐가 리스크고 뭐가 영향받은요인인지 잘 알 수 없기 때문에 하기 이전 나이부터 종단추적을 하는 것. 
    • 허락만 받으면 누구나 다운받아서 분석할 수 있음 
    • 이외 IMAGEN 프로젝트 등등 빅데이터를 모으려는 많은 시도가 있음 
challenges
  • 연구에서 쓰는 스탑시그널같은 과제는 "toy" problem. 일상의 결정은 더 복잡하고 실시간이고, 기분도 매일 바뀜. 어떻게 랩 지표로 새로운 환경에서의 의사결정을 예측할까? 
  • 딥 RL은 아직 human dynamics를 제대로 잡아내지 못함: 
    • Amount of data/Slowness of learning: RL로는 뇌의 효율성을 따라갈 수 없음. 엄청많은 데이터로 수백시간 트레이닝해야하는데 사람 뇌는 그리 작동하지 않음. 딥러닝은 학습속도가 느린데 사람은 딱 한번으로도 배움. 이전의 life long 경험은 어떻게 포함시킬 것인가? 
    • 공학자들이 보통 연구하기 때문에 뇌에 대한 기초지식이 부족해서 협업이 중요
    • 인간은 모델베이스러닝같이 구조를 먼저 배우기도 하는데, 기계학습에서 어떻게 구현할지도 어려움
    • 멀티모델 데이터로 예측할때도 단기와 장기 예측이 다름. 이건 어떻게 처리할지 
    • 인간은 사회적 관계를 많이 맺기 때문에 multi-agent RL(사회적 의사결정)은 어떻게 할지 
    • 우리가 하고싶은건 개별화된 리얼타임개입인데 (ex 자살위험성 있는 사람은 자살을 하려고 시도할 때 하기 전에 미리 막는 것) 이런걸 할 수 있음 좋겟다 

심리학을 전공했던 학생입니다. 학기 중이라 포스팅이 늦어집니다. 뉴로렉 연구실(심리학 포스팅) / 글 연구실(TRPG 시나리오 포스팅)

뉴로렉님의 창작활동을 응원하고 싶으세요?