Rから回帰分析のいろいろな情報を取得する方法


Rを使って重回帰分析をして、summary関数で重回帰分析に関する情報が見れるとわかったものの、『係数だけ』『自由度調整済み決定係数だけ』がほしい。そう思って取得方法をいろいろ調べてみました。
例によって、使うのは下記のニコ動からのデータ。
nico

上記は、コメント数とマイリスト数とカテゴリーを説明変数にして、再生数を目的変数とした重回帰分析の結果。

係数

lmオブジェクトの後に『$coefficients』、もしくは『[“coefficients”]』、coef(coefficients)関数を用いても取得できる。

一つ一つを取得したい場合は、後ろに『[“”]』でくくって、中に変数名をいれる。

残差

lmオブジェクトに$residualをつけるか、residuals(resid)関数を利用

lmオブジェクトを引数にしたsummary関数で表示されるような四分位数を取得したい場合は、上記の記述をsummary関数の引数とする。

予測値

lmオブジェクトに$fitted.valuesをつけるか、predict関数の引数にlmオブジェクトをいれる

切片を含む、説明変数の数

lmオブジェクトに『$rank』

自由度(標本数から説明変数(切片含む)の数を引いたもの)

$df.residualをつける。

カテゴリー変数の値

$xlevelsをつける。

これを、”category”という文字列(もしくは、その文字列をいれた変数)から取得したいのだけどやりかたが分からない。nico.lm[“category”][1]では取得できないようだし。data.frame関数通したらできるようではあるのだけど。

まわりくどい。自分が知らないだけで、何かいいやり方があると思うのだけど。

モデル式

formula関数を使うか、$callをつける(結果は異なる)

AIC(赤池情報量規準)

AIC関数の引数にいれる

解析に使用したデータのみのモデル

$modelをつける。

決定係数

lmオブジェクトを引数にしたsummary関数の後ろに$r.squared

自由度調整済み決定係数

lmオブジェクトを引数にしたsummary関数の後ろに$adj.r.squared

標準誤差

lmオブジェクトを引数にしたsummary関数の後ろに$coefficients[,”Std. Error”]

t値

lmオブジェクトを引数にしたsummary関数の後ろに$coefficients[,”t value”]

p値

lmオブジェクトを引数にしたsummary関数の後ろに$coefficients[,”t value”]

他にもいろいろあるようですが、自分が必要になりそうなもののみ列挙しました。なお、ここに書いてあるのはネットや書籍で調べたわけではなく、names関数を使って調べて行った結果、分かった方法です。

names関数、すごい便利です。

コメントを残す

メールアドレスが公開されることはありません。