ベイズ統計でシンデレラガールズ総選挙の順位を予測しない。

はじめに

最近「RとStanではじめるベイズ統計モデリングによるデータ分析入門」を読み終わったのでベイズ統計の練習です。
普段Pythonを使うことのほうが多いので久しぶりにR使いました。


あと
idolmaster-statistics.hatenablog.com
という記事を読んで”アイマス統計”を謳っている割に全然数値を用いた順位推定がされていなくて不満だったので自分で書きました。
どうでもいいですが、効果があると思ったなら仮説を書くだけじゃなくて統計を使って検証すればいいと思います。
楽曲ブーストとかはDIDで出来るんじゃないでしょうか。


ただ先に結論を書いておくと全く意味のある推定は出来ませんでした。
まぁ元から過去の順位などから結果を推定することが出来るとは全く思っていなかったので分析の練習の記録を残す意味でブログにしておきます。

データセット

過去の投票企画 -アイマス デレステ攻略まとめwiki【アイドルマスター シンデレラガールズ スターライトステージ】 - Gamerch
上記ページから各アイドル・各回の順位を持ってきて以下のように整形しました。


・前回順位(last_rank)
・今回順位(rank)
・タイプ(type)
・1位ダミー(1st)
・前回タイプ別順位(last_type_rank)
・前シンデレラガールと同タイプダミー(last_type)


目的変数としては「今回順位」と「1位ダミー」を利用して、その他の変数を説明変数に使うイメージです。
前回の結果だけで今回の順位を予想するということで所謂マルコフ性を仮定してます。この仮定が正しいかと言えば正しくないと思います。


また全アイドルをデータセットにしてもしょうがないので平均順位が25位以上かつ、10位以内に入賞したアイドル+回のみデータとして利用しました。
ただし入賞した後ボイスが付いて順位が下がったアイドルは除外しています。
ここらへんの処理も選択バイアスを生んでいる可能性はあります。

分析

分析1:正規線形モデル(上記参考書7章参照)
 Family: gaussian 
  Links: mu = identity; sigma = identity 
Formula: rank ~ last_rank + type + last_type + last_type_rank 
   Data: dat (Number of observations: 46) 
Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
         total post-warmup samples = 4000

Population-Level Effects: 
               Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept          0.03      3.11    -6.14     6.16 1.00     4229     3135
last_rank          1.00      0.69    -0.34     2.39 1.01     2416     2318
typeCu             5.07      2.51    -0.04     9.93 1.00     3094     2736
typePa             2.45      4.27    -5.79    10.81 1.00     3170     2874
last_type          1.76      2.63    -3.37     7.00 1.00     3068     2713
last_type_rank    -0.35      1.29    -2.93     2.16 1.01     2821     2635

Family Specific Parameters: 
      Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
sigma     6.94      0.81     5.62     8.80 1.00     2926     2670


l-95% CI~u-95% Clが95%ベイズ信用区間で、全て0を含んでいるので何も言えないですね。

f:id:viola_voila:20210505142125p:plain
図1.正規線形モデルの各係数信用区間


わかりやすくグラフにするとこんな感じ。
80%信用区間で見ると前回順位が高いと順位が高くなりがちという当たり前の結論を言えます。
あとCuタイプは勝ちにくいという過去の傾向からの結果が強く出ているのは面白いかも。

f:id:viola_voila:20210505145518p:plain
図2.正規線形モデルの95%予測区間付き回帰直線


95%予測区間付き回帰直線を見ると正直なんも言えないことが分かります。

分析2:ロジスティック回帰モデル(上記参考書9章参照)
 Family: bernoulli 
  Links: mu = logit 
Formula: X1st ~ last_rank + type + last_type + last_type_rank 
   Data: dat (Number of observations: 46) 
Samples: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
         total post-warmup samples = 4000

Population-Level Effects: 
               Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
Intercept          2.17      1.60    -0.75     5.60 1.00     2921     3179
last_rank         -1.73      0.85    -3.65    -0.39 1.00     1125     1342
typeCu            -3.24      1.87    -7.35     0.07 1.00     1623     1732
typePa            -1.10      1.99    -5.33     2.73 1.00     2139     2191
last_type         -3.61      2.45    -8.86     0.71 1.00     1427     2030
last_type_rank     2.12      1.44    -0.31     5.32 1.00     1156     1465


1位になるかを目的変数としてベルヌーイ分布で分析したもの。
95%ベイズ信用区間で0を含んでいないのは前回順位のみです。
タイプ別順位が下がると1位確率が上がるのはなんで?

f:id:viola_voila:20210505143544p:plain
図3.ロジスティック回帰モデルの各係数信用区間
f:id:viola_voila:20210505150046p:plain
図4.ロジスッティク回帰モデルの95%予測区間付き回帰曲線


f:id:viola_voila:20210505150551j:plain

予測

predict()を使って前回上位のアイドル5名の順位を予測してみました。
predict()は乱数を利用するのでシードを固定しないと毎回違う値が出るのですが、なんとなくしっくりこないですね。

分析1:正規線形モデル
     Estimate Est.Error      Q2.5    Q97.5
[fumika] 1.158525  7.572659 -13.83033 15.92196
[shiki] 7.669028  7.432507 -6.917125 22.34874
[nao]  2.95872  7.405161 -12.22525 17.95591
[kaede] 3.737913  7.626621 -11.6109 18.74384
[aiko] 9.887218  8.382684 -6.701798 26.6132


Typeの影響でCoが上位になる予測になってます。いまいちピンとこないですが……

分析2:ロジスティック回帰モデル
     Estimate Est.Error Q2.5 Q97.5
[fumika]  0.88575 0.3181544    0     1
[shiki]  0.05675 0.2313932    0     1
[nao]   0.7525 0.4316136    0     1
[kaede]    0.748 0.4342155    0     1
[aiko]  0.00675 0.08189087    0     0


分析1と同じでCoが強いという予測です。

感想

なーんも意味のある結果が出なかったです。まぁ元から期待していませんでしたが。
とはいえベイズ統計モデリングの練習にはなったので今度はまともな分析を考えてやってみたいと思います。
あと基本的に世の中に出てくるデータ分析の結果は有意な結果が出たものばかりなので、こういうなーんの意味もない結果が出る場合もあるということを示すのもいいかなと思いました。


ベイズ統計のメリットとしては、やはりおぼろげながら浮かんできたp=0.05以下かどうかといった判断にならない部分ですかね。
95%信用区間の解釈のしやすさも良いです。
一般の人に説明するときに「100回繰り返したら95回正しい値が含まれる」とかいう意味不明な説明をするより、「95%の確率でこの区間に正しいパラメータが含まれる」という説明をしたほうが絶対分かりやすいでしょうし。


総選挙に関してはルールの提案を
viola-voila.hatenablog.com
で、シンデレラガールになると順位が下がるかという分析を
viola-voila.hatenablog.com
で行っているので気になる人は読んでください。


scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

  • 作者:Aurélien Géron
  • 発売日: 2020/11/04
  • メディア: 単行本(ソフトカバー)
そういえば機械学習の本も読み終わったので適当に練習してみたいです。

シンデレラガールズ総選挙におけるQuadratic Votingの可能性

はじめに

f:id:viola_voila:20200609224101j:plain
今年もシンデレラガールズ総選挙が行われている。前年に引き続きボイスアイドルオーディションとの併設開催となったがこんなことを思ったことはないだろうか?


「なぜシンデレラガールズ総選挙にしか興味がない重課金の方がボイスアイドルオーディションに真剣な微課金勢よりボイスアイドルオーディションに強い影響力を持っているのだろう」(あるいは逆)


