MENU

【無料プレゼント付き】学会発表・論文投稿に必要な統計を最短で学ぶことができる無料メルマガ

R で 制限付き 3 次スプライン曲線を二値アウトカムの場合に書く方法

制限付き 3 次スプライン曲線は、データの非線形関係をとらえるために書いてみるグラフのこと

二値のアウトカムの場合、R でどのように書くか紹介

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

目次

制限付き 3 次スプライン曲線とは

制限付き 3 次スプライン曲線は、データの非線形関係をとらえるために用いられる曲線グラフのこと

ノット(knots)を設定し、その間で 3 次関数を適用する

ただし、末端部分、つまり、最小値と最大値付近では、線形とするように制限を付けることで、過剰適合(オーバーフィッティング)を防いでいる

ノットの間に 3 次関数を適用することと、末端部分で線形に制限することから、制限付き 3 次スプラインと呼ばれる

他のスプラインとの違いと使い分け

スプラインには、ほかに、B スプライン、罰則付きスプライン(penalized spline)があるが、それらとの違いと使い分けについてまとめてみる

制限付き 3 次スプラインB スプライン罰則付きスプライン
概要両端を線形に制約し、適度に柔軟性を持たせる関数の中に局所的な関数(基底関数)を用いたスムージングB スプラインを使いつつ、過剰適合を抑制する罰則(ペナルティ)を導入
特徴ノット数が少なく、解釈しやすい過剰適合を抑えるため、ノット数の調整が必要過剰適合を抑えながらスムーズな曲線が得られる
使い分け疫学・医療分野でよく使われる高次元データの非線形モデリング高次元データの非線形モデリング、時系列データ

>>もう統計で悩むのは終わりにしませんか? 

↑1万人以上の医療従事者が購読中

LOESS との違いと使い分け

LOESS (Locally weighted polynomial regression curve)(ロゥエスみたいに発音する)もスプライン曲線に似ている

どちらもデータのスムージング(平滑化)手法の一種で、区間ごとに多項式をフィットさせることで、曲線を作るのは共通

違いをまとめると以下のとおり

項目スプラインLOESS
アプローチグローバル(全体的)ローカル(局所的)
モデル構築方法結節点(ノット knots)を設定し、区間ごとに多項式をつなぐ局所的に移動窓を取り、回帰モデルを適用する
関数・滑らかさの制約全体としてスムーズな関数を作るよう制約(e.g., 連続性、微分可能性)局所的に回帰を繰り返すので、特定の滑らかさ制約はなし
計算コスト比較的低い(行列計算ベース)高い(局所回帰を繰り返し計算)
おすすめ場面(使い分け)全体のトレンドをスムーズに捉えたいとき局所的なデータの変動を捉えたいとき

二値アウトカムの場合 R で制限付き 3 次スプラインを書く方法

二値アウトカムなので、ロジスティック回帰で、制限付き 3 次スプライン曲線を書く

rms パッケージを用いる

まずは、rms パッケージをインストールする

# R コンソールに以下を書いてエンター
install.packages("rms")

Japan Yonezawa サーバーからダウンロードしてインストールする

今回サンプルとして使用するのは、EZR の公式マニュアルに付属している Imatinib_Stop というデータセット

イマチニブの中止にかかわる要因の臨床研究データである

EZR の公式マニュアルはこちら → EZRでやさしく学ぶ統計学 改訂3版 〜EBMの実践から臨床研究まで〜

以下のようなスクリプトで、制限付き 3 次スプライン曲線が書ける

# rms パッケージを呼び出す
library(rms)

# データセット名を df とする(これは任意)
df <- Imatinib_Stop

# lrm 関数で計算する; X 軸にしたい連続データに対して、rcs 項を使用する
lrm2 <- lrm(Stop400 ~ rcs(Age) + Sex, data=df)
print(lrm2)

# グラフ描画の準備(rms パッケージを使ってグラフを書く場合のお決り)
ddist <- datadist(df)
options(datadist="ddist")

# グラフを描画する(Y 軸を対数オッズ比にするか、オッズ比にするか、割合にするかは用途による
plot(Predict(lrm2, Age), ylab="log Odds Ratio") # 対数オッズ比
plot(Predict(lrm2, Age, fun=exp), ylab="Odds Ratio" ) # オッズ比
plot(Predict(lrm2, Age, fun=plogis), ylab="Probability") # 割合

rms パッケージのロジスティック回帰関数は、lrm 関数である

X 軸にしたい連続データの説明変数に rcs 項を適用する

rcs は Restricted Cubic Spline(制限付き 3 次スプライン)の頭文字である

Y 軸を割合にした場合のグラフを以下に示す

Y 軸が二値アウトカムの推定発生割合、X 軸が年齢とした、制限付き 3 次スプライン曲線である

青線が推定値で、灰色の影が 95 % 信頼区間である

別の計算例であるが、Y 軸をオッズ比にした場合の例を以下に挙げる

オッズ比の場合、Y 軸を対数表記にしないと、上下の幅が異なって見える

対数オッズ比の場合は、上下の幅が同じになる

割合かオッズ比か

割合のグラフにするかオッズ比のグラフにするかは、目的に応じて異なる

項目割合オッズ比
メリット直感的に理解しやすい個人の発生リスクが把握できる
デメリット個人レベルのリスクを直接的に示せない有病割合が高い疾患は過大評価になる
おすすめ場面全体の傾向を示す必要がある場合個別リスクを示す必要がある場合
適用場面公衆衛生、疫学、集団レベル傾向の把握臨床場面、リスク因子の特定

まとめ

R で 制限付き 3 次スプライン曲線の書き方について解説した

制限付き 3 次スプラインは、末端部分を線形に制限して、ノット数も抑えて、解釈しやすくしているモデルで、疫学・医療分野で多く使われている

参考になれば

参考記事

BMI, hypertension in Palau, restricted cubic spline method

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

コメント

コメントする

目次