天天看點

Restricted cubic splines

本文主要譯自:Restricted cubic splines, 翻譯加上自己的了解,整理如下。

在統計學裡,splines 技術用來對變量進行轉換。有時候我們會将連續性變量轉化為分類變量(啞變量化),因為該連續性變量與結局變量之間的線性關系比較差。比如建立疾病預後模型時,年齡這個變量通常會被通過選取一個合适的界值轉化為分類變量。然而,很多大佬并不推薦使用分類變量。生統大佬 Frank Harrell 教授在 Regression Modeling Strategies 一書中就有專門一個小标題是 Avoiding Categorization,并指出推薦使用splines 技巧。很多大佬都認為 categorizing (which is the dummy variable method) isn’t a good method. 轉為分類變量的這種方法主要有2個缺陷:第一是會壓縮變量的效應(損失了大量方差資訊),第二是會出現跳躍(界點附近的跳躍會使模型拟合變差)。Restricted cubic splines (RCS) 可以很好地解決這些問題,但是RCS有個最大的缺陷就是,生物學解釋性較差。

處理非線性關系的方法有很多,rms包中rms.trans提供的方法就有好幾種,其中RCS是最常用的政策,以下表格進行了大緻彙總:

Restricted cubic splines

RCS有個問題:選擇多少個knots(節點)以及選擇哪些位置作為 knots。Frank Harrell 教授的推薦如下:

N<100 時,選擇4個knots,分别標明在:5%, 35%, 65% 和 95% 這4個百分位點處。

N≥100 時,選擇5個knots,分别標明在:5%, 27.5%, 50%, 72.5% 和 95% 這5個百分位點處。

Restricted cubic splines

啞變量化(直接轉成分類變量)的效果:

Restricted cubic splines

解決“效應壓縮”問題(恢複方差),效果:

Restricted cubic splines

解決“跳躍”問題(界點前後保持連續),即采用 restricted linear spline 變換,效果:

Restricted cubic splines

用曲線技術平滑化(多項式平滑),效果:

Restricted cubic splines

筆者曾試圖自己寫函數變換(包括多項式變換、指數變換等)進行預處理,但是比較麻煩,需要預先評估變換的類型,而RCS這種方式,通常都比較有效,還是回歸到用RCS政策吧。

RCS相關的工具包:rms包的rcs函數、splines包的bs函數等。

參考資料

Restricted cubic splines

Frank Harrell. Regression Modeling Strategies. Springer

Restricted Cubic Spline Regression: A Brief Introduction