もちろんお金を払った方が強い影響力を持つこと自体は不思議ではないが、ここで問題となるのは「シンデレラガールズ総選挙とボイスアイドルオーディションの投票券がセット販売されている」という点である。
どちらの投票にも真剣に向き合っている人がいることは承知しているが、票交換が多く行われていることから片方にしか興味がない人も多いことがうかがえる。




ここで私が提案したいのはシンデレラガールズ総選挙とボイスアイドルオーディションにおけるQuadratic Votingの導入である。





Quadratic Votingとは


www.world-economic-review.jp
Quadratic Votingは台湾のオードリー・タン氏が実際に利用したことで聞いたことがある人もいるかもしれないが簡単に今回の提案に合わせて説明すると以下のようなルールになる。


有権者シンデレラガールズ総選挙にもボイスアイドルオーディションにも使える共通の投票券を持つ。(獲得方法は従来通り)
有権者はn票投票するためにn^2枚の投票券が必要となる


投票券の枚数がそのまま投票できる票数に繋がらないという点が特徴的な投票ルールだ。(これがQuadraticという名前の由縁になっている。)



どのように変わるのか


例えば重課金勢の行動を考えよう。1日目に15000枚の投票券を買った場合、最大で122票投票でき、116枚の投票券があまる。(122^2=14884)
122票から123票にするためには追加で245枚の投票券が必要なためイベントなどで後129枚の投票券を稼がなければいけない。


ここでイベントなどで200枚の投票券を手に入れたとしよう。
担当に123票投票した後、71枚の投票券があまる。71枚の投票券をどうするかの選択肢は広い。
例えば71名のアイドルに1票ずつ投票することも出来れば、1人のアイドルに8票、別のアイドルに2票、他3人のアイドルに1票ずつといった投票も出来る。


もちろん票交換も出来るが現行のルールと比較すると票交換の影響力が小さくなっていることが分かるだろう。(現行のルールでは最大150票が票交換で投票されていた)



投票券をバラバラに売るだけではダメなのか?


こう思った方もいるだろう。票交換の影響力を下げるんだったら単純に投票券をバラバラに売ればいいだけでは?と。
結論から言えば投票券をバラバラに売る行為は金票における票交換の影響力を下げるだけであり、イベントなどで稼いだ票における票交換の影響力は現状のままとなる。
イベントやログインボーナスで2種類の投票券が手に入る限り、それらの票交換による影響は抑えられない。




票のあまり


共通の投票券1枚につき1票投票できる形にすればいいという考え方もあると思われる。


なぜ票数の二乗の投票券が必要かというのは
Liberal Radicalism: Can Quadratic Voting Be the Perfect Voting System? | by Nebulas | Nebulasio | Medium
などを参照して欲しいが、個人的には票があまることに意味があると思っている。


余った票を票交換する場合はあまり意味がない気がするが、例えば上の例であげたように71枚の投票券の投票先を全て票交換するのはかなり面倒くさいだろう。


そうなると余った1枚の投票券で気になるアイドルに投票してみようか。といった行動がとられることが予想される。
たかが1票ではあるが上の例で1票追加するのに245枚の投票券が必要な場合があったことから分かるように通常の投票の1票より大きな影響を持ちやすい。


こういった票交換ではない個人の判断に基づく投票が行われることは結果として担当Pがどれだけ札束で殴ったかではなく、どれだけ多くの人に支持されたかが反映されやすくなると考えられる。




おわりに


今回紹介したQuadratic Votingに関する詳しい説明などは「ラディカル・マーケット 脱・私有財産の世紀」を読むのが分かりやすい。


Quadratic Voting以外にもMajority Judgementなど経済学の知見を用いて社会を変革する方法が色々と紹介されているため面白いと思う。




感想

正直この提案が受け入れられる可能性なんて0だと思っているし、ぶっちゃけこの記事に何の意味もないのですが私は投票ルールの話は「多くの人に知られる」ということに意味があると思っています。
ルールの変更や導入は一部の偉い人がすることなので、そういった人たちだけが投票ルールに関する知識を持っていればいいという考え方もあるのですが、私は反対で「多くの人が単純多数決以外の投票ルールを知る」ということが実際に様々な投票ルールが導入されることに繋がるのではないかなと思っています。
サークルで何かを決めるときにボルダルールやMajority Judgementを利用してみるといった小さなところから投票ルールの理解が広がることで、将来的に大きな制度が変化することに繋がる可能性を感じています。
(全然知らないけど凄いらしいルールより身近なルールの方が導入の抵抗が少ないと思うので)

「あんたはここでふゆと死ぬのよ」ミームは冬優子の人気に影響したのか?

f:id:viola_voila:20210218224314j:plain

 

はじめに

アイマス界隈では時々アイドルがおもちゃにされてインターネットミームになる。
これについての良し悪しはここでは議論しないが、これらのインターネットミームとしての流行がアイドル自体の人気に影響を及ぼしているかを今回検証する。

リサーチクエスチョン:インターネットミームとしての流行がゲーム内におけるアイドル自体の人気に影響を及ぼしているか

 

シャニマスエアプだと思われると嫌なので一応プロフィールを貼っておきます。

ファン数10億称号持ってないやつはエアプとかグレ7常駐以外はエアプと言われたら反論はできないです。

f:id:viola_voila:20210218190858p:plain


検証方法

今回はPカップの各順位(10位、100位、1000位、3000位)ボーダーが「あんたはここでふゆと死ぬのよ」ミーム及び「ふゆたちは空中戦じゃ分が悪すぎるでしょ……!」の流行の前後で変化しているかをDID(Difference in Difference)を利用して検証する。

 

DIDを利用した過去記事はこちら 

viola-voila.hatenablog.com

 

 

Q.人気を示す指標としてPカップのボーダーを採用したのはなぜ?
A.流行が"ゲームをプレイするP"からの人気に影響を及ぼしているかを確かめたいから。

 

例えばPixivのタグ投稿数なども人気の指標として挙げられると思われるが、イラストに関しては"ゲームをプレイせずにTLを追うだけのP"も描けるという点から今回の指標に適していないと考えた。

 

データセット

各アイドルの2周年Pカップ(2020年4月開催)各順位ボーダー
各アイドルの2.5周年Pカップ(2020年10月開催)各順位ボーダー

 

Pixiv百科事典で「あんたはここでふゆと死ぬのよ」のデータを見る限り流行は2020年9月からであり、「ふゆたちは空中戦じゃ分が悪すぎるでしょ……!」発言が出たゴシップ・キャンディ-魔法の本とおかしな食べ物も10月開催のため2周年Pカップ以後、2.5周年Pカップ以前に流行したと考え前後比較のため上記2回のPカップのデータを利用した。

f:id:viola_voila:20210218212320p:plain

 

分析

目的変数:各アイドルの各順位ボーダーの対数をとったもの
説明変数:前後ダミー(2周年のボーダーの場合0、2.5周年のボーダーの場合1)、ミームダミー(冬優子のみ1、他アイドルは0)、ストレイライトダミー(ストレイライトの3人のみ1、他ユニットのアイドルは0)、限定登場ダミー(2周年~2.5周年の間で限定PSSRが出ている場合1、それ以外は0)、ランク(10位ボーダーの場合1、100位ボーダーの場合2、1000位ボーダーの場合3、3000位ボーダーの場合4)、DIDミームダミー(ミームダミー×前後ダミー)、DIDストレイライトダミー(ストレイライトダミー×前後ダミー)、DID限定登場ダミー(限定登場ダミー×前後ダミー)

 

モデル1:前後ダミー、ミームダミー、DIDミームダミー、限定登場ダミー、DID限定登場ダミー、ランク

モデル2:前後ダミー、ストレイライトダミー、DIDストレイライトダミー、限定登場ダミー、DID限定登場ダミー、ランク

