✏️
Restricted Cubic Spline in R
勉強目標:Restricted Cubic SplineをRで実装できるようになりましょう。
Restricted Cubic Splineの解説は、下記のHo 2023のレビュー論文解説を参照してください。
今回はRでのRestricted Cubic Splineの実装を行います。

サンプルデータは以下のページのものを使用します。

実装
- まずはパッケージの読み込みから
使用するデータセットの準備をします。
使用するdatasetのコード
データの下準備をします。
詳しくはこちら
このコードは、R言語におけるデータ分析を行っています。詳しく説明すると、このコードは関数と関数を使っています。これらは、特に回帰モデリングと予測モデル構築に役立つツールを提供するパッケージ(Regression Modeling Strategies)の一部です。
- : この行は、データフレームの要約統計(各変数の範囲、最小値、最大値、四分位数など)を計算し、その結果をというオブジェクトに保存します。これにより、のデータ分布を簡単に参照できます。
- : この行は、パッケージのデフォルト設定を変更します。具体的には、オプションをに設定することで、パッケージの関数がオブジェクトをデフォルトで参照するようになります。これにより、後続のモデリング関数(例えばやなど)がオブジェクトに格納されたデータ分布情報を自動的に利用できるようになります。
全体として、この2行のコードはデータの分布情報を保存し、その情報をデフォルトで利用する設定を行っていると言えます。これにより、データの特性を反映したより精度の高いモデリングが可能となります。
Knotを設定しましょう。スプラインの変曲点を設定します。
詳しくはこちら
- : これは、データフレームの列の5%、25%、75%、95%分位数を計算し、その結果をというオブジェクトに保存しています。このは後続のスプライン関数(rcs)で使用されます。
- : この行は、上記で計算された分位数を表示します。
まずは単変量回帰
詳しくはこちら
あなたのコードは、R言語のパッケージを使用して制約付き立方スプライン (RCS) を特徴としたロジスティック回帰モデルを作成し、その予測をプロットするものです。
- :これは、データフレームの列の平均を計算します。
- :関数を使用してロジスティック回帰モデルを作成します。を目的変数、のRCS変換を説明変数としています。
- :作成したモデルに基づき、の予測をプロットします。
- :作成したプロットを出力します。
- :ロジスティック回帰モデルの予測値を指数関数()で変換し、その結果をプロットします。とすることで、基準カテゴリと比較してリスクまたはオッズの変化量を表示します。
- :上記の予測結果をに保存します。

次に多変量でやってみます datadistは再度走らせる必要性があります。
詳しくはこちら
あなたのコードは、R言語のパッケージを使用して制約付き立方スプライン (RCS) を特徴とした多変量ロジスティック回帰モデルを作成し、その予測をプロットするものです。具体的には以下のような処理を行っています:
- : 関数を用いて、データフレームの変数の要約統計量を計算します。この結果は、後続の関数で予測を行う際に使用されます。
- : オプションを設定します。このオプションにより、パッケージの関数は、に保存されたデータの要約統計量を参照することができます。
- : 関数を使用して多変量ロジスティック回帰モデルを作成します。目的変数は、説明変数は(RCS変換される)、、、、、、です。
- : 作成したモデルに基づき、の予測をプロットします。
- : 作成したプロットを出力します。
- : ロジスティック回帰モデルの予測値を指数関数()で変換し、その結果をプロットします。とすることで、基準カテゴリと比較してリスクまたはオッズの変化量を表示します。
- : 上記の予測結果をに保存します。

Reference pointの設定。ここでは来院時体温36.5度に設定をします。
詳しくはこちら
このRのコードは、制限立方スプラインを使用したロジスティック回帰モデルの基準点(reference point)を変更して、その結果を更新しています。
具体的には以下のような操作が行われています:
- : ここでは、の基準点を36.5に設定しています。この操作により、の値が基準点からどれだけ離れているかに基づいた結果が得られます。
- : 関数を使用して、新しい基準点を考慮に入れたモデルの更新を行っています。これにより、36.5という基準点を基にしたの効果がモデルに反映されます。
全体として、このコードは、特定の基準点(ここでは=36.5)を基にした分析を可能にします。これにより、基準点からどれだけ離れたときにがどの程度変わるか、といった分析を行うことができます。
ではグラフにしてみましょう。
詳しくはこちら


おまけ 線形か非線形か:作成中です。
全codeのコピペはこちらから
以上です。