<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>IPTW |</title><link>https://chaeniverse.github.io/tags/iptw/</link><atom:link href="https://chaeniverse.github.io/tags/iptw/index.xml" rel="self" type="application/rss+xml"/><description>IPTW</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 26 Aug 2025 00:00:00 +0000</lastBuildDate><image><url>https://chaeniverse.github.io/media/icon_hu_da05098ef60dc2e7.png</url><title>IPTW</title><link>https://chaeniverse.github.io/tags/iptw/</link></image><item><title>Causal Inference: PSM, IPTW, CCW, Target Trial Emulation</title><link>https://chaeniverse.github.io/blog/causal-inference/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate><guid>https://chaeniverse.github.io/blog/causal-inference/</guid><description>&lt;h2 id="왜-인과추론이-필요한가"&gt;왜 인과추론이 필요한가&lt;/h2&gt;
&lt;p&gt;후향적 연구 (registry data, 건강보험·심평원 청구 데이터 등) 는 RCT처럼 미리 정의된 조건으로 데이터를 수집한 게 아니다. &lt;strong&gt;bias가 존재할 수밖에 없다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;예) 새로운 약 효과를 보기 위해 두 그룹 (약 먹은 vs 안 먹은) 비교.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;임상시험&lt;/strong&gt;: randomization으로 baseline 통제 → 순수한 약 효과 (causal effect).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;후향적 연구&lt;/strong&gt;: 이미 모인 데이터 → 두 그룹의 baseline이 다를 수 있음.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;→ &lt;strong&gt;요는, 후향적 연구를 통계 기법으로 최대한 임상시험처럼 셋팅하는 것.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="카운터팩추얼-프레임"&gt;카운터팩추얼 프레임&lt;/h2&gt;
&lt;p&gt;각 개인에게 두 개의 잠재적 결과가 있다고 가정:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$Y^{a=1}$ : &amp;ldquo;&lt;strong&gt;약을 먹었다면&lt;/strong&gt;&amp;rdquo; 의 결과&lt;/li&gt;
&lt;li&gt;$Y^{a=0}$ : &amp;ldquo;&lt;strong&gt;약을 먹지 않았다면&lt;/strong&gt;&amp;rdquo; 의 결과&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;진짜 인과효과는 $E[Y^{a=1}] - E[Y^{a=0}]$ — &lt;strong&gt;평행세계의 약 먹은 나 vs. 평행세계의 약 안 먹은 나&lt;/strong&gt; 의 차이.&lt;/p&gt;
&lt;p&gt;문제: 한 사람에게 한쪽만 관측됨. 그래서&lt;/p&gt;
$$E[Y^{a=1}] = E[Y \mid A=1] \quad \text{(?)}$$&lt;p&gt;&lt;strong&gt;이 등식이 성립하려면 가정이 필요하다.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="조건부-독립-strongly-ignorable-assignment"&gt;조건부 독립 (Strongly Ignorable Assignment)&lt;/h3&gt;
$$Y^a \perp A \mid X$$
&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;모든 confounder $X$ 가 주어졌을 때, 잠재적 결과 $Y^a$ 와 treatment 배정 $A$ 가 독립&lt;/strong&gt;이라는 가정.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;이게 성립하면&lt;/p&gt;
$$E[Y^{a=1}] = E[Y \mid A=1, X = x_0] \cdot \text{(for any specific } x_0\text{)}$$&lt;p&gt;그리고 marginalization으로&lt;/p&gt;
$$E[Y^{a=1}] = \sum_x E[Y \mid A=1, X=x]\, P(X=x)$$&lt;p&gt;즉, &lt;strong&gt;공변량 $X$ 가 충분히 주어지면 인과효과를 추정할 수 있다.&lt;/strong&gt; 이 marginalization을 통계 기법으로 풀어내는 게 &lt;strong&gt;PS / IPTW&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="ate-vs-att--무엇을-추정할-것인가"&gt;ATE vs ATT — 무엇을 추정할 것인가&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;추정량&lt;/th&gt;
&lt;th&gt;정의&lt;/th&gt;
&lt;th&gt;누가 쓰나&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ATE&lt;/strong&gt; (Average Treatment Effect)&lt;/td&gt;
&lt;td&gt;$E[Y^{a=1}] - E[Y^{a=0}]$&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;IPTW&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ATT&lt;/strong&gt; (Average Treatment effect on the Treated)&lt;/td&gt;
&lt;td&gt;$E[Y^{a=1} - Y^{a=0} \mid A=1]$&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;PSM (matching)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;매칭은 treated 군에 untreated 자료를 짝지어 가져오므로, &lt;strong&gt;treated 군에 한정된 효과&lt;/strong&gt;만 정확히 본다 → ATT.&lt;/p&gt;
&lt;p&gt;ATT의 해석은 까다롭다 — 일반적으로 &lt;strong&gt;정책 평가&lt;/strong&gt;처럼 &amp;ldquo;정책 시행군 전체에 대한 효과&amp;quot;를 보고 싶을 때 사용된다 (정책 시행 후엔 모두가 시행군이라 ATT가 자연스러움).&lt;/p&gt;
&lt;p&gt;IPTW는 전체 모집단에 대한 효과 (ATE) 를 직접 추정 → &lt;strong&gt;인과효과로 해석하기 가장 쉽다&lt;/strong&gt;. 최근 임상연구의 흐름은 매칭보다 &lt;strong&gt;IPTW로 점점 이동&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="기존-회귀adjusted-vs-인과추론"&gt;기존 회귀(Adjusted) vs 인과추론&lt;/h2&gt;
&lt;p&gt;회귀모형에 그냥 공변량을 다 넣어 보정하는 흔한 방법:&lt;/p&gt;
$$\text{lm}(y \sim a + x)$$&lt;p&gt;이때 회귀 계수는&lt;/p&gt;
$$E[Y \mid A=1, X] - E[Y \mid A=0, X]$$&lt;p&gt;이고, 보고 표기는 &lt;strong&gt;Adjusted risk ratio / Adjusted HR&lt;/strong&gt; 등.&lt;/p&gt;
&lt;p&gt;문제점:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;공변량 $X$ 가 &lt;strong&gt;conditioning 된 상태에서의 효과&lt;/strong&gt; — &amp;ldquo;성별·연령이 고정된 채 약 변수만 1 증가했을 때 효과&amp;rdquo; 라는 의미.&lt;/li&gt;
&lt;li&gt;진짜 약효 (marginal causal effect) 와 해석이 다름.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;용어 구분:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Conditional model&lt;/strong&gt; — 공변량을 모형 안에 넣어 보정 (회귀의 표준)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Marginal model&lt;/strong&gt; — weight를 주어 보정 (IPTW + univariate)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;→ 임상 논문 읽을 때 conditional/marginal HR 구분이 중요.&lt;/p&gt;
&lt;h2 id="crude-vs-causal"&gt;Crude vs Causal&lt;/h2&gt;
&lt;p&gt;매칭 후 단순 비교:&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;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;matched_df&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;→ 매칭으로 균형이 맞춰졌으니 결과는 단순 crude HR이 아니라 &lt;strong&gt;causal HR&lt;/strong&gt; 로 부를 수 있다.&lt;/p&gt;
&lt;p&gt;매칭 안 한 raw 비교는 &lt;strong&gt;crude HR&lt;/strong&gt;. 이 둘을 구분해서 보고하는 게 좋다.&lt;/p&gt;
&lt;h2 id="propensity-score-matching-psm"&gt;Propensity Score Matching (PSM)&lt;/h2&gt;
&lt;p&gt;공변량이 비슷한 사람끼리 두 그룹 간 짝지어 분석.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;propensity score&lt;/strong&gt; $P(A=1 \mid X)$ 를 logistic regression으로 추정.&lt;/li&gt;
&lt;li&gt;점수가 비슷한 treated/untreated 짝을 매칭.&lt;/li&gt;
&lt;li&gt;모든 case가 1:1로 맞춰진 후엔 단순 비교 (&lt;code&gt;coxph(Y ~ A)&lt;/code&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;매칭 결과 자체가 진짜 causal effect인지 약간 애매할 수 있음 (causal risk difference).&lt;/li&gt;
&lt;li&gt;treated 기준이라 ATT 추정.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;임상 국룰&lt;/strong&gt;: greedy matching (1:1 nearest matching) + caliper.&lt;/p&gt;
&lt;h2 id="iptw-inverse-probability-of-treatment-weighting"&gt;IPTW (Inverse Probability of Treatment Weighting)&lt;/h2&gt;
&lt;p&gt;매칭의 반대. 짝짓는 대신 &lt;strong&gt;weight를 주어&lt;/strong&gt; balance를 맞춘다.&lt;/p&gt;
&lt;p&gt;직관: 남자 3명, 여자 6명 → 남자에 weight 2를 주면 6:6. 이 weight 2 가 곧 $1/P(A=1 \mid X)$.&lt;/p&gt;
$$w_i = \frac{1}{P(A_i=1 \mid X_i)}$$&lt;p&gt;이 weight를 분석에 넣으면 &lt;strong&gt;단변량 회귀로도 인과효과&lt;/strong&gt;를 얻는다:&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;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="n"&gt;weights&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="n"&gt;weights&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;/p&gt;
&lt;ul&gt;
&lt;li&gt;$n$ 수 유지.&lt;/li&gt;
&lt;li&gt;ATE 직접 추정.&lt;/li&gt;
&lt;li&gt;인과효과 해석이 가장 쉽다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="weight의-직관"&gt;Weight의 직관&lt;/h3&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;ID 1번이 weight 2로 들어갔다 = 그 사람을 &lt;strong&gt;2명으로 복제&lt;/strong&gt;했다고 생각하면 됨.&lt;/p&gt;
&lt;p&gt;실제로 표본 수가 늘어나는 게 아니라 cox 점수에 weight를 곱하는 형태로 처리.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;소수점 weight도 같은 직관.&lt;/p&gt;
&lt;h2 id="r-구현-흐름"&gt;R 구현 흐름&lt;/h2&gt;
&lt;p&gt;PSM도 IPTW도 출발점은 같다 — propensity score 추정:&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;glm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&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 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="n"&gt;family&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;binomial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;logit&amp;#34;&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;ul&gt;
&lt;li&gt;이 확률값으로 짝지으면 → &lt;strong&gt;PSM&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;이 확률의 역수를 weight로 쓰면 → &lt;strong&gt;IPTW&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="stabilized-weight--truncation-실무-국룰"&gt;Stabilized Weight + Truncation (실무 국룰)&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;stabilized 넣고 weight truncation까지 하는 건 국룰이다.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="왜-stabilized"&gt;왜 stabilized?&lt;/h3&gt;
&lt;p&gt;극단적인 표본 비대칭에서 weight가 폭발한다. 예: 남자 3명, 여자 30만명 → 남자 weight가 십만 단위. &lt;code&gt;glm&lt;/code&gt;이 안 돌아가고, 운 나쁘게 그 3명 중에 사건이 몰리면 분석이 왜곡된다.&lt;/p&gt;
&lt;p&gt;해결: &lt;strong&gt;분자에 marginal probability&lt;/strong&gt; 를 곱해 weight를 안정화.&lt;/p&gt;
$$w_i^{\text{stab}} = \frac{P(A_i=a)}{P(A_i=a \mid X_i)}$$&lt;ul&gt;
&lt;li&gt;결과에 영향을 주지 않으면서 분산을 안정화.&lt;/li&gt;
&lt;li&gt;weight의 평균이 1 → &lt;strong&gt;표본 수가 유지된다.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="왜-truncation"&gt;왜 truncation?&lt;/h3&gt;
&lt;p&gt;stabilized 후에도 극단적으로 큰 weight 케이스가 남는다. 다변량 공변량에서 특정 조합이 매우 드문 경우 (예: 20대 + 특정 질환 + 특정 약 동반).&lt;/p&gt;
&lt;p&gt;해결: &lt;strong&gt;99% percentile (또는 1% 양쪽 자르기)&lt;/strong&gt; 위 weight를 cap.&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;weight 4의 99% percentile, 100%가 32라고 하면 → 32 같은 outlier를 4로 바꾼다. 99% 이상은 다 4 4 4 …&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;논문 인용은 &lt;strong&gt;Peter Austin&lt;/strong&gt; 의 stabilization / truncation 원논문이 보통.&lt;/p&gt;
&lt;p&gt;R에선 보통 함수로 묶음 (&lt;code&gt;get_sw(formula, data, trunc_cut = 0.01)&lt;/code&gt; 같은 형태).&lt;/p&gt;
&lt;h2 id="cbps-covariate-balancing-propensity-score"&gt;CBPS (Covariate Balancing Propensity Score)&lt;/h2&gt;
&lt;p&gt;기본 IPTW로 balance가 안 맞을 때, balance를 명시적으로 maximize하도록 PS를 추정하는 변종 (GMM 기반).&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;&lt;strong&gt;거의 안 쓴다.&lt;/strong&gt;&amp;rdquo; JAMA 등 임상 저널 게재 사례가 적고, reviewer 설득이 까다롭다. 정책학에서는 종종 사용.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;대신 우리는 &lt;strong&gt;interaction term을 하나씩 넣어가며&lt;/strong&gt; balance를 맞춘다:&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="c1"&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;glm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;...&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;# balance 안 맞으면&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;glm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x3&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nf"&gt;I&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x1^2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;...&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;연속형 변수 제곱항, 변수 간 interaction을 시도해 SMD가 떨어질 때까지 조정.&lt;/p&gt;
&lt;h2 id="balance-check"&gt;Balance Check&lt;/h2&gt;
&lt;p&gt;매칭/가중 결과가 잘 맞았는지 확인하는 진단:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SMD (Standardized Mean Difference)&lt;/strong&gt; $&lt; 0.1$ — 균형 OK&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Love plot&lt;/strong&gt; — 변수별 SMD를 시각화 (matching/weighting 전·후 비교)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="robust-sandwich-estimator-매칭가중의-짝꿍"&gt;Robust Sandwich Estimator (매칭/가중의 짝꿍)&lt;/h2&gt;
&lt;p&gt;PSM, IPTW를 적용하면 신뢰구간이 인위적으로 줄어들어 &lt;strong&gt;p-value가 유의하게 잘못 나올 수 있다.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;원래 분산 공식은 어떤 역행렬 가정에 기반함.&lt;/li&gt;
&lt;li&gt;weight를 쓰면 그 가정이 깨지므로 &lt;strong&gt;분산이 과소추정&lt;/strong&gt;된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;해결: &lt;strong&gt;robust sandwich estimator&lt;/strong&gt; — 분산 식이 $I S I$ 모양 (한 항이 더 추가). 이름의 유래는 그 모양.&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;&lt;strong&gt;매칭/가중 ↔ Robust estimator&lt;/strong&gt; 짝꿍처럼 기억.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;추가 분석에서 robust estimator로 바꿨다가 결과가 뒤집히는 사례가 있어 반드시 같이 써야 함.&lt;/p&gt;
&lt;h2 id="hr-vs-risk-difference-ratio"&gt;HR vs Risk Difference Ratio&lt;/h2&gt;
&lt;p&gt;전통적으로 생존분석은 hazard ratio (HR) 만 보고했지만, 최근 trend는 &lt;strong&gt;HR + risk difference / risk ratio&lt;/strong&gt; 를 같이 보는 것.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HR은 proportional hazard 가정에 의존 → 가정 위배 시 해석 위험.&lt;/li&gt;
&lt;li&gt;Risk Ratio는 cumulative incidence curve의 각 시점에서의 risk를 비교 → 가정 더 자유로움.&lt;/li&gt;
&lt;li&gt;Time-specific hazard는 시간에 따라 위험이 변하지만, proportional hazard ratio는 그 평균 한 값으로 보고 → &lt;strong&gt;해석 모호&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="immortal-time-bias"&gt;Immortal Time Bias&lt;/h2&gt;
&lt;p&gt;치료군 vs 비치료군 비교 시 &lt;strong&gt;index date를 어떻게 잡느냐&lt;/strong&gt; 가 핵심.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;치료군의 index date = 치료 시점 → 그 시점까지 사망하지 않은 사람만 치료군에 들어감.&lt;/li&gt;
&lt;li&gt;비치료군은 그런 비대칭이 없음.&lt;/li&gt;
&lt;li&gt;결과적으로 치료군에 &amp;ldquo;사망하지 않을 운명&amp;rdquo; 의 시간(immortal time)이 부여됨 → bias.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;전통적 보정: &lt;strong&gt;landmark analysis&lt;/strong&gt; (landmark 이전 사망자 제외).&lt;/p&gt;
&lt;p&gt;문제:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;전체 모집단이 아니라 &amp;ldquo;landmark까지 살아남은 사람&amp;rdquo; 만의 효과 → &lt;strong&gt;selection bias&lt;/strong&gt;, 해석 어려움.&lt;/li&gt;
&lt;li&gt;Time-varying Cox 등 보조 도구가 필요해짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="clone-censor-weighting-ccw"&gt;Clone Censor Weighting (CCW)&lt;/h2&gt;
&lt;p&gt;최신 흐름. 한 사람을 &lt;strong&gt;양쪽 그룹에 복제&lt;/strong&gt;해 immortal time bias를 원천 제거한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A라는 사람이 90일째 treatment 받았다고 하자 → 그 사람은 90일까지 안 죽었다.&lt;/li&gt;
&lt;li&gt;Control 군에도 똑같은 가상의 사람을 0~90일까지 만든다.&lt;/li&gt;
&lt;li&gt;두 쪽이 동일한 0~90일을 가지므로 immortal time이 상쇄됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;장점:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Landmark 없이 immortal time bias 해결.&lt;/li&gt;
&lt;li&gt;같은 사람을 만들기 때문에 covariate balance도 자동 해결.&lt;/li&gt;
&lt;li&gt;매칭/IPTW 없이도 분석 가능.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;단점:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cloning된 자료 만드는 과정이 복잡 (경우의 수 많음).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CCW를 쓰면 IPCW (Inverse Probability of Censoring Weighting)&lt;/strong&gt; 가 필수 짝꿍.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="인과추론-방법-계층-trend"&gt;인과추론 방법 계층 (Trend)&lt;/h2&gt;
&lt;p&gt;분석의 중요도에 따라 방법이 점진적으로 강해진다:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;가벼운 분석 매칭 (PSM)
&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; IPTW
&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;중요한 분석 CCW + IPCW
&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; Target Trial Emulation (전체 framework)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;→ 중요한 분석에서는 &amp;ldquo;&lt;strong&gt;우리는 모든 bias를 제거했다&lt;/strong&gt;&amp;rdquo; 라고 method에 기술할 수 있을 정도까지 간다.&lt;/p&gt;
&lt;h2 id="target-trial-emulation-tte"&gt;Target Trial Emulation (TTE)&lt;/h2&gt;
&lt;p&gt;상위 framework. 임상시험 protocol처럼 &lt;strong&gt;연구 설계 시 조작적 정의를 엄격하게 명시&lt;/strong&gt;하는 일련의 과정을 정형화. PRISMA가 메타분석 reporting을 정형화한 것처럼, TTE는 후향적 인과추론의 reporting/설계 standard.&lt;/p&gt;
&lt;p&gt;명시 항목:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Eligibility criteria&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Treatment strategies&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Assignment procedure&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outcome / Follow-up&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Causal contrast&lt;/strong&gt; (intention-to-treat / per-protocol)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Statistical analysis&lt;/strong&gt; plan&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;→ TTE는 잘 구조화된 retrospective data 분석을 위한 framework. 위에서 다룬 PSM/IPTW/CCW를 &lt;strong&gt;어떻게 조합해 protocol을 설계할지&lt;/strong&gt;를 다룬다.&lt;/p&gt;
&lt;h2 id="요약"&gt;요약&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;인과추론의 출발점: &lt;strong&gt;카운터팩추얼 프레임 + 조건부 독립 가정&lt;/strong&gt; ($Y^a \perp A \mid X$)&lt;/li&gt;
&lt;li&gt;$X$ 를 통계 기법으로 처리하는 핵심 도구: &lt;strong&gt;PSM (ATT)&lt;/strong&gt; 과 &lt;strong&gt;IPTW (ATE)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;IPTW는 &lt;strong&gt;stabilized + truncation&lt;/strong&gt; 가 실무 국룰&lt;/li&gt;
&lt;li&gt;매칭/가중 후엔 &lt;strong&gt;robust sandwich estimator&lt;/strong&gt; 필수 짝꿍&lt;/li&gt;
&lt;li&gt;모형 안에 공변량 → conditional, weight로 보정 → marginal&lt;/li&gt;
&lt;li&gt;Balance 진단: SMD &amp;lt; 0.1, love plot&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Immortal time bias&lt;/strong&gt; 는 landmark가 전통 해법, 최근엔 &lt;strong&gt;CCW (+ IPCW)&lt;/strong&gt; 가 부상&lt;/li&gt;
&lt;li&gt;전체를 framework로 정형화한 게 &lt;strong&gt;Target Trial Emulation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;임상 trend: HR 단독 → HR + Risk Difference / Risk Ratio&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>