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

Facebook にシェア
Pocket

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関数、すごい便利です。

Rから回帰分析のいろいろな情報を取得する方法” への2件のコメント

  1. カテゴリーは数値ではないのにlmのvariableとして機能しています。もしよろしければなぜ数値でないものも使えるのか教えていただけませんか?参考文献もいただけると助かります。不躾ですみません。

    • 最近、Rから離れていましたので少し間違ってるかもしれませんが、
      これはcategoryはカテゴリ変数(名前が同じなのでややこしいですが)と呼ばれる変数です(カテゴリカル変数とか名義変数ともいうそうです)。
      カテゴリそれぞれの値があることにして、当てはまる場合は1、当てはまらない場合は0として算出しています。
      例えば、categoryがVOCALOIDのデータについてはcategoryVOCALOIDという値を1として、それ以外の(例えば『categoryアイドルマスター』とか『category東方』とかの値)を0として算出しています。
      なお、『R-18』のcategory(categoryR-18)がないのは不適切な内容だからというわけではなく、R-18の場合は全てのカテゴリ変数を0と考え、デフォルトではR-18の算出結果になるからです(たまたま、昇順で『R-18』が最初になったのでR-18がデフォルト扱いとなりました)。

      多分、『R カテゴリ変数』とかでググるといろいろでてくると思います。
      自分は、とある弁当屋の統計技師(データサイエンティスト) ―データ分析のはじめかた―という本で知りました。ライトノベル形式でRの勉強ができて面白いですよ。

コメントを残す

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