ドミナンスデータの交互平均法

西里先生の本,「行動科学のためのデータ解析―情報把握に適した方法の利用」の5章からは順序評定データや一対比較データの双対尺度法の話で,データ行列をドミナンス行列に変換してから分析すると良い,と書いてある。
ここでいう分析は交互平均法のことで,交互平均法のコードは前にも書いたから,特に深く追求してませんでした。

最近たまたま指導学生が一対比較データを取ったので,これでやってごらんと本だけ渡して,交互平均法から何からやり始めたんだけど,ドミナンスデータ担ったところで結果が合わないとの相談が。んなわけあるかい,と計算してみたら,おや俺のコードでも結果が合わないw

ということで慌てて復習,再チャレンジしました。
ポイントはp.84にもあるんだけど,

  • 交互平均法の計算につかう行和・列和は,N \times nのドミナンス表の列和と行和にはそれぞれn(n-1)N(n-1)を入れる」
  • 交互平均法の計算につかう総和はNn(n-1)となる

ということ。そしてこれはテキストにはないことなんだけど,計算途中のベクトルを中心化する「平均値を引く」という作業が要りません。ドミナンス数の行和・列和は0なので,考える必要がないということみたい。

ということで,交互平均法のコードで平均ベクトルを引くところを取り除き(コメントアウトしてます),行和(mg.row),列和(mg.row),総和(mg.t)を計算し直したドミナンス表交互平均法のコードは以下の通りです。

ためにしテキストに載っているデータを使って計算してみましょう。表5.1の,5人の評定者が8人の受験者を順序付ける(1位が1,8位が8)という例。

これをドミナンス表に変える関数も作ったよ。

そしてこれを上で作った関数に入れます。

はい,第一固有値がでました。

という感じです。

コメントは受け付けていません。