モデル3:前後ダミー、ミームダミー、DIDミームダミー、ランク

モデル4:前後ダミー、ストレイライトダミー、DIDストレイライトダミー、ランク

 

Q.ボーダーの値の対数をとったのはなぜ?
A.対数とったらランク4つが線形に並んでてキレイだったから(4つのランクをダミー変数にするのが面倒くさかった)

f:id:viola_voila:20210218212539p:plainf:id:viola_voila:20210218212602p:plain

 

Q.限定登場ダミーを入れたのはなぜ?
A.強い限定PSSRが出ると周回が安定してボーダーが上がると考えられるから
 
Q.ストレイライトダミーとミームダミー(及び各DIDダミー)を一緒にしないのはなんで?
A.独立じゃないから。ちなみにストレイライトダミーを入れた理由はシャニマスはユニットメインなのでユニットのアイドルの人気が出る→ユニットの人気が出るにつながる可能性を考えたから

 

並行トレンド仮定の確認

f:id:viola_voila:20210218213039p:plain

大体右肩下がりなので並行トレンドを仮定しても問題ないと思われる。(適当)

 →本来は1.5周年から2周年の変化を見るべきですね。

 

結果

モデル1


OLS Regression Results                            
==============================================================================
Dep. Variable:             border_log   R-squared:                       0.954
Model:                            OLS   Adj. R-squared:                  0.952
Method:                 Least Squares   F-statistic:                     610.3
Date:                Thu, 18 Feb 2021   Prob (F-statistic):          2.05e-115
Time:                        12:36:42   Log-Likelihood:                -135.13
No. Observations:                 184   AIC:                             284.3
Df Residuals:                     177   BIC:                             306.8
Df Model:                           6                                         
Covariance Type:            nonrobust                                         
================================================================================
                   coef    std err          t      P>|t|      [0.025      0.975]
--------------------------------------------------------------------------------
const           22.8274      0.106    214.591      0.000      22.617      23.037
time            -0.3514      0.091     -3.866      0.000      -0.531      -0.172
limited         -0.0607      0.123     -0.493      0.623      -0.304       0.182
DID(limited)     0.2569      0.174      1.476      0.142      -0.087       0.600
meme             0.2783      0.278      1.002      0.318      -0.270       0.826
DID(meme)        0.1431      0.393      0.364      0.716      -0.632       0.918
rank_l          -2.0459      0.034    -60.343      0.000      -2.113      -1.979
==============================================================================
Omnibus:                        1.931   Durbin-Watson:                   0.953
Prob(Omnibus):                  0.381   Jarque-Bera (JB):                1.933
Skew:                          -0.191   Prob(JB):                        0.380
Kurtosis:                       2.673   Cond. No.                         35.4
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

モデル2


                            OLS Regression Results                            
==============================================================================
Dep. Variable:             border_log   R-squared:                       0.954
Model:                            OLS   Adj. R-squared:                  0.952
Method:                 Least Squares   F-statistic:                     607.3
Date:                Thu, 18 Feb 2021   Prob (F-statistic):          3.12e-115
Time:                        12:43:28   Log-Likelihood:                -135.57
No. Observations:                 184   AIC:                             285.1
Df Residuals:                     177   BIC:                             307.6
Df Model:                           6                                         
Covariance Type:            nonrobust                                         
================================================================================
                   coef    std err          t      P>|t|      [0.025      0.975]
--------------------------------------------------------------------------------
const           22.8249      0.107    213.033      0.000      22.613      23.036
time            -0.3489      0.092     -3.805      0.000      -0.530      -0.168
limited         -0.0298      0.123     -0.243      0.808      -0.272       0.212
DID(limited)     0.1556      0.189      0.822      0.412      -0.218       0.529
rank_l          -2.0459      0.034    -60.199      0.000      -2.113      -1.979
stray            0.0396      0.168      0.237      0.813      -0.291       0.370
DID(stray)       0.2650      0.258      1.025      0.307      -0.245       0.775
==============================================================================
Omnibus:                        2.683   Durbin-Watson:                   0.995
Prob(Omnibus):                  0.261   Jarque-Bera (JB):                2.673
Skew:                          -0.248   Prob(JB):                        0.263
Kurtosis:                       2.680   Cond. No.                         23.8
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

モデル3


                            OLS Regression Results                            
==============================================================================
Dep. Variable:             border_log   R-squared:                       0.953
Model:                            OLS   Adj. R-squared:                  0.952
Method:                 Least Squares   F-statistic:                     910.8
Date:                Thu, 18 Feb 2021   Prob (F-statistic):          8.92e-118
Time:                        12:44:06   Log-Likelihood:                -136.56
No. Observations:                 184   AIC:                             283.1
Df Residuals:                     179   BIC:                             299.2
Df Model:                           4                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         22.8109      0.101    225.487      0.000      22.611      23.010
time          -0.2814      0.078     -3.622      0.000      -0.435      -0.128
meme           0.2342      0.263      0.889      0.375      -0.286       0.754
DID(meme)      0.3299      0.373      0.885      0.377      -0.405       1.065
rank_l        -2.0459      0.034    -60.211      0.000      -2.113      -1.979
==============================================================================
Omnibus:                        1.239   Durbin-Watson:                   0.940
Prob(Omnibus):                  0.538   Jarque-Bera (JB):                1.340
Skew:                          -0.172   Prob(JB):                        0.512
Kurtosis:                       2.762   Cond. No.                         32.9
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

モデル4


                            OLS Regression Results                            
==============================================================================
Dep. Variable:             border_log   R-squared:                       0.953
Model:                            OLS   Adj. R-squared:                  0.952
Method:                 Least Squares   F-statistic:                     916.7
Date:                Thu, 18 Feb 2021   Prob (F-statistic):          5.12e-118
Time:                        12:44:33   Log-Likelihood:                -135.99
No. Observations:                 184   AIC:                             282.0
Df Residuals:                     179   BIC:                             298.1
Df Model:                           4                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         22.8175      0.102    222.991      0.000      22.616      23.019
time          -0.3163      0.081     -3.894      0.000      -0.477      -0.156
rank_l        -2.0459      0.034    -60.398      0.000      -2.113      -1.979
stray          0.0272      0.159      0.171      0.864      -0.287       0.341
DID(stray)     0.3780      0.225      1.681      0.095      -0.066       0.822
==============================================================================
Omnibus:                        2.649   Durbin-Watson:                   0.993
Prob(Omnibus):                  0.266   Jarque-Bera (JB):                2.666
Skew:                          -0.253   Prob(JB):                        0.264
Kurtosis:                       2.698   Cond. No.                         20.1
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

お分かりの通り、統計的に有意に影響が示されたのは前後ダミー(time)とランク(rank_l)の2つのみである。
よってインターネットミームとしての流行がゲーム内におけるアイドル自体の人気に影響を及ぼしているとは言えないことが分かった。

(余談ですが、介入前後のダミーってみんなどう記載しているのでしょうか?)

 

Q.つまりネットで流行しても人気は増えないってこと?
A.違います。「流行が人気に影響するとは言えない≠流行は人気に影響しない」です。
 
Q.じゃぁ今回の分析でいえることは?
A.2周年より2.5周年Pカップの方が平均的にボーダーが低かった。

 

結論 

インターネットミームとしての流行がゲーム内におけるアイドル自体の人気に影響を及ぼしているとは言えない

 

感想

上の分析やった後、10位ボーダーの値を外したデータでも同じ分析しましたが結果は同じでした。データ見ると冬優子は100位ボーダー以外はボーダー上がってるのでいい結果が出るかと思いきや、統計的には示せませんでした。

