<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Competing Risk |</title><link>https://chaeniverse.github.io/tags/competing-risk/</link><atom:link href="https://chaeniverse.github.io/tags/competing-risk/index.xml" rel="self" type="application/rss+xml"/><description>Competing Risk</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 31 Mar 2025 00:00:00 +0000</lastBuildDate><image><url>https://chaeniverse.github.io/media/icon_hu_da05098ef60dc2e7.png</url><title>Competing Risk</title><link>https://chaeniverse.github.io/tags/competing-risk/</link></image><item><title>Survival Analysis: Exposure Period, Immortal Time Bias, Fine-and-Gray</title><link>https://chaeniverse.github.io/blog/survival-analysis/</link><pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate><guid>https://chaeniverse.github.io/blog/survival-analysis/</guid><description>&lt;h2 id="ggsurvfit-survfit2-잠깐"&gt;ggsurvfit (&lt;code&gt;survfit2&lt;/code&gt;) 잠깐&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;survfit2()&lt;/code&gt; 는 survival curve를 깔끔하게 그려주는 함수로 &lt;strong&gt;&lt;code&gt;ggsurvfit&lt;/code&gt;&lt;/strong&gt; 패키지에 있다. base R &lt;code&gt;survfit()&lt;/code&gt; 결과를 ggplot 스타일로 변환.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ggsurvfit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;survfit2&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Surv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;|&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;ggsurvfit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;add_confidence_interval&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nf"&gt;add_risktable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="wash-out-기간"&gt;Wash-out 기간&lt;/h2&gt;
&lt;p&gt;중재/약물 연구에서 &lt;strong&gt;이전 치료의 잔여 효과가 몸에서 사라지도록 두는 기간&lt;/strong&gt;. 이 동안 참가자는 어떤 치료도 받지 않는다.&lt;/p&gt;
&lt;p&gt;예) 약물 A 효과 평가 후 같은 참가자에게 약물 B를 투여하기 전, A의 잔여 효과가 완전히 사라질 때까지 기다린다 → B 효과를 정확히 측정 가능.&lt;/p&gt;
&lt;h2 id="index-date를-어디로-잡을-것인가--exposure-period-문제"&gt;Index Date를 어디로 잡을 것인가 — Exposure Period 문제&lt;/h2&gt;
&lt;p&gt;후향적 약물 연구의 핵심 질문 중 하나: &lt;strong&gt;약 복용 시점을 index date로 잡을지, 진단일로 잡을지.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&amp;ldquo;팽이 비유: 팽이 던진 순간부터는 가만 둬야 한다. 그 이후에 행위(약 처방)를 추가하면 그게 time-varying cox이고, 결과 활용이 어려워서 잘 안 쓴다.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="index-date--진단일로-잡으면"&gt;Index date = 진단일로 잡으면&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;좋은 점: control 군의 index를 잡기 쉽다.&lt;/li&gt;
&lt;li&gt;문제: 복용군이 약을 &lt;strong&gt;언제&lt;/strong&gt; 먹었는지 모를 때 immortal time bias.
&lt;ul&gt;
&lt;li&gt;약을 1년 뒤에 먹은 사람 = &amp;ldquo;1년 동안 죽지 않았다&amp;rdquo; 는 정보가 미래에서 새는 셈.&lt;/li&gt;
&lt;li&gt;control 군은 그런 보장이 없다 → &lt;strong&gt;항상 약 먹은 사람이 더 오래 산다 (효과 좋음)&lt;/strong&gt; 로 잘못 나옴.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="index-date--약-복용일로-잡으면"&gt;Index date = 약 복용일로 잡으면&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;control 군의 index를 잡을 수 없다 (약을 안 먹었으니까).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="가장-흔한-해결-landmark--exposure-period"&gt;가장 흔한 해결: Landmark + Exposure Period&lt;/h3&gt;
&lt;p&gt;진단일부터 일정 기간 (예: 1년, 2년) 을 &lt;strong&gt;exposure period&lt;/strong&gt; 로 정의:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;진단 시점부터 진단 + N년까지를 exposure 정의 구간&lt;/strong&gt; 으로 둔다.&lt;/li&gt;
&lt;li&gt;그 안에 약을 먹었으면 treatment, 아니면 control.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;분석 시작은 진단 + N년 시점부터&lt;/strong&gt; (이게 새 index date).&lt;/li&gt;
&lt;li&gt;분석엔 N년 이전 데이터는 버림.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;효과&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Treatment 군과 control 군이 &lt;strong&gt;같은 시점부터 추적 시작&lt;/strong&gt; → immortal time이 양쪽에 동일하게 작용해 상쇄.&lt;/li&gt;
&lt;li&gt;미래 정보 누설 없음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;단점&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;N년 사이에 사망한 사람은 분석에서 제거 → 표본 수 감소.&lt;/li&gt;
&lt;li&gt;N이 너무 길면 표본이 많이 빠진다.&lt;/li&gt;
&lt;li&gt;결과는 &amp;ldquo;진단 후 N년까지 살아남은 사람들&amp;rdquo; 에 한정된 효과.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="실무-팁"&gt;실무 팁&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;랜드마크 1년 vs 2년 vs 3년&lt;/strong&gt; 으로 표본 수와 결과를 비교해보고 합리적인 기간을 고른다.&lt;/li&gt;
&lt;li&gt;가능하면 &lt;strong&gt;진단 전에 먹은 것만&lt;/strong&gt; 분석하는 게 가장 깔끔 (statin 연구처럼).&lt;/li&gt;
&lt;li&gt;&amp;ldquo;약을 끊는 시점&amp;rdquo; 같이 &lt;strong&gt;미래 정보를 봐야 하는 분석&lt;/strong&gt;은 본질적으로 어렵다. 그래도 landmark로 어느 정도 우회 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="treatment-군-정의의-시점성"&gt;Treatment 군 정의의 시점성&lt;/h2&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&amp;ldquo;팽이를 만드는 거랑 팽이를 치는 거랑 차이가 있다.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;treatment 군 / control 군을 정할 때는 &lt;strong&gt;현재 기준&lt;/strong&gt; 으로 해야 한다.&lt;/li&gt;
&lt;li&gt;그냥 raw data로 &amp;ldquo;이 사람이 치료받은 사람이고 저 사람은 아니다&amp;rdquo; 라고 하면 사실상 &lt;strong&gt;미래를 본 거&lt;/strong&gt; (그 사람이 약을 먹은 게 미래라).&lt;/li&gt;
&lt;li&gt;그래서 landmark를 걸면 그 시점까지의 정보로 그룹을 정의 — &amp;ldquo;현재 기준&amp;rdquo; 이 됨 → 사기 X.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="competing-risk-regression-실무-코드"&gt;Competing Risk Regression (실무 코드)&lt;/h2&gt;
&lt;h3 id="cause-specific-hazard-model"&gt;Cause-Specific Hazard Model&lt;/h3&gt;
&lt;p&gt;특정 사망 (e.g., cancer death) 의 위험만 본다. 다른 event는 censoring 처리.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;coxph&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Surv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="bp"&gt;T&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# status == 1 만 event, 그 외(예: 사망)는 censor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="fine-and-gray-sub-distribution-model"&gt;Fine-and-Gray Sub-Distribution Model&lt;/h3&gt;
&lt;p&gt;다른 event 발생 시 그 사람을 &lt;strong&gt;risk set에서 빼지 않고 무한대로 둔다.&lt;/strong&gt; Cumulative incidence와 1:1 대응.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cmprsk&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# crprep으로 weighted long-format data 생성&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# (또는 직접 crr 사용)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;fit.crr&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;crr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;ftime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sub&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;d.age&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;fstatus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sub&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;cod2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;cov1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;covs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;failcode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cencode&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fit.crr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="두-모델-어떻게-다른가"&gt;두 모델 어떻게 다른가&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cause-specific&lt;/strong&gt; — 특정 원인 사망의 hazard rate를 추정. 다른 event는 censor 처리. 인과적 해석에 가깝지만, cumulative incidence plot과 직접 매칭되지 않는다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fine-and-Gray&lt;/strong&gt; — sub-distribution hazard. &lt;strong&gt;Cumulative incidence plot과 1:1 대응&lt;/strong&gt; → HR과 CI plot을 같이 보여주기 좋다. 임상에서 더 많이 쓰임.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;임상에서 cuminc plot과 HR을 함께 보여주려면 &lt;strong&gt;Fine-and-Gray&lt;/strong&gt; 가 자연스럽다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="fine-and-gray가-cuminc와-일치하는-이유-간단-설명"&gt;Fine-and-Gray가 cuminc와 일치하는 이유 (간단 설명)&lt;/h2&gt;
&lt;p&gt;Fine-and-Gray model의 핵심은 &lt;strong&gt;다른 event가 일어난 사람도 끝까지 본다&lt;/strong&gt;는 것 — 사망 시점에서 끊지 않고 연구 종료일까지 추적한다고 본다.&lt;/p&gt;
&lt;p&gt;다만 &amp;ldquo;언제까지 볼지&amp;rdquo; 가 애매하므로 &lt;strong&gt;시간이 멀어질수록 weight를 작게&lt;/strong&gt; 준다. 이렇게 &lt;strong&gt;stabilized censoring weight&lt;/strong&gt;를 곱한 long-format 데이터를 만들면, &lt;code&gt;survfit + ggsurvplot&lt;/code&gt; 로 그린 cumulative incidence plot이 &lt;code&gt;cmprsk::cuminc&lt;/code&gt; / &lt;code&gt;prodlim::Hist&lt;/code&gt; 결과와 정확히 일치한다.&lt;/p&gt;
&lt;p&gt;→ Geskus 가 증명한 결과. R에서는 &lt;code&gt;cmprsk::crprep()&lt;/code&gt; 함수가 이 long-format 데이터를 만들어준다.&lt;/p&gt;
&lt;h2 id="matching-with-matchit"&gt;Matching with &lt;code&gt;MatchIt&lt;/code&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-r" data-lang="r"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MatchIt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;m.out&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;matchit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;sex&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;comorbidities&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;nearest&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;caliper&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="m"&gt;0.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;m.data&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;match.data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m.out&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="nf"&gt;coxph&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Surv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;m.data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;method = &amp;quot;full&amp;quot;&lt;/code&gt; 을 주면 optimal full matching이 자동으로 적용됨.&lt;/p&gt;
&lt;h3 id="greedy-vs-full-matching"&gt;Greedy vs Full Matching&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Greedy (nearest, 1:1)&lt;/strong&gt; — 임상 국룰. 거리 가까운 짝부터 차례로 매칭. caliper로 정밀도 제어. 표본 손실 있음.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full&lt;/strong&gt; — &lt;code&gt;optmatch&lt;/code&gt; 패키지 기반. 모든 케이스를 활용해 더 효율적이지만 해석/보고가 까다롭다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="한-줄-요약"&gt;한 줄 요약&lt;/h2&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;&lt;strong&gt;Index date 결정이 곧 immortal time bias 처리의 핵심.&lt;/strong&gt; Exposure period + landmark가 가장 흔한 실무 해법이고, competing risk가 있을 땐 Fine-and-Gray가 cumulative incidence plot과 1:1 대응해 가장 자주 쓰인다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="관련"&gt;관련&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="참고"&gt;참고&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;
&lt;/em&gt; (Austin, Statistics in Medicine)&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Competing Risk Analysis</title><link>https://chaeniverse.github.io/blog/competing-risk-analysis/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>https://chaeniverse.github.io/blog/competing-risk-analysis/</guid><description>&lt;h2 id="competing-risk란"&gt;Competing Risk란&lt;/h2&gt;
&lt;p&gt;생존분석에서 &lt;strong&gt;관심 event 외에 다른 event가 있어 두 event가 서로의 발생 확률에 영향을 주는&lt;/strong&gt; 상황. 그래서 한 event가 다른 event의 변동을 일으킨다 → &amp;ldquo;경쟁 위험&amp;rdquo;.&lt;/p&gt;
&lt;h3 id="직관-예시"&gt;직관 예시&lt;/h3&gt;
&lt;p&gt;술이 위암(A)의 원인이라고 하자. 술 먹는 사람은 위암 위험이 ↑.&lt;/p&gt;
&lt;p&gt;근데 술이 간암(A&amp;rsquo;)의 원인도 된다면? → 술 먹은 사람 중 어떤 이는 간암이 먼저 생기고, 어떤 이는 위암이 생긴다.&lt;/p&gt;
&lt;p&gt;간암 생긴 사람은 &lt;strong&gt;사망이라는 event가 먼저 발생&lt;/strong&gt; → 그 사람의 위암은 더 이상 관찰되지 않는다. 결과적으로 위암은 작게 측정되는 (감소하는) 방향으로 작동한다.&lt;/p&gt;
&lt;p&gt;이렇게 하나의 원인에 대해 다른 event가 경쟁적으로 작동해, &lt;strong&gt;A&amp;rsquo;(간암) event 때문에 A(위암) event가 변동되는&lt;/strong&gt; 게 competing risk이다.&lt;/p&gt;
&lt;h3 id="mgus--mm-코호트-예시"&gt;MGUS / MM 코호트 예시&lt;/h3&gt;
&lt;p&gt;MGUS 코호트에서 outcome이 (MM 발생, 사망, censored) 라고 하자.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;관심 event: MM 발생 (event = 1)&lt;/li&gt;
&lt;li&gt;Competing risk: 사망 (사망으로 인해 MM outcome으로 갈 확률이 줄어드는 거니까)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="두-가지-처리-방법"&gt;두 가지 처리 방법&lt;/h2&gt;
&lt;h3 id="cause-specific-model"&gt;Cause-Specific Model&lt;/h3&gt;
&lt;p&gt;다른 event를 &lt;strong&gt;censored&lt;/strong&gt; 로 처리하고 관심 event에 대해 standard Cox 회귀를 적용. 진정한 인과적 효과 (cause-specific hazard) 를 본다.&lt;/p&gt;
&lt;h3 id="fine-gray-sub-distribution-model"&gt;Fine-Gray Sub-Distribution Model&lt;/h3&gt;
&lt;p&gt;다른 event 발생 시 &lt;strong&gt;추적 기간을 연구 종료일까지로 두고&lt;/strong&gt; sub-distribution hazard를 모델링. → &lt;strong&gt;Cumulative incidence plot (CIF)&lt;/strong&gt; 와 1:1 대응.&lt;/p&gt;
&lt;h2 id="어느-걸-쓰나"&gt;어느 걸 쓰나&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;인과적 효과&lt;/strong&gt;를 보고 싶다 → cause-specific model이 더 적합&lt;/li&gt;
&lt;li&gt;그러나 &lt;strong&gt;실무에서는 Fine-Gray가 압도적으로 많이 쓰인다&lt;/strong&gt; — cumulative incidence plot과 직관적으로 매칭되기 때문&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="참고"&gt;참고&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;
&lt;/em&gt; (Austin, Statistics in Medicine)&lt;/li&gt;
&lt;li&gt;출처:
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>