점수를 계산하고 N 일 후 결과를 예측하는 방법
내가 회고적이고 종단적인 의료 데이터 세트 / EHR 데이터 세트가 있다고 가정 해 보겠습니다. 한 사람이 여러 시점 (과거)에 걸쳐 여러 측정 값을 가지고 있음을 의미합니다. 여기에 게시 했지만 응답을받을 수 없습니다. 그래서 여기에 게시
이 데이터 세트에는 환자의 진단, 사망률 플래그, 실험실, 입원 및 소비 된 약물 등에 대한 정보가 포함됩니다.
이제 사망률에 영향을 미칠 수있는 예측 변수를 찾으려면 로지스틱 회귀를 사용할 수 있습니다 (환자가 사망할지 여부).
하지만 내 목표는 사람이 다음 30 일 또는 향후 240 일 내에 사망 할지 예측하는 데 도움이되는 예측 변수를 찾는 것입니다. ML / 데이터 분석 기술을 사용하여 어떻게이 작업을 수행 할 수 있습니까?
또한이 사람이 앞으로 30 일 이내에 사망 할 가능성을 나타내는 점수도 계산하고 싶습니다. 점수는 어떻게 계산할 수 있습니까? 이 점수가 어떻게 파생되는지에 대한 튜토리얼 링크가 있습니까?, 제발?
이 문제를 해결하는 데 사용할 수있는 다양한 분석 기법과 점수를 계산하는 다른 접근 방식이 무엇인지 알려주시겠습니까?
이런 문제를 읽고 해결해보고 싶어요
답변
이것은 "단순한"이진 분류 문제로 볼 수 있습니다. 문제의 유형은 "간단하다"고, 작업 자체는 확실히 그렇지 않습니다. 잠재적 인 응용 프로그램에 대한 심각한 윤리적 문제는 언급하지 않을 것입니다!
첫째, 분명히 환자의 사망에 대한 데이터 항목이 있어야합니다. 이 정보가 있는지 완전히 명확하지 않습니까? 환자가 사망 할 때마다 데이터에보고되는 것이 중요합니다. 그렇지 않으면 두 클래스를 구분할 수 없습니다.
따라서 디자인은 다음과 같을 수 있습니다.
- 인스턴스는 한 번의 환자 기록을 나타냅니다. $t$, alive 또는 dead at $t+N$ 일.
- 이를 위해서는 데이터를 리팩토링해야합니다. 데이터가 0에서$T$, 당신은 여러 시점을 취할 수 있습니다 $t$ 와 $t<T-N$ (예를 들어 매월 0에서 $T-N$). 이론적으로는 다른 시간이$t$ 동일한 환자에 대해 모든 인스턴스가 일관되게 동일한 기간을 나타내고 그에 따라 기능 및 레이블이 계산되는 한 데이터에 사용할 수 있습니다.
- 기능 설계는 확실히 까다로운 부분입니다. 물론 기능은 모든 인스턴스에 대한 값을 가져야하므로 일부 환자에게만 수행 된 특정 테스트에 의존 할 수는 없습니다 (할 수 있지만 이러한 기능에 대한 편향이 있습니다. ).
- 솔직히 말해서이 부분이 확실하게 수행 될 수 있을지 의심 스럽습니다. 기능이 표준 동종 지표로 만들어졌지만 이러한 지표는 일반적으로 사망에 대한 예측이 좋지 않을 것입니다. 또는 일부 환자에 대한 특수 진단 테스트가 포함되어 있지만 환자간에 균질하지 않으므로 모델이 편향되어 과적 합 될 가능성이 있습니다.
이상적으로는 이러한 방식으로 데이터를 준비하기 전에 학습 데이터와 테스트 데이터를 분할하는 것이 좋습니다. 일반적으로 학습 데이터 기간과 테스트 데이터 기간을 선택합니다.
데이터가 준비되면 이론적으로 모든 이진 분류 방법을 적용 할 수 있습니다. 물론 확률 적 분류기 를 사용하여 확률을 예측할 수 있지만 이것은 오해의 소지가 있으므로 매우주의해야합니다. 확률 자체는 예측 이며 환자가 사망 할 수있는 진정한 기회로 해석 될 수 없습니다. 예를 들어 Naive Bayes는 경험적으로 항상 극단적 인 확률을 제공하는 것으로 알려져 있습니다. 즉, 0에 가깝거나 1에 가까우며, 예측에서 완전히 잘못된 경우가 많습니다. 이는 일반적으로 예측 확률은 추측 일 뿐이며 신뢰를 나타내는 데 사용할 수 없음을 의미합니다.
[편집 : 예]
다음이 있다고 가정 해 보겠습니다.
- 2000 ~ 2005 년 데이터
- N = 1, 즉 환자가 내년에 사망하는지 확인합니다.
- 예를 들어 콜레스테롤 수치를 나타내는 단일 지표입니다. 물론 실제로는 다른 많은 기능이 있습니다.
- 매번 $t$ 기능에서 우리는 지난 2 년부터 현재까지의 "테스트 값"을 나타냅니다. $t$. 이것은 우리가 반복 할 수 있음을 의미합니다.$t$ 2002 (2000 + 2) ~ 2004 (2005-N)
다음 데이터를 상상해 봅시다 (단순화하기 위해 시간 단위가 연도라고 가정합니다).
patientId birthYear year indicator
1 1987 2000 26
1 1987 2001 34
1 1987 2002 18
1 1987 2003 43
1 1987 2004 31
1 1987 2005 36
2 1953 2000 47
2 1953 2001 67
2 1953 2002 56
2 1953 2003 69
2 1953 2004 - DEATH
3 1969 2000 37
3 1969 2001 31
3 1969 2002 25
3 1969 2003 27
3 1969 2004 15
3 1969 2005 - DEATH
4 1936 2000 41
4 1936 2001 39
4 1936 2002 43
4 1936 2003 43
4 1936 2004 40
4 1936 2005 38
이는 다음과 같이 변환됩니다.
patientId yearT age indicatorT-2 indicatorT-1 indicatorT-0 label
1 2002 15 26 34 18 0
1 2003 16 34 18 43 0
1 2004 17 18 43 31 0
2 2002 49 47 67 56 0
2 2003 50 67 56 69 1
3 2002 33 37 31 25 0
3 2003 34 31 25 27 0
3 2004 35 25 27 15 1
4 2002 66 41 39 43 0
4 2003 67 39 43 43 0
4 2004 68 43 43 40 0
처음 두 열은 데이터 계산 방법을 보여주기 위해서만 작성했으며이 두 열은 기능의 일부가 아닙니다.
Erwan이 제공 한 올바른 솔루션에 대한 응답으로 사용자가 제기 한 질문을 명확히하기 위해 솔루션은 시간을 거슬러 올라가 일련의 타임 스탬프에 걸쳐 데이터를 준비 할 것을 제안합니다.
입력이 환자의 건강, 약품, 보고서 등에 대한 모든 다양한 기능이되는 여러 시점 't'가있을 것입니다. 어떻게 그들이 표현 벡터로 변환 될 수 있는지 확인해야합니다. 라벨은 바이너리이며 환자가 t + N 일 후에 살았는지 여부를 나타냅니다. 여기서 N은 30,60,240 등이 될 수 있습니다. 't'자체는 매주 또는 매월 취할 수 있습니다.
이러한 방식으로 데이터가 준비되면 이진 분류 연습이됩니다.
추가 할 수있는 유일한 추가 고려 사항은 여기에 RNN 요소가있을 수 있다는 것입니다. 훈련 데이터는 서로 독립적이지 않으며 여러 타임 스탬프에 걸쳐 동일한 환자의 반복 데이터를 포함 할 수 있으며 상황을 더 잘 모델링하기 위해이 정보를 캡처 할 수있는 범위가있을 수 있습니다.