有意水準90%という甘めの値だとモデル4でストレイに対して+の影響があると言えはしますが、モデル2では全然有意じゃないのでこれをもって影響があるというのはダメな気がします。

まぁ今回の分析は再現超簡単なので誰か他の変数入れるとか改善案あったらやってみてください。

あとTwitterにも書きましたが、お気持ち表明に対して「言っていることは分かるが言い方が良くない」というのはトーンポリシングなのでやめた方がいいと思います。

個人的には「誤った認識が担当アイドルへの入り口になってほしくない」という感情は理解できますし。

モルカーの流行でモルモットを飼いたい人は増えたのか?

はじめに

最近、時系列分析の勉強をしていたので適当なデータを利用した練習をします。




モルカーが話題になった影響でTwitter上で安易にモルモットを飼うなという注意喚起がされていますが、実際モルカーの影響でモルモットを飼おうという人は増えたのかをテーマに分析しました。




データセット

Googleトレンドで
「モルカー」
「モルモット 飼い方」
「モルモット」
の3つを検索ワードとして過去7日間の人気度を取得したものをデータセットとして利用。




データ

まずは生データを見てみる。
f:id:viola_voila:20210113221002p:plain
青が「モルカー」、オレンジが「モルモット 飼い方」、グレーが「モルモット」のトレンド変遷である。
Googleトレンドの値が何を意味しているのか全く意味がわからないが、少なくとも「モルカー」が1/9~1/10辺りから流行りだしたことなどは見てわかる。



どう見ても定常じゃないので差分をとる

f:id:viola_voila:20210113221357p:plain





検定

単位根検定

とりあえず単位根検定をしてみる。今回はADF検定をした。


adf pvalue
モルカー -0.8016647021530755 0.8186325848173441
モルモット 飼い方 -3.6408613454716288 0.0050262168486616045
モルモット -2.362131454563925 0.1527109321956232


「モルモット 飼い方」に関してはp値が0.05以下であり単位根を持たないと考えられるが、「モルカー」、「モルモット」に関しては単位根過程だと思われる。





共和分検定

「モルカー」、「モルモット」が単位根過程っぽかったので共分散検定をしてみる。
今回はEngle-Granger検定をした。

coint_t pvalue
「モルカー」×「モルモット 飼い方」 -1.4533819910927528 0.7786308032035839
「モルカー」×「モルモット」 -3.1468598135787516 0.07927323115015772


どちらもp値が0.05以上のため共和分関係には無いと思われる。(後者は少し怪しいが)






分析

とりあえず
①「モルカー」と「モルモット」は単位根過程
②「モルカー」と「モルモット 飼い方」、「モルカー」と「モルモット」に共和分関係はない
という検定結果だったので差分をVARモデルで推定→グレンジャー因果とインパルス応答を見てみる。




結果

グレンジャー因果
Test statistic Critical value p-value df
「モルカー」→「モルモット 飼い方」 0.8186 2.235 0.537 (5, 438)
「モルカー」→「モルモット」 5.150 2.235 0.000 (5, 438)

「モルカー」→「モルモット」はp値が0.000のため因果がある(モルカーが流行ることでモルモットについて調べる人が増えた)と考えられるが、「モルモット 飼い方」への因果はあると言えない。


インパルス応答

f:id:viola_voila:20210113224658p:plain
※y1=「モルカー」、y2=「モルモット 飼い方」、y3=「モルモット」



y1->y3を見ると1期後に正の影響が見えるため上記の結果と合わせてモルカーが流行ることでモルモットについて調べる人が増えたと言えるだろう。
逆にy1->y2では影響は見られないため、上記の結果と合わせてモルカーが流行ってもモルモットの飼い方を調べる人は増えなかったと考えられる。




結論

①モルカーが流行ったのでモルモットについて調べる人は増えた
②モルカーが流行ってもモルモットの飼い方を調べる人は増えたとはいえない




あとがき

年末に沖本本で勉強しましたが、やはり手を動かさないと分からない部分が多いですね。
逆に理論的な部分は手を動かすだけじゃ分からないのでどっちもやっていく必要がありそうです。


2020年はホロライブの年だったのか?

はじめに

VTuberすごいですね。
kai-you.net

ランキングから見て分かる通り、2020年のVTuber界はホロライブ躍進の年だったと言っても過言ではないでしょう。

今回はDID(Difference in Difference)を利用して2020年のホロライブの躍進をデータから示したいと思います。

間違っている部分があればコメントください。

DIDとは

tjo.hatenablog.com

わたしの説明より分かりやすい記事があるので読んでください。


データセット

playboard.co
上記サイトから2020年度のスーパチャットランキング上位のVTuberをホロライブから上位10名、にじさんじから上位10名選出
https://socialblade.com/のデータから上記VTuberの2020年1月の登録者数と2020年12月の登録者数を抽出。
※イブラヒムは2020年2月デビューのためランキング上位にいましたが今回は選出外としました。


DIDのやり方

今回はかなりシンプルに
目的変数:登録者数
説明変数:時期ダミー(1月のデータなら0、12月のデータなら1となるダミー変数)、ホロライブダミー(ホロライブ所属なら1、にじさんじ所属なら0となるダミー変数)、DIDダミー(時期ダミー×ホロライブダミー)
としてOLSで分析をしました。


結果

                            OLS Regression Results                            
==============================================================================
Dep. Variable:             Subscriber   R-squared:                       0.817
Model:                            OLS   Adj. R-squared:                  0.801
Method:                 Least Squares   F-statistic:                     53.41
Date:                Mon, 04 Jan 2021   Prob (F-statistic):           2.46e-13
Time:                        13:35:17   Log-Likelihood:                -156.89
No. Observations:                  40   AIC:                             321.8
Df Residuals:                      36   BIC:                             328.5
Df Model:                           3                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         13.9010      4.074      3.412      0.002       5.638      22.164
Time          17.6190      5.762      3.058      0.004       5.934      29.304
Holo          -3.2550      5.762     -0.565      0.576     -14.940       8.430
DID           47.0750      8.148      5.777      0.000      30.550      63.600
==============================================================================
Omnibus:                        5.596   Durbin-Watson:                   1.881
Prob(Omnibus):                  0.061   Jarque-Bera (JB):                7.236
Skew:                           0.082   Prob(JB):                       0.0268
Kurtosis:                       5.077   Cond. No.                         6.85
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

簡単に統計分析の読み方を説明します。
まず今回は因果推論なので決定係数が高い必要はそこまでない認識ですが自由度調整済み決定係数を示すAdj. R-squaredは0.801となっており、このシンプルなモデルでデータの8割は説明できるということになっています。


因果推論と決定係数の話は以下のツイートの説明が分かりやすいです。


決定係数の解説はこちらが分かりやすいと思います。予測をする際のモデルの比較という意味ではAICを使うほうが多い気もしますが。
27-4. 決定係数と重相関係数 | 統計学の時間 | 統計WEB



因果推論として最も大事な部分はここです。

                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         13.9010      4.074      3.412      0.002       5.638      22.164
Time          17.6190      5.762      3.058      0.004       5.934      29.304
Holo          -3.2550      5.762     -0.565      0.576     -14.940       8.430
DID           47.0750      8.148      5.777      0.000      30.550      63.600

※Time:時期ダミー、Holo:ホロライブダミー、DID:DIDダミー
※登録者数は(万人)


DIDで何を見るかといえば当然ですがDIDの項目です。
DIDの項目のP>|t|の値を見ると0.000となっています。これは”本当はDIDダミーはチャンネル登録者数に影響しないのに、偶然coefが47.0750なんて値が出てしまったという確率は0.000%”ということを意味しています。
いわゆる統計的に有意というやつです。
逆に言えばホロライブダミーのP>|t|の値は0.576と大きいため「ホロライブであるかどうかはチャンネル登録者数に影響があるとは言えない」ということになります。

