曲線のあてはめの一つ、B スプライン曲線を描く方法。
EZR のメニューを借りて実施する。
B スプライン曲線を描く方法の概要
概要は以下の通り。
- EZRの標準メニューからモデルのあてはめでbs()関数を使ってモデルを求める。
- モデルを当てはめたXとYを使って散布図を描いておく。
- 予測値を計算させる新しいXを発生させる。
- 新しいXとモデルから計算される予測値を用いて散布図上に曲線を描く。
B スプライン曲線は bs() 関数を使う
EZRの標準メニューからモデルのあてはめでbs()関数を使ってモデルを求める。
標準メニューから→統計量→モデルへの適合→線形モデルを選択。
目的変数と説明変数を投入する。
説明変数を投入する際に、変数を選択後 B-spline というボタンをクリックすると、図のように投入される。
OKをクリックするとモデルが計算される。
df=5(自由度)の数値を変えることで、当てはめる曲線が変わる。
デフォルトは自由度5である。
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公式マニュアル
コメント