差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
mva:regression [2022/05/13 08:09] – 作成 watalu | mva:regression [2022/05/13 12:14] (現在) – watalu | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | === 授業前に掲示した版 === | ||
+ | |||
+ | ビールのデータを楽しむ。 | ||
+ | |||
< | < | ||
beer.1 = read.table(" | beer.1 = read.table(" | ||
行 149: | 行 153: | ||
| | ||
plot(beer.1.var) | plot(beer.1.var) | ||
+ | </ | ||
- | # でもこれはダメなモデル。なぜ? | + | 元の趣旨に立ち返って回帰分析を進める。 |
+ | |||
+ | < | ||
+ | beer.2 = read.csv(file(" | ||
+ | | ||
+ | beer.2.lm = lm(ビール~東京+京都, | ||
+ | summary(beer.2.lm) | ||
+ | plot(beer.2.lm) | ||
+ | beer.1.lm = lm(ビール~東京, | ||
+ | summary(beer.1.lm) | ||
+ | # よくなってなかった | ||
+ | |||
+ | # もう12月だけダミー変数を入れて調整してしまう | ||
+ | beer.3 = read.csv(file(" | ||
+ | | ||
+ | beer.3 | ||
+ | names(beer.3) | ||
+ | beer.3.lm = lm(ビール~東京+X12月, | ||
+ | summary(beer.3.lm) | ||
+ | plot(beer.3.lm) | ||
+ | # よくなった | ||
+ | |||
+ | 12月だけ異常なことを考慮したモデル | ||
+ | |||
+ | # 最後、月ダミー | ||
+ | beer.4 = read.csv(file(" | ||
+ | | ||
+ | lbeer.4.lm = lm(ビール~東京+京都+東京1月後+時間+X1月+X2月+X3月+X4月+X5月+X6月+X7月+X8月+X9月+X10月+X11月+X12月+時間, | ||
+ | summary(beer.4.lm) | ||
+ | plot(beer.4.lm) | ||
+ | </ | ||
+ | |||
+ | これをレポートにまとめてみてください。 | ||
+ | |||
+ | === 授業中に修正した版 === | ||
+ | < | ||
+ | # データを読み込む | ||
+ | |||
+ | beer.1 = read.csv(file(" | ||
+ | | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # データを眺める | ||
+ | plot(beer.1$東京) | ||
+ | beer.1$月数 = c(1:76) | ||
+ | plot(beer.1月数,beer.1東京) | ||
+ | plot(beer.1月数,beer.1東京, | ||
+ | plot(beer.1月数,beer.1東京, | ||
+ | plot(beer.1月数,beer.1東京, | ||
+ | plot(beer.1月数,beer.1東京, | ||
+ | plot(beer.1月数,beer.1東京, | ||
+ | |||
+ | plot(beer.1$ビール) | ||
+ | plot(beer.1月数,beer.1ビール, | ||
+ | plot(beer.1月数,beer.1ビール, | ||
+ | plot(beer.1月数,beer.1ビール, | ||
+ | |||
+ | hist(beer.1$東京) | ||
+ | hist(beer.1$東京, | ||
+ | hist(beer.1$東京, | ||
+ | hist(beer.1$東京, | ||
+ | hist(beer.1$東京, | ||
+ | |||
+ | hist(beer.1$ビール) | ||
+ | hist(beer.1$ビール, | ||
+ | hist(beer.1$ビール, | ||
+ | hist(beer.1$ビール, | ||
+ | |||
+ | boxplot(beer.1$ビール) | ||
+ | boxplot(beer.1$東京) | ||
+ | |||
+ | # データを眺める | ||
+ | plot(beer.1東京,beer.1ビール) | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # 左上、なんかおかしい | ||
+ | |||
+ | # 月という変数を作ってみる | ||
+ | beer.1$月 = c(rep(c(1: | ||
+ | beer.1$月 = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | ||
+ | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | ||
+ | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | ||
+ | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | ||
+ | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | ||
+ | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, | ||
+ | 1, 2, 3, 4) | ||
+ | |||
+ | plot(beer.1月,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # 先ほどの左上の点が・・・ | ||
+ | # でも今回は、この方向にモデルを頑張る話ではない | ||
+ | # 気温で売り上げを説明しようとすると、これは説明できない | ||
+ | |||
+ | # 元の話(回帰分析)に立ち返る | ||
+ | |||
+ | # 関数を当てはめる | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | lm(ビール~東京, | ||
+ | summary(lm(ビール~東京, | ||
+ | lines(c(0, | ||
+ | lm(ビール~tan((((東京-4.4)/ | ||
+ | lines(c(5: | ||
+ | col=" | ||
+ | lm(ビール~sinh((((東京-4.4)/ | ||
+ | lines(c(5: | ||
+ | col=" | ||
+ | legend(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | install.packages(" | ||
+ | library(" | ||
+ | gam(ビール~東京, | ||
+ | plot(gam(ビール~東京, | ||
+ | summary(gam(ビール~東京, | ||
+ | gam(ビール~s(東京), | ||
+ | plot(gam(ビール~s(東京), | ||
+ | beer.1.gam = gam(ビール~s(東京), | ||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | points(beer.1$東京, | ||
+ | legend(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # 2乗と3乗の項を加えたい | ||
+ | lm(ビール~東京+東京*東京+東京*東京*東京, | ||
+ | lm(ビール~東京, | ||
+ | # 失敗 | ||
+ | # Rのモデル式の掛け算記号*は、掛け算の意味ではない | ||
+ | |||
+ | # 2乗と3乗の変数を作る | ||
+ | beer.1東京2=(beer.1東京)^2 | ||
+ | beer.1東京3=(beer.1東京)^3 | ||
+ | lm(ビール~東京+東京2+東京3, | ||
+ | lines(c(0: | ||
+ | col=" | ||
+ | # これがけっこうよさそう | ||
+ | legend(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | # 何をしたかったんだっけ? | ||
+ | # 回帰分析 | ||
+ | # 誤差を忘れてる | ||
+ | # 誤差が正規分布に従うモデル | ||
+ | # 誤差の代わりに残差を調べる | ||
+ | |||
+ | beer.1.lm3 = lm(ビール~東京+東京2+東京3, | ||
+ | plot(beer.1.lm3) | ||
+ | plot(beer.1$ビール, | ||
+ | plot(beer.1$ビール, | ||
+ | | ||
+ | plot(fitted(beer.1.lm3), | ||
+ | | ||
+ | # 当てはめ値+残差=実測値 | ||
+ | # 上の方に外れ値が残ってる | ||
+ | |||
+ | # 実は・・・ | ||
+ | |||
+ | library(vars) | ||
+ | install.packages(" | ||
+ | library(vars) | ||
+ | VAR(cbind(beer.1ビール,beer.1東京)) | ||
+ | VAR(cbind(beer.1ビール,beer.1東京), | ||
+ | beer.1.var = VAR(cbind(beer.1ビール,beer.1東京), | ||
+ | p=2, type=" | ||
+ | coef(beer.1.var) | ||
+ | plot(beer.1.var) | ||
+ | beer.1.var = VAR(cbind(beer.1ビール,beer.1東京), | ||
+ | p=2, type=" | ||
+ | | ||
+ | plot(beer.1.var) | ||
+ | |||
+ | |||
+ | beer.2 = read.csv(file(" | ||
+ | | ||
+ | beer.2.lm = lm(ビール~東京+京都, | ||
+ | summary(beer.2.lm) | ||
+ | plot(beer.2.lm) | ||
+ | beer.1.lm = lm(ビール~東京, | ||
+ | summary(beer.1.lm) | ||
+ | # よくなってなかった | ||
+ | |||
+ | # もう12月だけダミー変数を入れて調整してしまう | ||
+ | beer.3 = read.csv(file(" | ||
+ | | ||
+ | beer.3 | ||
+ | names(beer.3) | ||
+ | beer.3.lm = lm(ビール~東京+X12月, | ||
+ | summary(beer.3.lm) | ||
+ | plot(beer.3.lm) | ||
+ | # よくなった | ||
+ | |||
+ | 12月だけ異常なことを考慮したモデル | ||
+ | |||
+ | plot(beer.1東京,beer.1ビール, | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | points(beer.3$東京, | ||
+ | |||
+ | |||
+ | # 最後、月ダミー | ||
+ | beer.4 = read.csv(file(" | ||
+ | | ||
+ | beer.4.lm = lm(ビール~東京+京都+東京1月後+時間+X1月+X2月+X3月+X4月+X5月+X6月+X7月+X8月+X9月+X10月+X11月+X12月+時間, | ||
+ | summary(beer.4.lm) | ||
+ | points(beer.4$東京, | ||
</ | </ | ||