ではDIDダミーが有意で47.0750ということはどういう意味でしょうか。
DIDダミー時期ダミー×ホロライブダミーなので"ホロライブ所属かつ2020年12月のデータ"のみ1となるダミー変数です。
つまりここから言えることは「ホロライブ所属のVTuberは2020年の1月から12月でにじさんじVtuberと比べて統計的に有意にチャンネル登録者数が増加した」ということです。

ちなみにTimeダミーも有意なので「スパチャランキング上位のVtuberは2020年の1月から12月で統計的に有意にチャンネル登録者数が増加した」ということも言えます。当たり前といえば当たり前ですが。
ただしcoefの値を見るとTimeが17.6190(万人)でDIDが47.0750(万人)なのでホロライブの伸びがすごいことは分かります。

あとがき

DID久しぶりに使ってみましたが簡単かつ分かりやすいのでいいですね。
※前回はこちら
viola-voila.hatenablog.com


対立煽りに使われると嫌なんで一応言っておきますが私は2年連続でにじさんじマリカ杯の分析記事を書いたり、おりコウの配信で年を越すくらいはにじさんじのオタクでもあります。(一番好きなVTuberは雨森小夜さんです)
viola-voila.hatenablog.com
viola-voila.hatenablog.com

今回は単純に2020年はホロライブがすごかったよねということをデータを用いて統計的に証明したというだけなのでそれ以上でも以下でもありません。
例えばスパチャランキング上位のライバーしかデータとして利用していないといった問題や、そもそも「並行トレンド仮定」を満たすのかといった問題もありますので一概にこの結果だけで何かを言えるとは思いませんが、チャンネル登録者数のグラフを貼っつけてホロライブすごいよねっていうだけよりは面白いかなと思います。

ちなみに20名しか分析していない理由はSocialBladeのスクレイピングが上手く出来ないからなので、誰かSocialBladeから簡単に登録者数推移をスクレイピングする方法を知っている方がいたらご教示ください。






わたしが"マネージャー"をしているVTuberは半年でチャンネル登録者数が0人→6人でした。
www.youtube.com

第3回マリカにじさんじ杯のコメント傾向の変化を探る

はじめに

f:id:viola_voila:20201231202429j:plain
viola-voila.hatenablog.com

去年に引き続きマリカにじさんじ杯の予選参加者の配信コメントをスクレイピングしてKHコーダーを利用した分析をしました。

データセット

参加者のうち、配信のアーカイブでコメントが取得できるメンバー79名のコメントをスクレイピングし、サンプリング(5万件)したもの。
(前回は全コメントを分析していましたが、今回全コメントにすると50万件くらいになって負荷が高すぎるのでサンプリングしました)

えま★おうがすと(2回のみ)
える
でびでび・でびる(3回のみ)
アルス・アルマル
アンジュ・カトリーナ
イブラヒム(3回のみ)
エクス・アルビオ
エリー・コニファー
グウェル・オス・ガール
シェリン・バーガンディ
シスター・クレア
ジョー・力一(3回のみ)
ニュイ・ソシエール(3回のみ)
フミ
フレン・E・ルスタリオ(3回のみ)
ベルモンド・バンデラス
ラトナ・プティ
リゼ・ヘルエス
ルイス・キャミー(3回のみ)
レヴィ・エリファ
愛園愛美
安土桃(3回のみ)
卯月コウ
家長むぎ(3回のみ)
葛葉
空星きらめ(3回のみ)
郡道美玲
月ノ美兎
健屋花那(3回のみ)
剣持刀也
弦月藤士郎(3回のみ)
甲斐田晴(3回のみ)
黒井しば
桜凛月
笹木咲(3回のみ)
三枝明那
山神カルタ
社築
渋谷ハジメ(3回のみ)
出雲霞(2回のみ)
春崎エアル
小野町春香(3回のみ)
神田笑一
瀬戸美夜子(2回のみ)
成瀬鳴
星川サラ
雪城眞尋
早瀬走(3回のみ)
相羽ういは
鷹宮リオン(3回のみ)
朝日南アカネ(3回のみ)
町田ちま(3回のみ)
長尾景(3回のみ)
椎名唯華
天宮こころ
東堂コハク(3回のみ)
童田明治(2回のみ)
奈羅花(3回のみ)
白雪巴
飛鳥ひな
樋口楓
不破湊
舞元啓介
伏見ガク(3回のみ)
物述有栖(2回のみ)
文野環(3回のみ)
北小路ヒスイ(3回のみ)
本間ひまわり
魔界ノりりむ
魔使マオ
夢追翔(3回のみ)
夜見れな
夕陽リリ
葉加瀬冬雪
葉山舞鈴(2回のみ)
来栖夏芽(3回のみ)
鈴鹿詩子
鈴谷アキ
鈴木勝

共起ネットワーク

共起ネットワークとは文章の中で「どんな単語がどんな単語と一緒によく使われていたのか」を表すものです。

まず、全コメントの共起ネットワークを見てみると図1のようになります。

f:id:viola_voila:20201231203633p:plain
図1.第3回にじさんじマリカ杯、全コメントにおける共起ネットワーク
f:id:viola_voila:20191227172703p:plain
図2.第2回にじさんじマリカ杯、全コメントにおける共起ネットワーク

円の大きさが単語の出現率で線で繋がっている単語がよく一緒に使われる単語です。
昨年と比較しても大きく傾向は変わっていません。


ここから各ライバーの特徴を見てみたいのでコメントにライバーを紐づけた共起ネットワークを確認してみます。

f:id:viola_voila:20201231204445p:plain
図3.各ライバーを外部変数とした共起ネットワーク(第3回)

上記のコメントがどのライバーに紐づいているのかが分かるようになりましたが、あまりこちらもよく分からない&変化が見にくいですね。

コーディング

共起ネットワークから気になった単語をピックアップしてコードとして分析していきます。

コードとは複数の単語をまとめて一つの分析対象としたものです。

例えば上の共起ネットワークで目立っている「w」のような笑いをコードとして分析することでどのライバーの配信で笑いが多かったかが分かります。

f:id:viola_voila:20201231204715p:plain
図4.各ライバー毎の「草」コメント率

今回は「草」というコードとして「草」、「w」、「笹」という単語の含まれたコメントの割合を分析しました。

***草
剣持刀也(第2回) 27.27%
瀬戸美夜子(第2回) 26.92%
樋口楓(第2回) 26.61%
グウェル・オス・ガール(第3回) 26.32%
夕陽リリ(第2回) 22.99%
小野町春香(第3回) 22.73%
シェリン・バーガンディ(第2回) 21.64%
三枝明那(第2回) 19.37%
える(第3回) 18.11%
弦月藤士郎(第3回) 17.37%

サンプリングしているので割合は絶対的なものではありませんが、どのライバーが笑いをとっていたのかが一目瞭然です。

第3回で1番コメント欄で草が生えていたグウェルさんの共起ネットワークは以下のようになりました。

f:id:viola_voila:20201231211151p:plain
図5.グウェル(第3回)コメント欄の共起ネットワーク
応援

続いて「応援」というコードで分析してみました。

対象の単語は「頑張る」「ファイト」「いける」「応援」「行ける」「勝てる」「がんばえ」です。

f:id:viola_voila:20201231205912p:plain
図6.各ライバー毎の「応援」コメント率
***応援
白雪巴(第3回) 19.05%
フミ(第3回) 16.10%
夢追翔(第3回) 14.80%
春崎エアル(第3回) 14.60%
鈴木勝(第2回) 13.29%
朝日南アカネ(第3回) 12.75%
飛鳥ひな(第2回) 12.50%
空星きらめ(第3回) 12.43%
白雪巴(第2回) 11.61%
出雲霞(第2回) 11.37%

