Stan Advent Boot Camp 2020 第10日目; おすしでインドスカルしてたら、推しメンが結婚した話。
ういっす。この記事は、Stan Advent Calendar 2020 10日目の記事です。
多次元尺度構成法(Multidimensional scaling; MDS)についてStanで実行してみます。
初めに書いておくと、良い/面白い結果が出ていないので、やってみたぐらいのノリです。
~余談~
1ヶ月前のある日、突如某slackでスコココと通知音が鳴った。
なにかと思えば、来月に控えたStan Advent Calendarの埋まり具合が悪いらしい。それを危惧した某メンバーが最初の10日間で初心者のためのStan Boot Campをやることを提案した。僕はその様子を静観していた。しかし、それは許されなかった。そして、ここから悲劇は始まる。気付いたら、Stan Boot Campの担当者になっていたのだ。これは道を歩いていたら虎に襲われるぐらいの衝撃である。しかし、驚くべきはこれだけではなかった。最初は自身の研究領域であるIRTについて執筆する予定だったのだが、「専門の人が専門領域の記事を書いても面白くない」などと言った謎の意見により、気付いたらMDSの記事を書くことになっていた。これはまさに道を歩いていたら気が狂って目の前にいる虎を襲ってしまうぐらいの衝撃である。そして、今日に至る。。。
~余談おわり~
MDSとは、「距離から地図を作る方法である(小杉, 2018)」と説明がされています。
距離と言うと、実際に東京から大阪といった物理的な距離をイメージされることが多いと思いますが、ここでは必ずしも物理的な距離のみを指すわけではありません。
- たとえば、心理学にはパーソナルスペースという言葉があります。これは、他人に入ってきて欲しくない(入られると不快になる)距離を指します。電車に乗っていて、そんなに混んでいないのにもかかわらずこの人めっちゃ近いなみたいな場面を想像して貰えば良いと思います。このような心理的距離(測定すれば物理距離として定義もできますが)も、距離として扱うことができます。
- また、類似度は距離として解釈されることがあります。松屋・すき家・𠮷野家の値段の類似度を出したときに、松屋とすき家間は同価格帯で類似しており距離が近いとすると、松屋と𠮷野家は前者間よりも価格に開きがあり(類似していなく)距離が遠いと定義することができます。これも物理的な距離ではありませんが距離として扱うことが可能です。
- そして、対象への選好(好み)も距離として捉えることができます。りんごとれもんのどちらがどれだけ好きかを考え、れもんが好きだとしましょう。このとき、好きな者ほど、距離が近いと定義すれば、ぼくとれもんは、ぼくとりんごよりも近いと解釈することができ、これは様々なフルーツで行うことで、僕の好きなフルーツを地図で表すことができます。このように選好も距離と考えることができます。
- また、これらの距離は必ずしも対象とは限りません。例えば、仮に僕がある女優Tさんが好きだったととしましょう。あくまでも仮の話です。このとき僕の思うこの気持ち a.k.a 想いは、 距離です。しかし、残念なことに女優Tさんは僕の存在すら認識していませんので、女優Tさんから私に対する気持ち a.k.a 想いは距離ですが、未観測なのでNULLです。つまり、この場合、この私の気持ち a.k.a 恋は、片思いであり、すなわち非対称距離になるのですね。MDSでは、このような非対称距離を扱うこともできるそうです(この例の場合女優から私への距離はNULLなので厳密に非対称距離とはなっていませんかもしれませんが)。
以上のように、単純に距離と言っても多種多様です。
では、今回は、対象への選好を距離と捉えて、その関係性を表す地図を作って行きたいと思います。
今回用いるデータは、寿司の好みについて評定したデータです。
こちらをお借りしました。
これは全国の日本人参加者(N=5000)が各寿司ネタ(全100ネタ)の好みを評定した大変貴重なデータです。
今回はここから、「えび」「まぐろ」「とろ」「かっぱ巻き」「はまち」の5ネタを評定した回答者(N=5)に絞り、分析を実施しました。
※本当は、10ネタぐらいでやりたかったのですが、10ネタすべてを評定した回答者がいなかったので(いずれかのネタが欠損になってしまう)、その兼ね合いで5ネタとしました。正直この少なさでMDSを使うのは向いていない気もします。また欠損値を含むMDSができれば良かったのですが、MDSの初心者なのでよくわからなかったです。検索したら僕のボスの博論が出てきました。
モデルや分析コードは以下の小杉先生の章を参考にしました。
詳細なモデルの数理等については関連書籍を確認してください(まとめる余裕なかった)。そんなに難しくないです。真のネタ間の距離が、個人ごとの選好の違いと掛け合わされて、誤差とともに出てきたものが今回の評定データであるというモデルになっています。
このようなモデルは、INdivisual Differences multidimensional SCALing(INDSCAL)と呼ぶそうです。なお、INDSCALはインドスカルではなく、インスカルと読むらしい。
また、モデルは5ネタでN=5という通常あり得ないサンプルサイズでの解析なので本当にやってみた程度の結果です。
これらをもとに作成した地図がこれです(点はEAP,エラーバーは50%信用区間)。
うーん、やはりネタ数が少なすぎて解釈できないですね。
いろいろ寿司ネタを変えたり、試したんですが、無理でした。このデータだと厳しかったかもしれませんね。
別のデータでリベンジしたいですね。
締まらない感じ&オーバータイムになってしまいましたが、とりあえず。
コード等は以下
https://github.com/dastatis/dastatis.github.io/tree/master/pdf/StanAdvent2020