統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

B スプライン曲線を描く方法

曲線のあてはめの一つ、B スプライン曲線を描く方法。

EZR のメニューを借りて実施する。

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


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

B スプライン曲線を描く方法の概要

概要は以下の通り。

  1. EZRの標準メニューからモデルのあてはめでbs()関数を使ってモデルを求める。
  2. モデルを当てはめたXとYを使って散布図を描いておく。
  3. 予測値を計算させる新しいXを発生させる。
  4. 新しいXとモデルから計算される予測値を用いて散布図上に曲線を描く。

B スプライン曲線は bs() 関数を使う

EZRの標準メニューからモデルのあてはめでbs()関数を使ってモデルを求める。

標準メニューから→統計量→モデルへの適合→線形モデルを選択。

目的変数と説明変数を投入する。

説明変数を投入する際に、変数を選択後 B-spline というボタンをクリックすると、図のように投入される。

OKをクリックするとモデルが計算される。

df=5(自由度)の数値を変えることで、当てはめる曲線が変わる。

デフォルトは自由度5である。

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


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

B スプライン曲線の土台として散布図を書く

次に、モデルを当てはめたXとYを使って散布図を描いておく。

XとYを使って、散布図を描いておく。

XとYを選んでOKをクリックすると散布図が描ける。

回帰直線も自動的に描かれて、比較には便利。

B スプライン曲線のために予測値を計算するための X を発生させる

ここで、予測値を計算させる新しいXを発生させる。

wbcという名前で新たな変数Xを作る。

4000から9500を100ずつに区切った変数とした。

Rスクリプトに以下を書いて実行する。

wbc <- seq(4000,9500,100)

散布図のX軸の範囲を見て、適切と思う上限値、下限値、間隔を入れて、Bスプライン曲線描画のための新しい変数Xを作成する。

B スプライン曲線を散布図上に書き入れる

いよいよ、新しいXとモデルから計算される予測値を用いて散布図上に曲線を描く。

先ほど作ったモデル(今回はLinearModel.1と名前がついている。右上のモデル:の右側を確認)と新しい変数Xを使って、Bスプライン曲線を描いていく。

右上のモデル名を確認

Xをwbc, YをLinearModel.1からの予測値とする曲線を描く。

lines()関数を使っている。

lines(wbc,predict(LinearModel.1, data.frame(WBC.entry=wbc)))

このスクリプトをRスクリプト窓に書いて、実行。

するとBスプライン曲線が、先ほど出力した散布図に描き入れられる。

黒い実線の曲線がBスプライン曲線である。

まとめ

EZRでBスプライン曲線を描く方法を紹介した。

bs()関数を用いた線形モデルのあてはめ、predict()関数による予測値の計算と、lines()関数によるBスプライン曲線の描画という、3つの関数を組み合わせた数ステップで描画可能である。

参考になれば。

参考書籍

EZR公式マニュアル