ニコニコ動画に見るベキ乗則と再生数の壁

ニコニコ動画で特別な上位を除く普通の動画は、何回くらい再生されているのだろうか?

トップランキングに入るような有名動画の状況は把握しやすいのですが、中位〜下位に位置する動画の状況は、なかなか見えてきません。
ニコニコ動画で検索を行うと、結果は最大50ページまで出力されます。
1ページあたり32件ずつ表示があるので、最大で 50ページ×32件 = 1600件までの再生状況が分かります。
この上位 1600件の検索結果から、動画の順位と再生数の関係を推測してみました。
5つのキーワードについて調べた結果、こんなことが分かってきました。

・動画の再生数は、大まかにはベキ乗則に従う。
・より詳しく見ると、ベキ乗則からのズレが見られる。
 (トップの動画、および下位の動画再生数が、ベキ乗則よりも下となるような、上に凸の緩いカーブを描く。)
・下位の動画については“再生数の壁”がある。

 ※ 3/20追記: 最終的な結論として、動画再生数は対数正規分布に従うことが分かりました >> 次エントリー[id:rikunora:20140320]

■ キーワード「初音ミク
初音ミク」で検索した再生数上位1600件の、順位と再生数の関係をグラフにしてみました。
(検索日時: 2014/3/10 16:00頃、215,800件ヒット)

グラフの横軸は(順位)、縦軸は(再生数)。上位に人気が集中している様子が一目瞭然かと思います。
再生数1位は、"【初音ミク】みくみくにしてあげる♪【してやんよ】" の 11,128,137件、
1600位は "【第5回MMD杯本選】「LOL -lots of laugh-」を踊ってもらいました【MikuMikuDance】" の 171,687件でした。
このグラフの傾向を調べるため、データを両対数プロットしてみたのが、以下になります。

ほぼ1直線になっている、ということは、再生数はベキ乗法則(ジップの法則の拡張)に従っている、ということです。
両対数プロットの上で直線をあてはめてみると、トップの動画再生数が直線から下方にずれている、という傾向も見受けられます。
このずれを無視して、直線をそのまま延長する形で再生数を推測すると、こうなります。

(推測再生数) = Exp(17.195) * (順位) ^ (-0.6845)
順位, 推測再生数
10000, 53665
20000, 33392
30000, 25299
40000, 20777
50000, 17834
60000, 15742
70000, 14165
80000, 12928
90000, 11927
100000, 11097
110000, 10396
120000, 9795
130000, 9273
140000, 8814
150000, 8407
160000, 8044
170000, 7717
180000, 7421
190000, 7151
200000, 6905
210000, 6678
220000, 6469

※ ただし、この推測方法で 1600位の実データと推測値の差(残差)を調べると 16450でした。
※ つまり「1万再生程度は誤差のうち」ということです。

推測に用いた両対数プロットの直線を、もとの再生数のグラフの上に重ね書きすると、こんな風になります。

このグラフで、緑の線が再生数データ、オレンジ色の線が両対数プロットの直線、
もう1本ある紫の線は、非線形回帰によって直接フィットさせた回帰曲線です。
・オレンジ色の曲線: 両対数に直す -> 直線をあてはめる -> 元にもどす
・紫色の曲線: 元データに直接ベキ乗の曲線をあてはめる ※1.
といった具合に、あてはめの考え方が異なっています。
(どちらの方法が“正しい、間違っている”ということではありません。)

さて、以上の「初音ミク」と同じことを、他の4つのキーワードについて調べてみました。※2.

キーワード, ヒット件数
「合唱」, 41,288件
「統計」, 1,085件
ズゴック」, 1,414件
駆逐艦」, 1,653件


■ キーワード「合唱」

横軸=順位、縦軸=再生数、青線=実データ、オレンジ線=両対数直線あてはめ、紫線=非線形あてはめ
1位、"【初音ミク】桜ノ雨【オリジナル曲】"、2,475,091再生。
1600位、"溺れながら組曲ニコニコ動画」を歌ってみた"、29,383再生。

両対数プロットが、緩やかな上に凸カーブを描いていることが見てとれます。

(推測再生数) = Exp(16.69) * (順位) ^ (-0.8873)
順位, 推測再生数
10000, 5002
15000, 3491
20000, 2704
25000, 2219
30000, 1887
35000, 1646
40000, 1462
45000, 1317


■ キーワード「統計」

横軸=順位、縦軸=再生数
1位、"サイコパス(性格異常)診断"、1,033,531再生。
1085位、"ロミレー保泉の0学心理「男と女」第29-30回(最終回)放送 言霊"、0再生。
「統計」のヒット件数は 1085件 < 1600件だったので、下位まで含めた全件が取得されています。

