diff --git a/docs/KSIC2025/index.html b/docs/KSIC2025/index.html index 19052a4..ffa6760 100644 --- a/docs/KSIC2025/index.html +++ b/docs/KSIC2025/index.html @@ -388,6 +388,10 @@ margin-right: 0; } + + + +
@@ -425,17 +429,665 @@

자기소개

Executive summary

-
    -
  1. Baseline 맞춘다(X), RCT를 모방한다(O)

  2. -
  3. Matching, IPTW의 장단점을 이해한다

  4. -
+

Baseline 맞춘다(X), RCT를 모방한다(O)

-

openstat.ai 에서 2그룹 매칭 & IPTW 후 분석가능

-

Clone Censor weight라는 새로운 방법론

+

2그룹 MatchIt, 3그룹 twang 패키지

+ +

분석 이슈

+ +
+
+

Causal inference

+

목표는 Causal inference, RCT like design

+ +
+
+

PS matching

+

Propensity score란?

+ +

따라서, 치료군의 PS와 비슷한 사람을 대조군에서 뽑으면 두 그룹의 Baseline이 비슷해지겠군!

+ +
+
+

RCT 관점

+

RCT: 어떤 사람이 두 군에 배정될 확률이 50:50

+

PS matching: PS가 0.7인 사람이 두 군에 배정될 확률? 50:50

+ +

그럼 PS matching하면 RCT만큼 인정받을 수 있다?

+ +
+
+

IPTW

+

Inverse probability of treatment weighting

+ +
+
+

RCT 관점

+

PS 0.7인 사람이 각 군에 속할 확률은?

+ +

\[0.7 \times \frac{1}{0.7} = 0.3 \times \frac{1}{0.3} = 1\]

+ +

그럼 IPTW는 ATE vs ATT?

+
+
+

ATE weight, ATT weight

+

ATE weight

+

\[ + w_i \text{ for } ATE= + \begin{cases} + \frac{1}{p_i} & \text{if treated} \\ + \frac{1}{1 - p_i} & \text{if control} + \end{cases} + \] 전체 샘플(Treated + Control) 의 2배를 랜덤하게 배정한 RCT

+

ATT weight

+

\[ + w_i \text{ for } ATT = + \begin{cases} + 1 & \text{if treated} \\ + \frac{p_i}{1 - p_i} & \text{if control} + \end{cases} + \] Treated + Treated 를 랜덤하게 배정

+
+
+

ATT& ATE

+ +
+
+

TAVI vs Surgery: Example data

+
+
+
+ +
+
+
+
+
+

ATT& ATE

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nameageTAVISurvivalPropensity_scoreATEATT
빈센조35110.17185675.8188011.0000000
루카스48010.31630921.4626490.4626495
제이슨50010.34356641.5233830.5233834
토마스53100.38641092.5879191.0000000
리오넬55010.41603301.7124260.7124256
카밀라68110.61364491.6296071.0000000
아칸지70110.64244781.5565471.0000000
에밀리75010.70979033.4457842.4457837
노이어80100.76900951.3003741.0000000
호날두85100.81922241.2206701.0000000
앨리스40010.22025801.2824750.2824754
45010.27771941.3845040.3845035
찰리52000.37189481.5920900.5920901
다니엘60100.49232102.0311951.0000000
엘리자베스62110.52314001.9115341.0000000
프랭크67010.59892492.4932981.4932985
그레이스73110.68374171.4625411.0000000
헨리77010.73452633.7668522.7668518
이사벨82100.79019011.2655181.0000000
제임스88100.84502531.1833961.0000000
42010.24217001.3195570.3195571
마리아49010.32979481.4920800.4920803
피터54100.40113172.4929471.0000000
사라59100.47691872.0967931.0000000
데이비드61010.50773782.0314381.0314379
제니퍼46010.29025821.4089630.4089632
케빈51110.35760632.7963711.0000000
레베카76010.72232783.6013692.6013690
토니81100.77978251.2824091.0000000
엘리83100.80023181.2496381.0000000
스티브37110.19012775.2596221.0000000
안나47010.30312561.4349790.4349789
마이클51010.35760631.5566780.5566777
제시카68100.61364491.6296071.0000000
84110.80990851.2347071.0000000
소피아59010.47691871.9117490.9117489
브라이언62110.52314001.9115341.0000000
나탈리78010.74637713.9428612.9428614
대니얼84100.80990851.2347071.0000000
엘레나89100.85293111.1724281.0000000
로버트39010.20984901.2655810.2655808
줄리아46010.29025821.4089630.4089632
스콧53000.38641091.6297550.6297551
니콜77100.73452631.3614221.0000000
앤드류75110.70979031.4088671.0000000
케이트54010.40113171.6698160.6698162
라이언59110.47691872.0967931.0000000
미셸86010.82817685.8199354.8199354
조셉88100.84502531.1833961.0000000
엘레나83100.80023181.2496381.0000000
+ + +
+
+
+
+

