ホーム | 統計 Top | ニコニコ動画のマイリスト率について
目次
マイリスト率を二項分布で表現する
動画共有サイトにおいて、単純な再生数やマイリスト登録数(あるいはコメント数)のみを基準としたランキングは、集計時点で既に人気が出ているか否かに大きく依存した結果を返すだろう。そこで、ある作品に対する視聴者の満足度を計りたい場合、再生数の影響を排除する必要がある。ニコニコ動画の場合、ユーザーが知りうる数値情報として「再生数」「コメント数」「マイリスト数」の3つが一般的である。このときマイリスト率は「マイリスト数/再生数」で表され、動画を再生した人のうち、高評価をつけた人の割合を表す指標と捉えることができる。
さて、ある動画を視聴したユーザーが確率 p でマイリストに登録するとしよう(このpの値そのものは不明とする)。このとき、n人のユーザーが動画を見て、そのうちx人がマイリストに入れるという事象を考えると、この確率変数xは二項分布B(n, p)により近似される。厳密には動画サイトの登録ユーザー数が無限ではないため非復元抽出(超幾何分布)になり、二項分布そのものではないが、近似は可能らしい。
要するに n が十分に大きければ(たくさんの人間が動画を見れば)
x = p * n としてもいいよね、と言っているだけのこと。
真のマイリスト率をどの程度まで正しく知ることができるか?信頼区間という考え方
再生数 n が数十とか数百とかいった、それほど大きくない数字のとき、真のマイリスト率である p は、実際に観測できる相対頻度としての x/n により十分に推定されうるだろうか?
例えば10万回再生された動画のマイリスト数が10000であれば、マイリスト率は大体10%だと見て差し支えないだろう。ところが10回しか再生されていない動画のマイリスト数が1であったとき、マイリスト率を将来にわたって10%程度で推移するだろうと言えるか。この場合、11人目の視聴者がたまたま登録すればマイリスト率は2/11≒18%にまで上昇し、登録しなければ1/11≒9.1%に低下してしまう。つまりサンプルサイズが小さい(視聴者が少ない)とき、マイリスト率の推定は、より大きな誤差を孕む。
この誤差が概ねどの程度の範囲に収まるかを知りたい場合に使われるのが、信頼区間である。
> binom.test(10,100) Exact binomial test data: 10 and 100 number of successes = 10, number of trials = 100, p-value < 2.2e-16 alternative hypothesis: true probability of success is not equal to 0.5 95 percent confidence interval: 0.04900469 0.17622260 sample estimates: probability of success 0.1 > binom.test(100,1000) Exact binomial test data: 100 and 1000 number of successes = 100, number of trials = 1000, p-value < 2.2e-16 alternative hypothesis: true probability of success is not equal to 0.5 95 percent confidence interval: 0.08210533 0.12028794 sample estimates: probability of success 0.1
上から順に、再生数100でマイリスト数10および、再生数1000でマイリスト数100の場合のマイリスト率における95%信頼区間を、Rという統計解析ソフトを用いて計算した結果である。いずれも表面的なマイリスト率は10%だが、再生数100のときは信頼区間が4.9%から17.6%までばらつく。いっぽう再生数1000での信頼区間は8.2%から12.0%までであり、ばらつきは明らかに小さくなっている。
この結果の解釈は、(頻度主義的には)以下のような言葉で表される。
再生数100でマイリスト数が10のとき、この動画を視聴した者がマイリストに登録する割合は4.9%から17.6%の間であると言っておけば、20回中19回くらいは当たっているだろう。
マイリスト率をランキング集計基準に使えるか?
これから紹介するのは、2011年6月19日にニコニコ動画から収集されたログに基づく、「吹奏楽編曲リンク」タグ登録作品における再生関連データである。まず、タブ区切りのテキストファイルとして用意した元データをRに読み込ませる。
> henkyoku <- read.table("henkyoku1.txt", header=T) > head(henkyoku) id view comment mylist date 1 1 89753 9019 7028 38904 2 2 915 24 51 38488 3 3 3669 159 192 38688 4 4 1975 81 100 38872 5 5 1163 94 55 38887 6 6 686 15 25 38797 ##ただしidは動画のIDとは無関係な内部値、viewは集計日時点での再生数、commentは同コメント数、mylistは同マイリスト数、dateは動画投稿日のシリアル値 > summary(henkyoku) id view comment mylist date Min. : 1.00 Min. : 344 Min. : 12.00 Min. : 0.0 Min. :37784 1st Qu.: 34.75 1st Qu.: 1194 1st Qu.: 40.75 1st Qu.: 14.0 1st Qu.:38167 Median : 68.50 Median : 2134 Median : 80.50 Median : 27.0 Median :38466 Mean : 68.50 Mean : 5488 Mean : 339.64 Mean : 124.1 Mean :38422 3rd Qu.:102.25 3rd Qu.: 3757 3rd Qu.: 160.50 3rd Qu.: 78.0 3rd Qu.:38676 Max. :136.00 Max. :115014 Max. :9019.00 Max. :7028.0 Max. :38911
さらに小細工して、マイリスト率の上限値・下限値を計算し値を格納する。
upper <- numeric(136) ##136個の成分を含むベクトルを定義 for (i in 1:136) { ##1から136までの数字 upper[i] <- binom.test(henkyoku$mylist[i],henkyoku$view[i])$conf.int[2] ##二項信頼区間の上限値を収納 } henkyoku$upper <- upper lower <- numeric(136) ##136個の成分を含むベクトルを定義 for (i in 1:136) { ##1から136までの数字 lower[i] <- binom.test(henkyoku$mylist[i],henkyoku$view[i])$conf.int[1] ##二項信頼区間の下限値を収納 } henkyoku$lower <- lower
データの準備が出来たので、再生数とマイリスト率・その信頼区間の関係をプロットしてみよう。
plot((mylist/view)~view,data=henkyoku,log="x",xlim=c(100,100000),ylim=c(0,0.1),axes=F,ann=F) ##再生数とマイリス率の関係 par(new=T) # 上書き指定 segments(henkyoku$view, henkyoku$upper, henkyoku$view, henkyoku$lower, col="blue") axis(side=1,at=c(100,1000,10000,100000)) axis(side=2,at=c(0,0.02,0.04,0.06,0.08,0.1))

