[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")
サンプルデータをプロットしたところで、さっそく周期変動を含む回帰モデルを作成し、それを線で描画してみる。
> 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")
このようにして、近似曲線が得られた。
« [サンプルデータ]書籍「統計解析のはなし」(石村貞夫著、東京図書)の表1.1.1(pp.2-8) | トップページ | [R].xlsxファイル(Excelのファイル)の中身を読み込む »
「R(数値計算)」カテゴリの記事
- [R]複数のパラメーターと定数を持つ関数の値が最大・最小となるパラメーターを求める(2026.03.30)
- [R]重み付き線形最小二乗法を行う(2026.03.20)
- [R]重み付き非線形最小二乗法を行う(2026.03.06)
- [R]計算機イプシロンを求める(2025.10.29)
- [R]複数の引数を持つ関数の値の最小値(最大値)を求める(2024.12.07)
« [サンプルデータ]書籍「統計解析のはなし」(石村貞夫著、東京図書)の表1.1.1(pp.2-8) | トップページ | [R].xlsxファイル(Excelのファイル)の中身を読み込む »



コメント