応援が多かったのは上記ライバー達です。巴さんやフミ様、王子が多くの応援を集めています。

巴さんの共起ネットワークはこんな感じ。

f:id:viola_voila:20201231212318p:plain
図7.白雪巴(第3回)コメント欄の共起ネットワーク
お疲れ様/おめでとう

続いては「お疲れ様」と「おめでとう」の2つのコードを見てみます。

「お疲れ様」は「おつ」「お疲れ様」、「おめでとう」は「おめでとう」のみです。

f:id:viola_voila:20201231212811p:plain
図8.各ライバー毎の「お疲れ様」・「おめでとう」コメント率
***お疲れ様
飛鳥ひな(第3回) 11.86%
夜見れな(第2回) 7.65%
レヴィ・エリファ(第3回) 6.35%
グウェル・オス・ガール(第2回) 6.11%
白雪巴(第2回) 5.95%
夜見れな(第3回) 5.93%
夢追翔(第3回) 5.83%
シスター・クレア(第2回) 5.76%
エリー・コニファー(第2回) 5.29%
天宮こころ(第2回) 4.65%
***おめでとう
成瀬鳴(第3回) 6.67%
愛園愛美(第2回) 6.51%
黒井しば(第2回) 6.45%
安土桃(第3回) 6.15%
愛園愛美(第3回) 5.00%
白雪巴(第3回) 4.76%
天宮こころ(第3回) 4.65%
伏見ガク(第3回) 4.44%
家長むぎ(第3回) 4.44%
フミ(第3回) 3.75%

ここから先は去年使ったコードをおさらい。

褒め

「ナイスゥ」「上手い」「いいね」「えらい」「凄い」「良い」「よし」といった褒め言葉をまとめました。

f:id:viola_voila:20201231213113p:plain
図9.各ライバー毎の「褒め」コメント率
***褒め
安土桃(第3回) 20.00%
来栖夏芽(第3回) 12.90%
家長むぎ(第3回) 10.00%
葛葉(第3回) 9.85%
北小路ヒスイ(第3回) 9.49%
成瀬鳴(第2回) 7.52%
葉山舞鈴(第2回) 7.28%
シェリン・バーガンディ(第3回) 7.21%
樋口楓(第3回) 7.03%
鈴鹿詩子(第2回) 6.97%
叫び

「叫び」(「おおおおお!!!」「ああああ!」等)

f:id:viola_voila:20201231214828p:plain
図10.各ライバー毎の「叫び」コメント率
***叫び
奈羅花(第3回) 10.13%
フミ(第3回) 5.99%
健屋花那(第3回) 5.38%
黒井しば(第2回) 4.84%
卯月コウ(第2回) 4.74%
鈴木勝(第3回) 4.30%
愛園愛美(第2回) 4.19%
ラトナ・プティ(第2回) 4.13%
白雪巴(第3回) 3.81%
鈴鹿詩子(第2回) 3.60%
助かる
f:id:viola_voila:20201231214957p:plain
図11.各ライバー毎の「助かる」コメント率
***助かる
東堂コハク(第3回) 2.75%
夜見れな(第2回) 1.76%
春崎エアル(第2回) 1.65%
夕陽リリ(第3回) 1.56%
雪城眞尋(第2回) 1.39%
エリー・コニファー(第2回) 1.32%
社築(第3回) 1.29%
奈羅花(第3回) 1.27%
空星きらめ(第3回) 1.13%
黒井しば(第3回) 1.10%


ここら辺は割合が低いものをサンプリングしているのであまり当てにならないですね……



対応分析

さてコードを使って色々とライバーの特徴を見てきましたが、各ライバーを分類したいとなったときにコードだけでは難しいです。そこで対応分析を利用します。

対応分析とは各ライバーに特徴的なコードを散布図として表したものです。

f:id:viola_voila:20201231215221p:plain
図12.コードを用いた各ライバーの対応分析

中央の(0,0)に近いほど特徴的ではなく、全体的に使われていたコードになります。

本選出場者が多い上の方には「おめでとう」が、反対側の下の方には「お疲れ様」「可愛い」といったコードが出ています。

また、「草」といったコードが右側、それ以外のコードが左側と別れています。


昨年はこれらのコードをもとにライバーを3タイプに分類しました。

ライバー分類
ここからライバーを3種類に分類すると

中央右側、「草」のコードが特徴的な芸人気質ライバー
左下側、「かわいい」のコードが特徴的なアイドル的ライバー
左上側、「おめでとう」のコードが特徴的なゲーマーライバー
の3つに分類できるのかなと思います。


今年はコードの出現率をベクトルとして第2回と第3回のユークリッド距離を求めて距離が遠い=第2回から第3回でコメントの傾向が変わったライバーに注目したいと思います。

**ライバー名 **距離
フミ 0.206
剣持刀也 0.193
グウェル・オス・ガール 0.184
シスター・クレア 0.151
夕陽リリ 0.145
樋口楓 0.142
飛鳥ひな 0.138
雪城眞尋 0.129
葉加瀬冬雪 0.119
黒井しば 0.113

ベクトル距離のトップ10は上記ライバー達です。
上位4名を先程の対応分析の表で見比べてみましょう。


フミ
f:id:viola_voila:20201231215621p:plain
図13.フミのコメント傾向の変化

第2回では右下の芸人エリアに属していたフミ様が今回は上部のゲーマーライバーの領域に移動しています。
この動きは後述する剣持さんも同じなのですが、剣持さんは元々ゲームが上手いが芸人扱いされていたのに対して、フミ様はゲームが元々得意ではないが練習を重ねる姿からこのようにコメント傾向が変化したと考えられる。


剣持刀也
f:id:viola_voila:20201231220027p:plain
図14.剣持刀也のコメント傾向の変化

前述したとおり剣持さんも芸人エリアからゲーマーライバーエリアへ移動している。これに関しては本来の実力がきちんと評価されたというのが正しいだろう。


グウェル・オス・ガール
f:id:viola_voila:20201231220158p:plain
図15.グウェル・オス・ガールのコメント傾向の変化

前回は原点付近で特に目立つコメントの傾向がなかったが、芸人エリアへ移動。第3回トップの草率だったのでその変化は大きい。

シスター・クレア
f:id:viola_voila:20201231220349p:plain
図16.シスター・クレアのコメント傾向の変化

クレアさんは可愛いアイドルライバーエリアから芸人エリアへ近づいています。ちくわ大明神。


ちなみに変化が少なかった上位はこんな感じ。

**ライバー名 **距離
エクス・アルビオ 0.017
社築 0.030
リゼ・ヘルエス 0.030
卯月コウ 0.037
星川サラ 0.040
神田笑一 0.043
エリー・コニファー 0.045
山神カルタ 0.047
相羽ういは 0.050
舞元啓介 0.052
まとめ

というわけで今年は去年のコメントと比較して変化が大きかったライバーに着目してみました。
フミ様の変化とかが上手くデータで出ていたのは面白かったですね。

推しのチャンネル登録してください。
www.youtube.com

チサンイン名古屋の謎

  • はじめに
  • トリック考察
    •  
    • ①ドア・鍵を使ったトリック
      • 結論
    • ②窓を使ったトリック
      • 結論
    • ③音を利用したトリック
      • 結論 
    • ④その他のトリック
      • 結論
      • 結論
  • あとがき

 

はじめに

f:id:viola_voila:20201116175934j:image

さて、皆さんは「チサンイン名古屋」というホテルをご存じだろうか。