○印で表されているのが各動画の再生数(x軸)とマイリスト率の実測値(y軸)であり、上下に伸びる青い線分が、推定される真のマイリスト率の95%信頼区間である。
先に述べたとおり、再生数が少ないうちは推定精度が低く、再生数増加が信頼区間を収斂させる。この図から読み取れる情報として、再生数が数百のオーダーではマイリスト率の実測値から動画の人気不人気を判別することはおそらく困難であること(線同士の上下が交わってしまっているため)、再生数が万を超えるような動画では、マイリスト率が2%を超える例は稀であることなどが挙げられる。例外的に右上、明らかに異常な高マイリスト率の動画が一つあるが、これはどりゅ~氏による『*ハロー、プラネット。』のアレンジである。
となると、マイリスト率が動画の人気度のバロメータとして機能しそうなのは、再生数が千以上一万未満の中堅クラスであろう。

これは再生数が1000から10000の範囲における、各動画の「実再生数(x軸)」と「マイリスト率の95%信頼区間の下限値(y軸)」との関係をプロットしたものである。まあたぶん、相関を取っても傾きはゼロに近いだろう(つまり再生数の影響を受けにくいパラメータといえる)。厳密には、「x%信頼区間の下限値が傾きゼロで回帰されるときのx」の値を推定して用いることになる。
ここで一つ、信頼区間ないし、その下限値に基づいて動画ランキングを作ってみることを、読者の諸兄姉方に提案したい。この基準に基づく動画の序列付けとユーザー側の主観的な評価との間に、どの程度の齟齬が生じるのかについては、実地でテストして感想を募る必要があるわけだ*。
*結論丸投げとも言う。