Skip to content

Commit

Permalink
updated survival 02 session
Browse files Browse the repository at this point in the history
  • Loading branch information
winterwang committed Jun 20, 2020
1 parent 71525df commit 2fb0782
Show file tree
Hide file tree
Showing 108 changed files with 2,516 additions and 2,458 deletions.
2 changes: 0 additions & 2 deletions 11-Survival-analysis.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ The Survival Analysis lectures were orgainised and taught by Professor [Ruth Keo
```


## 什麼是生存分析

```{r surv-Session01, child = ('11-Survival/Session01.Rmd')}
```

Expand Down
43 changes: 36 additions & 7 deletions 11-Survival/Session02.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,11 @@ $$

在每個觀察到事件的時間點 $t_1 < t_2 < t_3 < \cdots < t_K$,我們可以計算該時間點的生存方程,然後假定兩個事件的時間點之間的生存概率保持不變,就可以繪制出一個階梯形狀的生存曲線。也就是說,只有在觀察到事件的那些時間點上,生存方程得到定義。

```{example 11-Survival-analysis-ex2}
依舊是白血病患者數據,估計對照組的生存方程。在這個白血病患者數據中,對照組中並沒有刪失值,正好可以用來展示沒有刪失值時,生存方程的計算過程。對照組中有21名白血病患者,我們感興趣的事件是癌症是否復發,此時的生存時間是,復發前的時間(單位週)他們的數據被總結在下面的表格中,其中治療組的時間後面某些患者的星號 (\*\) 表示這些患者無復發,是刪失值:
```


**例子** 白血病患者數據,估計對照組的生存方程。在這個白血病患者數據中,對照組中並沒有刪失值,正好可以用來展示沒有刪失值時,生存方程的計算過程。對照組中有21名白血病患者,我們感興趣的事件是癌症是否復發,此時的生存時間是,復發前的時間(單位週)他們的數據被總結在下面的表格中,其中治療組的時間後面某些患者的星號 (\*\) 表示這些患者無復發,是刪失值:

<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
Expand Down Expand Up @@ -116,7 +119,10 @@ $$
(\#eq:surv-2-6)
$$

**例子:** 下表羅列了某個白血病患者治療組生存數據的 Kaplan-Meier 生存方程估計和他們的計算過程,其中值得注意的是,如果生存表格中某時間點 (年或月或日,取決於你的研究使用的時間刻度) 同時有事件 (event) 和刪失 (censoring),習慣上是默認刪失發生在事件發生之前:

```{example 11-Survival-analysis-ex1}
下表羅列了某個白血病患者治療組生存數據的 Kaplan-Meier 生存方程估計和他們的計算過程,其中值得注意的是,如果生存表格中某時間點 (年或月或日,取決於你的研究使用的時間刻度) 同時有事件 (event) 和刪失 (censoring),習慣上是默認刪失發生在事件發生之前:
```


```{r Surv02tab00, echo=FALSE, cache=TRUE, eval=FALSE}
Expand Down Expand Up @@ -377,15 +383,23 @@ $$

$$\hat{S}(t)^{\exp\{ \mp1.96 v(t)\}}$$


實際上在操作統計軟件的時候你並不需要特別精通上面的推導過程,但是要記得估計非參數法生存方程的 Kaplan-Meier 曲線時,它的95%信賴區間有兩種計算方式,如下圖 \@ref(fig:Survfig2-3) 中我們給白血病患者數據中的治療組患者的生存曲線增加了95%信賴區間。

```{r Survfig2-3, echo=FALSE, fig.asp=.7, fig.width=7, fig.cap='Kaplan-Meier survival curve (solid line) and 95-percent confidence limits (dotted lines) for leukaemia patients in the treatment group. (a) using Greenwoods formula, (b) using the alternative confidence limits.', fig.align='center', out.width='90%', cache=TRUE}
knitr::include_graphics(paste0(bugpath, "/img/KM-CI.png"))
```


## 另一種非參數法分析 -- 生命表格估計

Kaplan-Meier 估計的生存方程過程中,我們假定的是觀察到事件的時間點是間斷的,也就是哪個事件發生在哪個時間點,是可以被精確觀察到的。然而,現實比較骨感的時候,你的數據可能只有生命表格,也就是常見的如一年內本市死亡人口多少多少人這樣,事件發生在某個時間區間內的類型數據。因爲此時無法特定每個死亡人口發生死亡時的確切時間日期。此時可以利用生命表格計算。
Kaplan-Meier 估計的生存方程過程中,我們假定的是觀察到事件的時間點是間斷不連續的,也就是哪個事件發生在哪個時間點,是可以被精確觀察到的。然而,現實比較骨感的時候,你的數據可能只有生命表格,也就是常見的如一年內本市死亡人口多少多少人這樣,事件發生在某個時間區間內的類型數據。因爲此時無法特定每個死亡人口發生死亡時的確切時間日期。此時可以利用生命表格計算。

我們假定,某個隨訪時間可以被分爲許許多多的時間區間 $I_1, I_2, \cdots, I_K$,且這些時間區間並不一定需要等距。另外,用 $d_j$ 表示在時間區間 $I_j$ 中發生的事件次數,在該時間段的開始時,有 $n_j$ 個觀察對象 (number of individuals at risk at the start of interval $I_j$),其中在下一段時間開始之前,有 $m_j$ 個刪失值。用這些數學標記來表示時間段 $I_j$ 中發生事件的概率 (前提是這 $n_j$ 個觀察對象在時間段 $I_j$ 開始前還沒有發生事件):
我們假定,某個隨訪時間可以被分爲許許多多的時間區間 $I_1, I_2, \cdots, I_K$,且這些時間區間並不一定需要等間距。另外,用 $d_j$ 表示在時間區間 $I_j$ 中發生的事件次數,在該時間段的起始點的時刻,有 $n_j$ 個觀察對象 (number of individuals at risk at the start of interval $I_j$),其中在下一段時間開始之前,有 $m_j$ 個刪失值。用這些數學標記來表示時間段 $I_j$ 中發生事件的概率 (前提是這 $n_j$ 個觀察對象在時間段 $I_j$ 開始前還沒有發生事件):

$$p_j = \frac{d_j}{n_j - m_j/2}$$

分母中使用了 $m_j/2$ 是由於我們無法確定事件發生和刪失值發生的時間在這個時間段 $I_j$ 中是如何分布的,所以我們只能假定他們平均的分布在時間段 $I_j$ 中點的兩側。如此,生命表法計算的生存方程公式就是:
分母中使用了 $m_j/2$ 是由於我們無法確定事件發生和刪失值發生的時間在這個時間段 $I_j$ 中是如何分布的,所以我們只能假定/默認他們平均的分布在時間段 $I_j$ 中點的兩側。如此,生命表法計算的生存方程公式就是:

$$
\hat{S}(t) = \prod_{k = 1}^j(1-p_k) \text{ for } t_j \leqslant t < t_{j+1}
Expand Down Expand Up @@ -658,7 +672,7 @@ $$

## 計算累積風險度 cumulative hazard

累積風險度的定義爲:
本章目前位置着重使用非參數方法估計生存方程。事實上,非參數方法也可以用於估計累積風險度(cumulative hazard)。累積風險度的定義爲:

$$
H(t) = \int_0^t h(t)\text{d}t
Expand Down Expand Up @@ -688,6 +702,21 @@ $$
(\#eq:surv2-29)
$$

這個公式 \@ref(eq:surv2-29) 的估算結果和 Kaplan-Meier 估計的累積生存曲線會非常接近,且可以被認爲漸進相同 (symptotically equivalent)。
這個公式 \@ref(eq:surv2-29) 的估算結果和 Kaplan-Meier 估計的累積生存曲線會非常接近,且可以被認爲漸進相同 (asymptotically equivalent)。



```{r Survfig2-4, echo=FALSE, fig.asp=.7, fig.width=7, fig.cap='Leukaemia patient data: comparing Kaplan-Meier and Nelson-Aalen estimates of the cumulative hazard in the treatment and control groups.', fig.align='center', out.width='90%', cache=TRUE}
knitr::include_graphics(paste0(bugpath, "/img/Cumulativehazard.png"))
```


## 關於非參數分析法的一些延伸

目前本章節的例子主要關注了兩組之間的生存曲線的比較,但是很顯然它可以被擴展開去:

1. 非參數法比較生存曲線也可以用於比較2組以上的生存曲線。
2. 如果有一些我們希望能夠控制的變量恰好是分類型的變量(例如性別),那麼我們可以依據該非類型數據繪製每個分類的生存曲線進行視覺上的比較。
3. 很顯然當你有許多個分類變量需要進行調整的時候,2. 的方法就顯得過於耗時耗力。
4. 非參數法分析生存數據最明顯的缺陷是,使用非參數法我們只能進行粗略且無法定量的比較。也就是說當治療組與對照組存在生存曲線的差異時,我們沒辦法定量地描述其差異是多少。
5. 另外,非參數法分析生存數據的另一個缺點是,這種手段對連續型的暴露變量其實是束手無策的。某些情況下可能可以把連續變量人爲地分割成一個分類型變量,但這顯然並不能令人滿意。
46 changes: 23 additions & 23 deletions docs/ANOVA.html
Original file line number Diff line number Diff line change
Expand Up @@ -1170,35 +1170,34 @@
<li class="part"><span><b>X 生存分析 Survival Analysis</b></span></li>
<li class="chapter" data-level="71" data-path="surv-intro.html"><a href="surv-intro.html"><i class="fa fa-check"></i><b>71</b> 生存分析入門</a>
<ul>
<li class="chapter" data-level="71.1" data-path="surv-intro.html"><a href="surv-intro.html#什麼是生存分析"><i class="fa fa-check"></i><b>71.1</b> 什麼是生存分析</a></li>
<li class="chapter" data-level="71.2" data-path="surv-intro.html"><a href="surv-intro.html#本章概要"><i class="fa fa-check"></i><b>71.2</b> 本章概要</a></li>
<li class="chapter" data-level="71.3" data-path="surv-intro.html"><a href="surv-intro.html#什麼是生存分析-what-is-survival-analysis"><i class="fa fa-check"></i><b>71.3</b> 什麼是生存分析 What is survival analysis?</a></li>
<li class="chapter" data-level="71.4" data-path="surv-intro.html"><a href="surv-intro.html#生存數據在哪裏"><i class="fa fa-check"></i><b>71.4</b> 生存數據在哪裏</a></li>
<li class="chapter" data-level="71.5" data-path="surv-intro.html"><a href="surv-intro.html#生存數據分析之前要理清楚的問題"><i class="fa fa-check"></i><b>71.5</b> 生存數據分析之前要理清楚的問題</a></li>
<li class="chapter" data-level="71.6" data-path="surv-intro.html"><a href="surv-intro.html#生存數據的左右截尾"><i class="fa fa-check"></i><b>71.6</b> 生存數據的左右截尾</a>
<li class="chapter" data-level="71.1" data-path="surv-intro.html"><a href="surv-intro.html#本章概要"><i class="fa fa-check"></i><b>71.1</b> 本章概要</a></li>
<li class="chapter" data-level="71.2" data-path="surv-intro.html"><a href="surv-intro.html#什麼是生存分析-what-is-survival-analysis"><i class="fa fa-check"></i><b>71.2</b> 什麼是生存分析 What is survival analysis?</a></li>
<li class="chapter" data-level="71.3" data-path="surv-intro.html"><a href="surv-intro.html#生存數據在哪裏"><i class="fa fa-check"></i><b>71.3</b> 生存數據在哪裏</a></li>
<li class="chapter" data-level="71.4" data-path="surv-intro.html"><a href="surv-intro.html#生存數據分析之前要理清楚的問題"><i class="fa fa-check"></i><b>71.4</b> 生存數據分析之前要理清楚的問題</a></li>
<li class="chapter" data-level="71.5" data-path="surv-intro.html"><a href="surv-intro.html#生存數據的左右截尾"><i class="fa fa-check"></i><b>71.5</b> 生存數據的左右截尾</a>
<ul>
<li class="chapter" data-level="71.6.1" data-path="surv-intro.html"><a href="surv-intro.html#左側截尾數據-left-truncation"><i class="fa fa-check"></i><b>71.6.1</b> 左側截尾數據 left-truncation</a></li>
<li class="chapter" data-level="71.5.1" data-path="surv-intro.html"><a href="surv-intro.html#左側截尾數據-left-truncation"><i class="fa fa-check"></i><b>71.5.1</b> 左側截尾數據 left-truncation</a></li>
</ul></li>
<li class="chapter" data-level="71.7" data-path="surv-intro.html"><a href="surv-intro.html#初步分析生存數據"><i class="fa fa-check"></i><b>71.7</b> 初步分析生存數據</a></li>
<li class="chapter" data-level="71.8" data-path="surv-intro.html"><a href="surv-intro.html#初步描述生存數據"><i class="fa fa-check"></i><b>71.8</b> 初步描述生存數據</a>
<li class="chapter" data-level="71.6" data-path="surv-intro.html"><a href="surv-intro.html#初步分析生存數據"><i class="fa fa-check"></i><b>71.6</b> 初步分析生存數據</a></li>
<li class="chapter" data-level="71.7" data-path="surv-intro.html"><a href="surv-intro.html#初步描述生存數據"><i class="fa fa-check"></i><b>71.7</b> 初步描述生存數據</a>
<ul>
<li class="chapter" data-level="71.8.1" data-path="surv-intro.html"><a href="surv-intro.html#生存方程"><i class="fa fa-check"></i><b>71.8.1</b> 生存方程</a></li>
<li class="chapter" data-level="71.8.2" data-path="surv-intro.html"><a href="surv-intro.html#風險度方程"><i class="fa fa-check"></i><b>71.8.2</b> 風險度方程</a></li>
<li class="chapter" data-level="71.8.3" data-path="surv-intro.html"><a href="surv-intro.html#概率密度方程"><i class="fa fa-check"></i><b>71.8.3</b> 概率密度方程</a></li>
<li class="chapter" data-level="71.8.4" data-path="surv-intro.html"><a href="surv-intro.html#各方程之間的關系"><i class="fa fa-check"></i><b>71.8.4</b> 各方程之間的關系</a></li>
<li class="chapter" data-level="71.7.1" data-path="surv-intro.html"><a href="surv-intro.html#生存方程"><i class="fa fa-check"></i><b>71.7.1</b> 生存方程</a></li>
<li class="chapter" data-level="71.7.2" data-path="surv-intro.html"><a href="surv-intro.html#風險度方程"><i class="fa fa-check"></i><b>71.7.2</b> 風險度方程</a></li>
<li class="chapter" data-level="71.7.3" data-path="surv-intro.html"><a href="surv-intro.html#概率密度方程"><i class="fa fa-check"></i><b>71.7.3</b> 概率密度方程</a></li>
<li class="chapter" data-level="71.7.4" data-path="surv-intro.html"><a href="surv-intro.html#各方程之間的關系"><i class="fa fa-check"></i><b>71.7.4</b> 各方程之間的關系</a></li>
</ul></li>
<li class="chapter" data-level="71.9" data-path="surv-intro.html"><a href="surv-intro.html#生存時間的參數分布"><i class="fa fa-check"></i><b>71.9</b> 生存時間的參數分布</a>
<li class="chapter" data-level="71.8" data-path="surv-intro.html"><a href="surv-intro.html#生存時間的參數分布"><i class="fa fa-check"></i><b>71.8</b> 生存時間的參數分布</a>
<ul>
<li class="chapter" data-level="71.9.1" data-path="surv-intro.html"><a href="surv-intro.html#exponentialdist"><i class="fa fa-check"></i><b>71.9.1</b> 指數分布</a></li>
<li class="chapter" data-level="71.9.2" data-path="surv-intro.html"><a href="surv-intro.html#weibulldist"><i class="fa fa-check"></i><b>71.9.2</b> Weibull 分布</a></li>
<li class="chapter" data-level="71.8.1" data-path="surv-intro.html"><a href="surv-intro.html#exponentialdist"><i class="fa fa-check"></i><b>71.8.1</b> 指數分布</a></li>
<li class="chapter" data-level="71.8.2" data-path="surv-intro.html"><a href="surv-intro.html#weibulldist"><i class="fa fa-check"></i><b>71.8.2</b> Weibull 分布</a></li>
</ul></li>
<li class="chapter" data-level="71.10" data-path="surv-intro.html"><a href="surv-intro.html#極大似然法估計"><i class="fa fa-check"></i><b>71.10</b> 極大似然法估計</a></li>
<li class="chapter" data-level="71.11" data-path="surv-intro.html"><a href="surv-intro.html#practical-survival-01"><i class="fa fa-check"></i><b>71.11</b> Practical Survival 01</a>
<li class="chapter" data-level="71.9" data-path="surv-intro.html"><a href="surv-intro.html#極大似然法估計"><i class="fa fa-check"></i><b>71.9</b> 極大似然法估計</a></li>
<li class="chapter" data-level="71.10" data-path="surv-intro.html"><a href="surv-intro.html#practical-survival-01"><i class="fa fa-check"></i><b>71.10</b> Practical Survival 01</a>
<ul>
<li class="chapter" data-level="71.11.1" data-path="surv-intro.html"><a href="surv-intro.html#生存分析的時間尺度"><i class="fa fa-check"></i><b>71.11.1</b> 生存分析的時間尺度</a></li>
<li class="chapter" data-level="71.11.2" data-path="surv-intro.html"><a href="surv-intro.html#擬合最簡單的指數分布生存數據"><i class="fa fa-check"></i><b>71.11.2</b> 擬合最簡單的指數分布生存數據</a></li>
<li class="chapter" data-level="71.11.3" data-path="surv-intro.html"><a href="surv-intro.html#探索服從-weibull-分布時風險度方程的曲線"><i class="fa fa-check"></i><b>71.11.3</b> 探索服從 Weibull 分布時風險度方程的曲線</a></li>
<li class="chapter" data-level="71.11.4" data-path="surv-intro.html"><a href="surv-intro.html#探索-對數邏輯-log-logistic-分布時風險度方程曲線會有哪些特性"><i class="fa fa-check"></i><b>71.11.4</b> 探索 對數邏輯 (log-logistic) 分布時,風險度方程曲線會有哪些特性?</a></li>
<li class="chapter" data-level="71.10.1" data-path="surv-intro.html"><a href="surv-intro.html#生存分析的時間尺度"><i class="fa fa-check"></i><b>71.10.1</b> 生存分析的時間尺度</a></li>
<li class="chapter" data-level="71.10.2" data-path="surv-intro.html"><a href="surv-intro.html#擬合最簡單的指數分布生存數據"><i class="fa fa-check"></i><b>71.10.2</b> 擬合最簡單的指數分布生存數據</a></li>
<li class="chapter" data-level="71.10.3" data-path="surv-intro.html"><a href="surv-intro.html#探索服從-weibull-分布時風險度方程的曲線"><i class="fa fa-check"></i><b>71.10.3</b> 探索服從 Weibull 分布時風險度方程的曲線</a></li>
<li class="chapter" data-level="71.10.4" data-path="surv-intro.html"><a href="surv-intro.html#探索-對數邏輯-log-logistic-分布時風險度方程曲線會有哪些特性"><i class="fa fa-check"></i><b>71.10.4</b> 探索 對數邏輯 (log-logistic) 分布時,風險度方程曲線會有哪些特性?</a></li>
</ul></li>
</ul></li>
<li class="chapter" data-level="72" data-path="nonparametric.html"><a href="nonparametric.html"><i class="fa fa-check"></i><b>72</b> 非參數法分析生存數據</a>
Expand All @@ -1217,7 +1216,8 @@
<li class="chapter" data-level="72.6.1" data-path="nonparametric.html"><a href="nonparametric.html#the-log-rank-test"><i class="fa fa-check"></i><b>72.6.1</b> The log rank test</a></li>
</ul></li>
<li class="chapter" data-level="72.7" data-path="nonparametric.html"><a href="nonparametric.html#計算累積風險度-cumulative-hazard"><i class="fa fa-check"></i><b>72.7</b> 計算累積風險度 cumulative hazard</a></li>
<li class="chapter" data-level="72.8" data-path="nonparametric.html"><a href="nonparametric.html#practical-survival-02"><i class="fa fa-check"></i><b>72.8</b> Practical Survival 02</a></li>
<li class="chapter" data-level="72.8" data-path="nonparametric.html"><a href="nonparametric.html#關於非參數分析法的一些延伸"><i class="fa fa-check"></i><b>72.8</b> 關於非參數分析法的一些延伸</a></li>
<li class="chapter" data-level="72.9" data-path="nonparametric.html"><a href="nonparametric.html#practical-survival-02"><i class="fa fa-check"></i><b>72.9</b> Practical Survival 02</a></li>
</ul></li>
<li class="chapter" data-level="73" data-path="surv-reg.html"><a href="surv-reg.html"><i class="fa fa-check"></i><b>73</b> 生存數據中的回歸模型</a>
<ul>
Expand Down
Loading

0 comments on commit 2fb0782

Please sign in to comment.