まるでミステリ小説に出てくるようなフロアマップとして話題になったため、見たことがある人もいるかもしれない。

 

実際のフロアマップ

f:id:viola_voila:20201116175914j:image

 

今回は実際にこの「チサンイン名古屋」に泊まり、実地調査をすることで本当にミステリ小説のような事件を起こせるかどうかを検証したい。

 

 

トリック考察

 

①ドア・鍵を使ったトリック

古今東西ドアを利用したトリックは多数存在する。一番シンプルなものは外側から鍵を開け閉めすることで密室を作り出すものであろうが、それらのトリックが可能か検証する。

 チサンイン名古屋の実際のドアと鍵は以下の写真のようになっている。

f:id:viola_voila:20201116180022j:image

f:id:viola_voila:20201116180033j:image

まずホテルなので当たり前だがチサンイン名古屋はオートロックである。

ゆえに鍵のかかった部屋を作り出すだけなら容易であり、鍵を閉めるタイプのトリックはトリックとして成り立たない。

 

それでは反対に鍵のかかったドアを開けるトリックはどうだろうか?

まずはドアの隙間から糸や針金を通して鍵を開けるトリックを考察する。

チサンイン名古屋のドアは下の部分に隙間が空いているため、ある程度の厚みのものなら室内に入れることは可能であろう。

f:id:viola_voila:20201116180114j:image

ただしドアノブが丸型のため内側のドアノブに針金をひっかけて扉を開けるといったトリックは実現性が低い。

 

それ以外の方法となると蝶番を外してドアごと開けるといったトリックもあるが、外側から干渉できる部分が存在しないためこのトリックも成り立たない。

当然だが簡単に部屋に入ることは出来ないセキュリティなのだ。

 

その他にもカードキータイプのホテルでよくある鍵を壁面のスロットに差し込んで照明をオンにするタイプの場合、刺さっている鍵をすり替えることで鍵を手に入れて、後から侵入するといったトリックもあるがチサンイン名古屋はそのタイプではないので室内で鍵を見つける必要がある。

鍵を探す手間がかかる分、すり替える瞬間に照明が消えないのでバレにくいというメリットもあるがそもそも室内に入ることが難しいので室内で鍵をすり替えるトリックは成り立たせにくいだろう。

また、すり替えた後に部屋の住人が外に出て再度部屋に入ろうとした時点ですり替えがバレてしまうのでトリックとして穴が多い。

 

結論

・ドアの隙間から何かを入れることによるトリックは可能。

・(防犯上当たり前だが)ドア自体を開けることは難しい。

・オートロックなので鍵をかけて密室にすることは容易。

・鍵のすり替えトリックは可能だが、室内に入り込んですり替えが出来る時点でわざわざ鍵を手に入れる必要がない気もする。

 

鍵を閉めるトリック

実現可能性:★★★★★

面白さ:★☆☆☆☆

 

ドアを開けるトリック

実現可能性:☆☆☆☆☆

面白さ:★★★★★

 

鍵をすり替えるトリック

実現可能性:★★★☆☆

面白さ:★★★☆☆

 

②窓を使ったトリック

密室においてドアがダメだったら窓と相場が決まっているので窓を使ったトリックを考える。

 実際の窓

f:id:viola_voila:20201116181902j:image

チサンイン名古屋のフロアマップを見ればわかるが内側の中庭に面する窓がある部屋と、外周に面する窓がある部屋の2タイプに分かれる。

f:id:viola_voila:20201116182140j:image

外周の窓に関しては外から丸見えかつ、隣のビルなどもないためトリックに使うことは難しい。

そのため今回は内側の窓が存在する部屋に関してトリックを考察する。

 

窓は片側のみがわずかに開く仕組みになっており、ボタンを押しながらでないと閉められない仕組みとなっている。

f:id:viola_voila:20201116181934j:image

そのため室外から窓を閉めるのは非常に難しい。(何らかの物体を使ってボタンを押してもその物体が室内に残ってしまう。)

 

窓を開く際にもロックを解除する必要があるため外側から開けることも困難である。

f:id:viola_voila:20201116223528j:image

 

また当たり前であるが高層階は窓に対して外側から干渉するための足場が存在しない。窓を内側から開けて室内の巨大なものを細かく分けて捨てる物体消失トリックとしては可能かもしれないが、それ以外の利用は難しいだろう。

 

結論

・外からの窓の開閉は不可能。

・大型のものを小さくバラして部屋から消す物体消失トリックは出来るかもしれない。

 

窓の開閉トリック

実現可能性:☆☆☆☆☆

面白さ:★★★★★

 

窓を利用した物体消失トリック

実現可能性:★★★☆☆

面白さ:★★★☆☆

 

③音を利用したトリック

 これは部屋に実際に泊まって感じたことだが、かなり周囲の部屋や廊下の音が聞こえやすい。そのため音を利用したトリックは可能性があると感じた。

 

例えば部屋の中に音を再生する機器を置いておくことで特定の時間に人が部屋にいたように見せかけることが出来るだろう。

これらを利用したアリバイトリックは可能と思われる。ただし機材を利用した場合はそれらの回収が必要となる。

 

上記の通りドアを外側から開けることは難しいが、事件が発覚し室内に入ったタイミングで回収する早業トリックや、スマートフォンなど小型の再生デバイスをドアの下から入れて回収などのトリックなら可能だと思われる。

 

結論 

音を利用して誰もいない部屋に人がいたように見せかけることは可能。

 

音を利用したアリバイトリック

実現可能性:★★★★☆

面白さ:★★★★☆

 

④その他のトリック

各階・各部屋の構造が似通っているため寝ている間に別の階の同じ部屋に移動させて自分のいる部屋を誤認させるようなトリックがある。

 

これに関してだが実はチサンイン名古屋は階ごとに部屋の扉の色が異なる。そのため別の階に移動させて部屋を誤認させることは難しい。(例えば実は色弱だったため色の違いが分からなかったなどという形で工夫すればトリックとして成り立つ)

 

同じ階の部屋に関しては内側・外側さえ合っていればどの部屋から出ても廊下の風景が似ていることもあり誤解させることは可能だと思われる。

 

f:id:viola_voila:20201116182031j:image

 

結論

別の階の部屋と誤認させることは難しいが、同じ階の部屋なら誤認させることが出来ると思われる。

 

部屋の誤認トリック

実現可能性:★★★★☆

面白さ:★★★★☆

 

事件を起こした後、ドアの後ろに隠れて密室を装う古典的なトリックがあるが、部屋の構造から隠れることはかなり難しい。

f:id:viola_voila:20201116182105j:image

 

結論

ドアの後ろに隠れる隙間はない。

 

ドアの後ろに隠れるトリック

実現可能性:☆☆☆☆☆

面白さ:★☆☆☆☆

 

 

あとがき

これまでの考察から物理的なトリックではなく、アリバイトリックが現実的であるということが分かる。

例えば音のトリックと部屋の誤認トリックを組み合わせることで特定の部屋の状態を内側からも外側からも勘違いさせることができるかもしれない。

とはいえ実際に行うには同フロアで複数の部屋を予約し、ドアの隙間から入る音響機材を準備し、部屋を誤認させる人に睡眠薬を盛るなどして部屋の移動に気づかないようにし、誰にも会わないことを願いながら別の部屋へと人を移動させるといった到底現実的ではない手間がかかるのでやはりミステリはフィクションとして楽しむこととしよう。

 

 

 

 

 

 

 

 

 

 

 

***

 

以上が被害者が最後に更新したブログの記事です。

 

被害者はこの記事が投稿された翌日に708号室と7階の自動販売機コーナーから遺体となって発見されました。