ATT& ATE

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Treatment, Control 그룹의 Age 비교
그룹TreatmentControl
ATT7069.04
ATE62.1763.1
Original Cohort70(63.72)56.35(63.72)
+ + +
+
+
+
+

IPTW win?

+

IPTW는 ATE니까 무조건 이걸해야겠네?

+ +

Truncated weight

+ +

분석난이도 증가

+ +
+
+

+
+
s1 <- svykm(Surv(time, status > 0) ~ sex, design = dpbc)
+jskm::svyjskm(s1, pval = T, table = T, design = dpbc)
+ +
+

log-rank test(X), survey rank test(O)

日本ブログレビュー

@@ -460,64 +1112,64 @@

日本ブログレビュー

display:block!important; }
-
+

-
## Gaussian
-glm_gaussian <- glm(mpg~cyl + disp, data = mtcars)
-glmshow.display(glm_gaussian, decimal = 2)
-
$first.line
-[1] "Linear regression predicting mpg\n"
-
-$table
-     crude coeff.(95%CI)   crude P value adj. coeff.(95%CI)    adj. P value
-cyl  "-2.88 (-3.51,-2.24)" "< 0.001"     "-1.59 (-2.98,-0.19)" "0.034"
-disp "-0.04 (-0.05,-0.03)" "< 0.001"     "-0.02 (-0.04,0)"     "0.054"
-
-$last.lines
-[1] "No. of observations = 32\nR-squared = 0.7596\nAIC value = 167.1456\n\n"
+
## Gaussian
+glm_gaussian <- glm(mpg~cyl + disp, data = mtcars)
+glmshow.display(glm_gaussian, decimal = 2)
+
$first.line
+[1] "Linear regression predicting mpg\n"
+
+$table
+     crude coeff.(95%CI)   crude P value adj. coeff.(95%CI)    adj. P value
+cyl  "-2.88 (-3.51,-2.24)" "< 0.001"     "-1.59 (-2.98,-0.19)" "0.034"
+disp "-0.04 (-0.05,-0.03)" "< 0.001"     "-0.02 (-0.04,0)"     "0.054"
+
+$last.lines
+[1] "No. of observations = 32\nR-squared = 0.7596\nAIC value = 167.1456\n\n"
-
## Binomial
-glm_binomial <- glm(vs~cyl + disp, data = mtcars, family = binomial)
-glmshow.display(glm_binomial, decimal = 2)
-
$first.line
-[1] "Logistic regression predicting vs\n"
- 
-$table
-     crude OR.(95%CI)   crude P value adj. OR.(95%CI)    adj. P value
-cyl  "0.2 (0.08,0.56)"  "0.002"       "0.15 (0.02,1.02)" "0.053"     
-disp "0.98 (0.97,0.99)" "0.002"       "1 (0.98,1.03)"    "0.715"     
-
-$last.lines
-[1] "No. of observations = 32\nAIC value = 23.8304\n\n"
+
## Binomial
+glm_binomial <- glm(vs~cyl + disp, data = mtcars, family = binomial)
+glmshow.display(glm_binomial, decimal = 2)
+
$first.line
+[1] "Logistic regression predicting vs\n"
+ 
+$table
+     crude OR.(95%CI)   crude P value adj. OR.(95%CI)    adj. P value
+cyl  "0.2 (0.08,0.56)"  "0.002"       "0.15 (0.02,1.02)" "0.053"     
+disp "0.98 (0.97,0.99)" "0.002"       "1 (0.98,1.03)"    "0.715"     
+
+$last.lines
+[1] "No. of observations = 32\nAIC value = 23.8304\n\n"

