elsur.jpn.org >

« 読了:「カオス・シチリア物語」「靴の話・眼」「赤く微笑む春」「図書準備室」 | メイン | 読了:Tourangeau, Conrad, & Couper (2013) Web調査の科学 6章: 相互作用的特徴 »

2016年5月28日 (土)

Hatzinger, R., Dittrich, R. (2012) prefmod: An R package for modeling preferences based on paired comparisons, ranking, or rating. Journal of Statistical Software, 48(10).
 Rのprefmodパッケージの解説。要は一対比較データを分析するパッケージである。実戦投入前の儀式として読みはじめたのだが、途中で今回は使わないことにしたので、急にやる気が落ちて、適当に済ませてしまった。

 どういう話かというと...
 いま、$J$個の対象に対する一対比較データがある。以下、モデルとして次の2つを考える。

 その1, Bradley-Terryモデル。ペアの勝敗をモデル化する。対象$j$の価値を0以上の値$\pi_j$で表して
 $p(j \succ k | \pi_j, \pi_k) = \frac{\pi_j}{\pi_j + \pi_k}$
これを以下のように書き換えることができるのだそうだ[よくわからないけど、素直に信じることにします]。$j$が$k$に勝ったら+1, 負けたら-1をとる$y_{jk}$を考えて
 $p(y_{jk}) = c_{jk} \left( \frac{\sqrt{\pi_j}}{\sqrt{\pi_k}} \right)^{y_{jk}}$
ここで$c_{jk}$は定数。
 これを対数線形モデルとして定式化してみよう(LLBTモデル)。$j$と$k$を比べた人数を$n_{jk}$として、$y_{jk}$がある値をとる期待度数
 $m(y_{jk}) = n_{jk} p(y_{jk})$
について、こうモデル化する:
 $\eta_{y_{jk}} = \log m(y_{jk}) = \mu_{jk} + y_{jk}(\lambda_j - \lambda_k)$
なお、$\log \pi = 2 \lambda$となる。

 その2, パターン・アプローチ。ペアのセットの勝敗の同時確率をモデル化する。
 ベクトル$\mathbf{y} = (y_{12}, y_{13}, \ldots, y_{J-1,J})$について、
 $p(\mathbf{y}) = c \prod_{j <k} \left( \frac{\sqrt{\pi_j}}{\sqrt{\pi_k}} \right)^{y_{jk}}$
 これも対数線形モデルとして定式化してみよう。期待度数のベクトル
 $m(\mathbf{y}) = n p(\mathbf{y})$
について、独立性を仮定すれば:
 $\eta_{\mathbf{y}} = \log m(\mathbf{y}) = \mu + \sum_{j=1}^J \lambda_j x_j$
 $x_j$と$\mathbf{y}$との関係について説明があるけど、省略...
 独立性を仮定せず、交互作用項を入れる定式化も説明してあるけど、省略...

 ... だんだんめんどくさくなってきたのですっとばすけど、一対比較にタイがある場合にも拡張できる。対象者の群別にパラメータを変えることもできる。$\lambda$の説明変数として人の共変量を投入することもできる。対象の共変量を投入することもできる。ランキングにも拡張できる。Likert型のレーティングにも拡張できる(タイがいっぱいあるランキングだと思えばいいわけだ)。欠損値も扱えるように拡張できる。対象者の潜在クラスを導入できる。

 後半はパッケージの紹介と実例。眠くて途中船をこいだりしながらめくった。ま、ほんとに必要になったら読み直せばいいさ。
 Bradley-TerryモデルのパッケージはほかにBradleyTerry2, eba, psychotreeというのがあるんだけど、独立性のない奴を扱えるのが(よってレーティング型データなどを扱えるのが)このパッケージの特徴である由。ふうん。

 考えてみりゃ、MaxdiffだってBradley-Terryモデルで解けるはずだよな。効用に潜在クラスを入れられるんなら、このパッケージでやってもいいかも。

論文:データ解析(2015-) - 読了:Hatzinger & Dittrich (2012) Rのprefmodパッケージで一対比較データを分析しよう

rebuilt: 2020年11月16日 22:55
validate this page