« [サンプルデータ]書籍「統計解析のはなし」(石村貞夫著、東京図書)の表1.1.1(pp.2-8) | トップページ | [R].xlsxファイル(Excelのファイル)の中身を読み込む »

2015年2月28日 (土)

[R]周期変動を含むデータの回帰モデルを作成する

周期変動を含むデータの回帰モデルを作成する場合、sin関数とcos関数を組み合わせたモデルで表現することができる。ここでは、以下の式を考える。

y = A + B * x + C * sin(2 * π * x) + D * cos(2 * π * x)

A,B,C,D:求めるモデルパラメータ

最小2乗法により、A~Dの4つのモデルパラメータ(定数)を決定する。なお、ここではその周期変動の周期は1とする。ここでsin関数、cos関数の引数を2πxとしているところが重要。sin関数、cos関数共に2πラジアンであり今は周期を1と仮定しているためにそのような指定をしている。xが1増えれば2π増えるが元に戻る、という考え方。

サンプルデータとその散布図として、以下のデータを扱う。横軸データがxベクトル、縦軸データがyベクトルである。データを散布図で示し、プロット点を青実線でつないでいる。

> x <- c(2014.0, 2014.2, 2014.5, 2014.7, 2015.2, 2015.6, 2016.1)
> y <- c(0, 0.2, 0, -0.2, 0.15, -0.05, 0.2)
> plot(x, y, type = "p")
> lines(x, y, col = "blue")

Figure1

サンプルデータをプロットしたところで、さっそく周期変動を含む回帰モデルを作成し、それを線で描画してみる。

> r <- lm(y ~ x + sin(2 * pi * x) + cos(2 * pi * x))
> xet <- seq(min(x), max(x), by = 0.01)
> yet <- predict(r, data.frame(x = xet))
> lines(xet, yet, col = "red")

Figure2

このようにして、近似曲線が得られた。

« [サンプルデータ]書籍「統計解析のはなし」(石村貞夫著、東京図書)の表1.1.1(pp.2-8) | トップページ | [R].xlsxファイル(Excelのファイル)の中身を読み込む »

R(数値計算)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [サンプルデータ]書籍「統計解析のはなし」(石村貞夫著、東京図書)の表1.1.1(pp.2-8) | トップページ | [R].xlsxファイル(Excelのファイル)の中身を読み込む »

無料ブログはココログ

■■

■■■