Subgroup analysis

-
TableSubgroupMultiGLM(status ~ sex, var_subgroups = c("kk", "kk1"), data = lung, family = "binomial")
-
    Variable Count Percent           OR Lower Upper P value P for interaction
-sex2  Overall   228     100         3.01  1.65  5.47  <0.001              <NA>
-1          kk  <NA>    <NA>         <NA>  <NA>  <NA>    <NA>             0.476
-2           0    38    16.9            7   0.7 70.03   0.098              <NA>
-3           1   187    83.1         2.94  1.55  5.57   0.001              <NA>
-4         kk1  <NA>    <NA>         <NA>  <NA>  <NA>    <NA>             0.984
-5           0     8     3.6 314366015.19     0   Inf   0.997              <NA>
-6           1   217    96.4         2.85  1.55  5.25   0.001              <NA>
-
TableSubgroupMultiCox(Surv(time, status) ~ sex, var_subgroups = c("kk", "kk1"), data = lung)
-
    Variable Count Percent Point Estimate Lower Upper sex=1 sex=2 P value P for interaction
-sex  Overall   228     100           1.91  1.14   3.2   100   100   0.014              <NA>
-1       <NA>  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>              <NA>
-2         kk  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>             0.525
-3          0    38    16.9           2.88  0.31 26.49    10   100    0.35              <NA>
-4          1   187    83.1           1.84  1.08  3.14   100   100   0.026              <NA>
-5       <NA>  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>              <NA>
-6        kk1  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>             0.997
-7          0     8     3.6           <NA>  <NA>  <NA>     0   100    <NA>              <NA>
-8          1   217    96.4           1.88  1.12  3.17   100   100   0.018              <NA>
+
TableSubgroupMultiGLM(status ~ sex, var_subgroups = c("kk", "kk1"), data = lung, family = "binomial")
+
    Variable Count Percent           OR Lower Upper P value P for interaction
+sex2  Overall   228     100         3.01  1.65  5.47  <0.001              <NA>
+1          kk  <NA>    <NA>         <NA>  <NA>  <NA>    <NA>             0.476
+2           0    38    16.9            7   0.7 70.03   0.098              <NA>
+3           1   187    83.1         2.94  1.55  5.57   0.001              <NA>
+4         kk1  <NA>    <NA>         <NA>  <NA>  <NA>    <NA>             0.984
+5           0     8     3.6 314366015.19     0   Inf   0.997              <NA>
+6           1   217    96.4         2.85  1.55  5.25   0.001              <NA>
+
TableSubgroupMultiCox(Surv(time, status) ~ sex, var_subgroups = c("kk", "kk1"), data = lung)
+
    Variable Count Percent Point Estimate Lower Upper sex=1 sex=2 P value P for interaction
+sex  Overall   228     100           1.91  1.14   3.2   100   100   0.014              <NA>
+1       <NA>  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>              <NA>
+2         kk  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>             0.525
+3          0    38    16.9           2.88  0.31 26.49    10   100    0.35              <NA>
+4          1   187    83.1           1.84  1.08  3.14   100   100   0.026              <NA>
+5       <NA>  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>              <NA>
+6        kk1  <NA>    <NA>           <NA>  <NA>  <NA>  <NA>  <NA>    <NA>             0.997
+7          0     8     3.6           <NA>  <NA>  <NA>     0   100    <NA>              <NA>
+8          1   217    96.4           1.88  1.12  3.17   100   100   0.018              <NA>

中国での動画やブログレビュー

@@ -528,7 +1180,7 @@

中国での動画やブログレビュー

-
+

@@ -554,7 +1206,7 @@

display:block!important; }
-
+