発見箇所が2か所となっているのは被害者の胴体が708号室で、ビニール袋に入れられた頭部が自動販売機コーナーから発見されたためです。

708号室は首の切断時に出た血が部屋中に飛び散っていましたが、被害者とホテルの従業員以外の指紋は見つからず、頭部が入っていたビニール袋からも指紋は採取されませんでした。

部屋は荒らされていましたが被害者の荷物は残っており、財布やスマートフォンなどもあったため盗まれたものは無かったと考えられます。

 

f:id:viola_voila:20201218221224p:plain

 

【708号室に残されていたもの】

・財布(所持金12683円およびカード類在中。)

スマートフォン(iPhone12。指紋は残っていなかった)

・708号室の鍵(被害者の指紋あり)

・被害者の洋服(血痕などは確認されなかったが散らかっていた)

・アニメショップのレジ袋(配布されている冊子のみ在中)

タブレット端末(iPad pro)

 

死因は頭部打撲による脳挫傷。死亡推定時刻は18:00~22:00頃との報告です。また遺体の首を切ったりなどの作業もろもろ含めて30分程度はかかり、頭部の切断は死後1時間以内に行われたことも判明しています。

フロントにて17:54に被害者のチェックインの記録が残っており、監視カメラにも入館時の映像が残っていました。監視カメラの映像によるとその後退館はしていないようです。

 

まず現場の隣である707号室の宿泊客から事情聴取を行いました。

 

【707号室宿泊者の証言】

 

事件当日は日中仕事があったので、だいたい19:00頃にホテルに帰ってきました。

その後は部屋で夕食をとったりテレビを見たりしていましたが、隣の部屋から不審な物音が聞こえるといったことはありませんでした。時々廊下から話声は聞こえましたが叫び声などは聞こえなかったです。

夜21:00過ぎくらいにシャワーを浴びたのでその時間帯は隣の部屋で何か音がしても気づかなかったと思います。21:00~21:20のだいたい20分くらいですかね。

次の日も朝から仕事の予定だったので23:00には寝ました。

睡眠薬を普段から服用して寝ているので23:00以降に物音がしても気づかなかった可能性が高いです。

8時以降は基本的に静かだったのでシャワーを浴びてる時間以外に隣の部屋で何か起きたら分かったと思います。特に人の出入りの音なんかも聞こえませんでした。

 

***

 

その後、被害者について調査をしていたところ事件当日にホテルで友人に会っていたことが分かりました。

被害者と友人はSNS上で知り合った友人らしく、該当の友人がホテルに出入りしていることは監視カメラにて確認済みです。(19:47入館、20:01退館)

以下は事情聴取をまとめたものです。

 

【被害者と会った青年の証言】

被害者の方とはSNSで同じゲーム作品が好きということで仲が良くなって、実際に会うのは今回が初めてでした。今そのゲームでは全国のアニメショップとコラボをしていてご当地限定グッズを出しているのですが、被害者の方は名古屋にそのご当地限定グッズを買いに来たようです。

かくいう私も東京のご当地限定グッズを代理購入してもらっていたのでそれを受け取りに会いに行ったのですけどね。

基本的にはTwitterのDMで連絡を取っていて、ホテルまでグッズを取りに来てほしいといわれたので当日夜8時頃に現場のホテルまで向かいました。

到着したら電話が欲しいといわれていたのでホテルについた時点で電話をかけ、電話をしながら7階までエレベータで上がりました。

7階に到着して708号室に向かっている途中で部屋から被害者の方が電話片手にドアを開けて出てきたので部屋の前でグッズを受け取りました。

その際、部屋の中が少し見えましたが散らかった様子はなく普通でした。少なくとも死体や血は無かったです。

顔に関しては初対面かつお互いマスクをしていたので、間違いなく被害者の方だと断言はできないですね。

とにかくグッズを貰って少し立ち話をしてすぐに帰りましたよ。滞在時間は10分くらいだったと思います。

 

 

【被害者と青年のDMでのやりとり】

 

被害者:17:48 今晩7時くらいに取りに来てもらうので大丈夫ですか?

 

青年:17:51 全然大丈夫です!場所どこですか?

 

被害者:17:52 ホテルまで来てもらう感じでもいいですかね。チサンイン名古屋の708号室なんですけど

 

青年:17:55 大丈夫ですよー!

 

被害者:17:57 お願いします!

 

青年:18:13 すみません!取りに行くの8時くらいになっても大丈夫ですか!?

 

被害者:18:48 大丈夫です!ホテル着いたら電話いただけますか?090-XXXX-XXXXです!

 

青年:18:52 ありがとうございます!了解しました!

 

青年:19:38 もうすぐホテル着きます!

 

被害者:19:39 はい!電話ください!

 

(その後19:46~19:49まで被害者と青年の電話の履歴を確認済)

 

***

 

7階に泊まっていた他の宿泊客やホテルの従業員にも一応事情聴取をしましたがあまり有意義な情報は手に入りませんでした。一部を抜粋します。

 

【722号室宿泊者の証言】

ホテルには夕方5時くらいにチェックインしました。18時過ぎに一回夕食を買いに外のコンビニまで行きましたがそれ以外はずっと部屋にいましたね。

夜8時ごろにのどが渇いたので自販機でドリンクを購入しましたが、その時には特に不審なものや人は見かけませんでした。8時の時点で7階は静まりかえってましたので、何か不審な音がしたら隣の部屋の人とかは気づくんじゃないかな。

 

【731号室宿泊者の証言】

夕食を食べてからホテルに帰ってきたので部屋についたのは大体21時過ぎぐらいだったと思います。特に怪しい人とかは見てませんが、事件当日の夜中2時ぐらいに自販機を使った際には例のビニール袋は置いてありました。こんなところにゴミを捨てていくなんて迷惑な人がいるなと思ったのを覚えているので。でもその時点では遺体だなんて思っていなかったので何もしなかったです。

 

【746号室宿泊者の証言】

事件当日は午後6時頃にホテルに帰って来たのですが、そのタイミングで被害者の方らしき人を廊下で見かけました。まぁ顔をしっかり見たわけではないので人違いかもしれませんが……その後20時過ぎに夕食に出かけて帰ってきたのは24時くらいだったと思います。自販機は使ってないので例のビニール袋に関しては分からないですね。

 

【ホテルの従業員の証言】

708号室のお客様は事件翌日にチェックアウトの予定でしたが、時間を過ぎてもなかなかチェックアウトされませんのでお部屋まで伺いました。ノックをしても返事がなかったのでマスターキーを使って室内に入ったところ遺体を発見しました。ドアの鍵はしっかりとかかっていましたし、扉に特殊な細工がされた後はありませんでした。

マスターキーに関してはフロントで管理されているので盗まれて使われたといったことはありえないです。

 

 

***

 

調査報告は以上になります。

 

犯人はどのように被害者を殺害したのでしょうか。

被害者が最後に目撃された20時以降は部屋の鍵も被害者と共に室内にあったと考えられます。またマスターキーはフロントで管理されていたため708号室に入るためには内側から被害者に開けてもらう以外の方法はありません。しかし707号室の宿泊客は8時以降に物音などは聞いておらず、人の出入りは無かったと証言しています。

被害者のブログにあったように静かな部屋で音を立てて人がいたふりをすることは出来るかもしれませんが、逆は無理でしょう。

707号室の宿泊客がシャワーを浴びていた21:00~21:20の20分間は唯一出入りが出来た可能性がありますが、、遺体の首を切断するのには少なくとも30分はかかるとの報告から考えてその20分で部屋に入って首を切断し外に出るということは出来なかったと思われます。

 

つまり"708号室は密室だった"と言えるでしょう。

 

 

 

 

 

 

 

 

 

 

 

続きを読む