#4順序ロジット

被説明変数が、低<中<高などの順序データの場合の回帰分析です。先の中古車オークションのデータd01において、何かの理由で落札価格データpriceが利用できなくて、代わりに価格水準を表すA,B,C,D,Eという五段階評価だけがデータとして得られたとしましょう。ただし、価格はA>B>C>D>Eの順番だとします。これに対してOLSで使った変数を用いて回帰分析をしてみましょう。

  1. データを読み込みます。これまでは、一旦ファイルを保存してから読み込んでいましたが、めんどうなので、直接サイトから読み込みたいです。その場合、ファイルパスにURLを書いてやればOKです。

    d04<-read.csv(“‘https://www.eeso.ges.kyoto-u.ac.jp/emm/wp-content/uploads/2010/08/d04.csv'”)

  2. これにE<D<C<B<Aという順序づけをしなければなりません。これにはfactorという関数を使います。factorはベクトルデータを因子として定義します。読み込んだデータは、A,B,C,D,Eの文字列ですが、読み込んだ時点で1列のデータフレームに因子(factor)変数として保存されています。これを一旦ベクトルに戻します(d04[,1]というとこ)。さらにlevels=c(“E”,”D”,”C”,”B”,”A”)という順で、順序づけをします(ordered=T)。

    d05<-factor(d04[,1],levels=c(“E”,”D”,”C”,”B”,”A”),ordered=T)

  3. さらにこのデータをpgradeという名前をつけて、d01にくっつけます。

    d01<-data.frame(d01,pgrade=d05))

  4. データd01のpgradeを他の変数(Noやpriceは除きます)で回帰しなさい。

d04.csv

R Tips

順序ロジットはMASSパッケージに入っているpolrという関数を使います。MASSというパッケージは、Rを標準でインストールしていたら既にインストールされていますが、Rを起動した段階では使えません。これを使えるようにするには、以下のように、library関数を使ってこのパッケージを読み込まなければなりません。

> library(MASS)

こうやって、もしMASSが見つからない、とRに言われたら、MASSのインストールをしなければなりません。Rのメニューバーの「パッケージ」から「パッケージのインストール…」というの選ぶと、最初にダウンロードするサイトを聞いてくるので日本のサイト(Japan(Tukuba)とか)を選びましょう。それからほしいパッケージ(この場合MASS)を選択すると勝手にインストールします。それから再び、Rでlibarry(MASS)と入力しましょう。

polr関数の使い方は、データフレームd01のyにx1、x2、x3を回帰させる場合、次のようにします。

> polr(y~x1+x2+x3, d01, method=”logistic”)

あとは、lmと同じです。ただし、lmは代数的に最適値を求めることができますが、polrなんかは数値的に最適値をえっちらえっちら探すので、最適値を探せずエラーを返す場合があります。説明変数が多すぎる、説明変数の桁数が大きすぎる場合、エラーが出る場合が多いようです。そのあたり工夫して使ってください。

おすすめ