통계분석, 머신러닝을 이용한 데이터 분석

EHR로 한번 만든 예측모델 얼마나 쓸 수 있을까?

예측모델은 새로운 데이터가 들어올 때마다 업데이트해야한다. 그래야 실험할때 도달했던 성능을 계속 보장할 수 있다. 그렇지 않다면 적어도 새로운 데이터가 들어왔을 때 모델의 예측값이 얼마나 확실한지 정확히 말해줄 수 있어야 한다. 관련된 연구가 많이 있지만, EHR 처럼 자료형이 섞여있는 테이블 형태 데이터에 집중한 연구는 정말로 드물다.

간단리뷰: BEHRT: TRANSFORMER FOR ELECTRONIC HEALTH RECORDS

영국의 Clinical Practice Research Datalink에서 160만명 환자 데이터를 사용했다. 301 가지 질병의 발병을 예측했다. BERT 모델을 EHR에 적용하면서 precision이 8~10% 향상되었다고 보고한다. EHR이라서 clinical note 대신에 의료코드를 자연어의 단어처럼 다룬게 특징이다.

간단리뷰: A clinically applicable approach to continuous prediction of future acute kidney injury

  • 코호트: 703,782 명 미국의 보훈부 산하 여러 기관에서 취합함 (그래서 여성비율이 6.38%로 낮음) 입원은 172 기관, 외래는 1,062 기관에서 취합함 free text 사용하지 않음 민감한 질병정보(HIV, ADIS, 약물 남용, 정신질환) 사용하지 않음

간단리뷰: MIMIC-Extract

MIMIC-III 데이터의 전처리 파이프라인을 잘 정리한 논문이다. 정적, 동적, 메타를 나눠서 처리한 것을 잘 정리했다. 대부분의 EHR을 처리하는데 참고가 될만한 내용이다. 이런 과정을 잘 정리하고 공유하는 것이 수면 아래 백조의 발 같은게 아닐까싶다.

gitchangelog를 사용한 릴리즈 노트 자동생성

https://pypi.org/project/gitchangelog/

nginx로 swagger ui 서빙하기

flask-apispec으로 swagger 스타일의 문서를 웹으로 제공하기 위한 설정이다. 기본 path는 swagger-ui인데, docs로 바꿔서 설정했다. 그러나, 문서 페이지를 렌더링하기 위한 각종 js, css, 이미지 파일들의 경로는 고정이기 때문에 nginx와 연동하면 제대로 렌더링이 안된다. 따라서, /flask-apispec 으로 들어오는 요청을 실제로 static files를 응답할 수 있는 엔드포인트와 연결시켜줘야 한다.

간단리뷰 High-Throughput Machine Learning from Electronic Health Records

질병 종류와 예측 기간별 성능 차이를 볼만한 논문이다. 랜덤 포레스트로 질병 진단을 예측했는데, 분산 노드를 왕창 사용해서 학습했기 때문에 High-Throughput 이 제목이 들어간 것 같다.

대규모 임상적 연관성(associations)의 시간적 관계(temporal relationship) 모델링

자그마치 20여년동안 모은 임상 데이터를 썼다는데 놀라운 연구. 국제 질병 코드와 타임스탬프 외에는 환자의 데이터 중 어떤 것도 사용하지 않았기 때문에 해석에서 왜곡이 발생할 소지가 높다는 것을 누누이 강조하고 있다. 예컨대, 우울장애와 고양이나 개한테 물린 것이 높은 연관성을 가졌는데, 이것이 정말 인과 관계가 있다고 해석하면 안 된다. 저자는 20여년 동안 반려동물을 가정에 들이는 비율이 많이 높아졌기 때문에 동물에게 물리는 사건도 함께 늘어난 것은 아닐까 라는 해석을 내놨다. 기본 데이터가 가지는 특성으로 해석에 주의해야 한다는 점은 동의하긴 하지만, 데이터 양이 방대함에도 시간적 관계가 1단계를 벗어나지 못하는 한계도 같이 가져온 것 같다. 연령대, 성별을 포함시켰다면 어땠으려나.