ここで両対数プロットを見ると、下位の再生数が直線から離れて急激に落ち込んでいることが見てとれます。
この落ち込みは、下位まで含む全データを調べて、初めて気付くことです。
どのあたりから急激に落ち込むのか。対数順位 6.3付近を調べてみると、、、

 順位=547位, 対数順位=6.304448802, "【2009年】韓国の首都圏電鉄乗車人員ベスト50", 再生数1000件

およそ再生数にして1000件程度であることが判明しました。
 再生数1000件に満たない動画の再生数は、ベキ乗則よりも急激に落ち込む。
これがいわゆる「1000再生の壁」だったのです。
1000件に満たない動画を除いた残りに対して、直線をあてはめたのが以下のグラフです。


■ キーワード「ズゴック

横軸=順位、縦軸=再生数
1位、"エアーマンを作ってみた"、616,393再生。
1414位、"がんちゃん10"、1再生。
ズゴック」のヒット件数は 1414件 < 1600件だったので、下位まで含めた全件が取得されています。

やはり、下位の再生数が直線から離れて急激に落ち込んでいます。
どのあたりから急激に落ち込むのか。対数順位 7付近を調べてみると、、、

 順位=1030位, 対数順位=6.937314081, "御神体はガチ (キリ 【戦場の絆ベルファスト66 Aクラス", 再生数500件

今度は再生数にして500件程度でした。
どうやら再生数の壁は、キーワードによって変化するらしいのです。
そして、ズゴック」の場合には「500再生の壁」が妥当であるようです。
500件に満たない動画を除いた残りに対して、直線をあてはめたのが以下のグラフです。


■ キーワード「駆逐艦

横軸=順位、縦軸=再生数
1位、"【艦これ】電ちゃんと行く!艦隊これくしょん Part.7【ゆっくり実況】"、362,251再生。
1600位、"パンツァージェネラル 39キャンペーン ローカントリー その4"、46再生。
駆逐艦」のヒット件数は 1653件、ほぼ 1600に近い値ですから、ほとんど全てのデータが取り込まれています。

やはり下位の再生数に落ち込みが見られるのですが、先の2つのキーワードと比べると、
全体的に丸くなだらかなカーブで、ハッキリと落ち込みが始まる境界が見出し難い状況です。
どのあたりから落ち込むのか、グラフを切断して眺めたところ、、、

 順位=908位, 対数順位=6.811244379, "【MMD】ぜかましジーナでハートキャッチ☆パラダイス", 再生数1002件

駆逐艦」の場合、やはり「1000再生の壁」あたりが妥当であるように見えます。
1000件に満たない動画を除いた残りに対して、直線をあてはめたのが以下のグラフです。


以上のデータを含むEXCELファイルを、以下に置いておきます。興味があればどうぞ。※3.
>> http://brownian.motion.ne.jp/memo/nico2_count.xlsx (Excel2010, 1.61Mb)

■ まとめ
動画再生数は、凄まじいばかりの上位集中型になっているのだと、改めて実感しました。
ランキング上位の動画ばかりに目を奪われて、
 「運が良ければ、オレでも簡単に100万再生いきそうだなぁ〜」
などと甘い考えを抱いていたのだとしたら、上のデータを参考に、よくよく考え直した方が良いでしょう。
下位の動画に着目した場合、どうやらそこには「再生数の壁」があるようです。
投稿するなら、まずは「再生数の壁」突破を目指すべし。

■ 参考 -- 03/12追記.
動画のことは動画で知ろう。
「ニコニコ統計局」というタグで検索すると、いろいろとヒットします。1つだけ紹介。

D

※1. 紫色の曲線は、R言語を用いて以下のように算出しました。

# CSVファイルからデータを読み取る
> hatsune <- read.csv("hatsune_dl.csv")

# 内容確認
> hatsune
top_order dl_count
1 1 11128137
2 2 9262617
3 3 7312111
4 4 7152785
5 5 6350041
   ・・・

# ベキ分布非線形回帰
> result = nls( dl_count ~ A * top_order ^ B, data = hatsune, start=c(A=29355779, B=-0.6845))

> summary( result )

Formula: dl_count ~ A * top_order^B

Parameters:
Estimate Std. Error t value Pr(>|t|)
A 1.384e+07 8.654e+04 159.9 <2e-16 ***
B -5.365e-01 1.654e-03 -324.4 <2e-16 ***

    • -

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 129300 on 1598 degrees of freedom

Number of iterations to convergence: 7
Achieved convergence tolerance: 4.245e-06


※2. キーワードの選択が恣意的に見えるのは、気のせいです。
 決して「ズゴック」と「駆逐艦」の間に高い相関があるのではないか・・・などと勘ぐってはいけません (^^;)

※3. データは自作スクリプトで取得しましたが、完全であることは保障しません。
 ダウンロードしているその瞬間にも、再生数が増えていたし。
 あと、文字コード変換時に一部タイトルが文字化けしています。