須通り
Sudo Masaaki official site
For the reinstatement of
population ecology.

今回は米図は扱わない

     

ホーム | 統計 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」の値を推定して用いることになる。

ここで一つ、信頼区間ないし、その下限値に基づいて動画ランキングを作ってみることを、読者の諸兄姉方に提案したい。この基準に基づく動画の序列付けとユーザー側の主観的な評価との間に、どの程度の齟齬が生じるのかについては、実地でテストして感想を募る必要があるわけだ*。

*結論丸投げとも言う。