Rによる回帰分析 高崎経済大学 宮田 庸一
Rとは Rとは、統計処理、グラフ作成のために開発された言語 である。 Rはフリーソフト ダウンロードおよびインストールの仕方は
使用するデータ 各店舗の売上高のデータ http://mo161.soci.ous.ac.jp/@d/DoDStat/indexj.htmlより 引用(このページから経済→店舗データといけば見つか る) numpass 通行人 numerical minutes 最寄り駅からの時間 area 店舗面積 parkcar 駐車台数 numwork 従業員数 kinds 品数 sales 売上高
使用するデータ numpass minutes area parkcar numwork kinds sales 716 25 44 16 125 78 2208 30 8 3 132 34 1880 68 18 10 110 145 1416 20 5 70 51 904 67 32 82 98 1850 66 115 1039 15 52 75 2394 1 113 50 258 711 12 102 738 39 65 1322 11 60 23 72 793 97 1733 96 40 190 1569 4 55 28 92 168 1770 6 80 195
データのインポート と入力しEnterを押す Rにデータを取り込むために data01<-read.csv("c:\\Program Files\\R\\jikken.csv",header=T) と入力しEnterを押す numpass minutes area parkcar numwork kinds sales 716 25 44 16 7 125 78 2208 30 8 3 132 34 1880 68 18 10 110 145 1416 20 5 70 51 904 67 32 82 98 1850 66 115 1039 15 52 75
Rによる回帰分析 説明変数 応答変数 res1<- lm(sales~numpass+minutes+area+parkcar+numwork+kin ds,data=data01) 使用するデータの変数名
解析結果を見る summary(res1) F検定におけるp-value この値が0.05より小さいとき,帰無仮説H0は棄却される Call: lm(formula = sales ~ numpass + minutes + area + parkcar + numwork + kinds, data = data1) Residuals: Min 1Q Median 3Q Max -29.0324 -11.1896 0.1114 3.0808 38.7954 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 17.87515 39.47384 0.453 0.6627 numpass 0.02375 0.01455 1.632 0.1413 minutes -2.72584 1.39556 -1.953 0.0866 . area 0.10797 0.83667 0.129 0.9005 parkcar 2.23888 1.23919 1.807 0.1084 numwork 1.60522 3.30274 0.486 0.6400 kinds 0.24413 0.32616 0.749 0.4756 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 23.89 on 8 degrees of freedom Multiple R-squared: 0.9267, Adjusted R-squared: 0.8717 F-statistic: 16.85 on 6 and 8 DF, p-value: 0.0003844 推定値 標準誤差 t-value p-value この値が0.05より小さいとき,帰無仮説H0は棄却される 自由度調整済み決定係数 F検定におけるp-value
AICを求める > AIC(res1) [1] 144.3474 > extractAIC(result) Kや推定量以外の定数は比較するときには使用しないので > extractAIC(result) [1] 7.00000 99.77926
AICによるモデル選択(変数減少法) 全ての説明変数を組み込んだ線形回帰モデルからp- valueの大きな説明変数から削除したモデルを作っていく。 その中で最もAICの小さなモデルを最適なモデルとして採 用する。 【例】 先ほどの回帰分析でp-valueが最も大きな値を取っ ていたのはareaであった。これを削除して再び回帰分析 を行い, AICを求める. >res2<-lm(sales~numpass+minutes+parkcar+numwork+kinds,data=data01) > AIC(res2) [1] 142.3786
出来れば一気にモデル選択したい Rにはstepという関数が用意されている 【例】 step(lm(sales~numpass+minutes+area+parkcar+numwork+kinds,data=data01)) Start: AIC=99.78 sales ~ numpass + minutes + area + parkcar + numwork + kinds Df Sum of Sq RSS AIC - area 1 9.5 4576.8 97.8 - numwork 1 134.9 4702.1 98.2 - kinds 1 319.9 4887.1 98.8 <none> 4567.3 99.8 - numpass 1 1520.9 6088.2 102.1 - parkcar 1 1863.6 6430.8 102.9 - minutes 1 2178.1 6745.3 103.6 Step: AIC=97.81 sales ~ numpass + minutes + parkcar + numwork + kinds ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・延々続く
出来れば一気にモデル選択したい Model extractAIC sales ~ numpass + minutes + area + parkcar + numwork + kinds 99.78 sales ~ numpass + minutes + parkcar + numwork + kinds 97.81 sales ~ numpass + minutes + parkcar + kinds 96.32 sales ~ numpass + minutes + parkcar 95.49 step() 関数には。オプションとして変数増加法(direction="forward"),変数減少法(direction="backward"),変数増減法(direction="both") などがある。 ただしstep() 関数のデフォルトは変数減少法になっているので,変数減少法を行う場合は単にstep()を用いれば良い。
参考文献 http://www.is.titech.ac.jp/~shimo/class/gakubu200409.html (東工大・下平英寿さんの講義「R による多変量解析入 門」の第8 回「モデル選択」の資料 坂元 慶行, 石黒 真木夫, 北川 源四郎. (1983). 情報量統 計学 (情報科学講座 A・5・4)共立出版 これはAICの入門書 小西 貞則, 北川 源四郎. (2004). 情報量規準 (シリーズ・ 予測と発見の科学),朝倉書店 AICを一般化したGAICの創始者による本。最近の研究成 果がわかる。