はいどうもこんばんは乙pyです。

今日はニコニコ動画さんの
有料会員の推移が気になってしまったので
有料会員数の予測をしてみました。

解説動画はこちら


まずニコニコ動画さんの
最近の有料会員数ですが
決算などで発表されているので
そこからデータ化しました。
年(期) 会員数(万人)
2015-09 253
2015-12 254
2016-03 256
2016-06 256
2016-09 256
2016-12 252
2017-03 243
2017-06 236
2017-09 228
2017-12 214
2018-03 207
2018-06 200
2018-09 194
2018-12 188


さてこれをPythonを使って予測していきます。
最初に必要なライブラリの読み込みです。
from fbprophet import Prophet
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

次の会員数をデータ化します。
データはPandasのデータフレームにします。
df = pd.DataFrame({
    'ds': pd.to_datetime([
        "2015-09-01","2015-12-01","2016-03-01","2016-06-01",
        "2016-09-01","2016-12-01","2017-03-01","2017-06-01",
        "2017-09-01","2017-12-01","2018-03-01","2018-06-01",
        "2018-09-01","2018-12-01"])
    ,'y': [253,254,256,256,256,252,243,236,228,214,207,200,194,188]
} , index=pd.to_datetime([
    "2015-09-01","2015-12-01","2016-03-01","2016-06-01",
    "2016-09-01","2016-12-01","2017-03-01","2017-06-01",
    "2017-09-01","2017-12-01","2018-03-01","2018-06-01",
    "2018-09-01","2018-12-01"
]))
これでデータフレームの完成です。

一旦可視化をして推移を見てみましょう。
plt.figure(figsize=(12, 6))
plt.scatter(df.index, df['y'])
plt.xticks(rotation=70)
plt.show()
nico01

このような会員数の推移ですね。
2015年あたりをピークに
そこからは下降路線をたどっています。

この推移から未来を予測します。

予測にはFacebookの
Propfetというライブラリを用います。

モデルの呼び出しも簡単です。
#モデルの呼び出し
model = Prophet()
学習も1行で終わります。
#学習
model.fit(df)
学習させるにはコツが必要で
時間に該当するものを ts というカラムでTimestampにしておく
数値は y というカラムでデータフレームに定義しておく
必要があります。

ファイルを読み込んでデータフレームを作った際は
カラム名やカラムのデータ型を
Propfet用に合わせる必要があります。

次に予測です。

予測は未来3000日分としました。
このライブラリは日で計算されるようで
引数 periods に日数を入れてあげて
model.make_future_dataframe()という関数を
呼んであげます。

そうすると予測用のデータフレームが作られます。

最後にmodel.predict()で作ったデータフレームで
予測結果のデータフレームを作ります。
#予測
future = model.make_future_dataframe(periods=3000)
forecast = model.predict(future)
たったこれだけで未来予測が終わります。

使える変数は日付と数値だけと
変数が少ないので
簡易な予測にはもってこいのライブラリです。


最後に予測の結果を可視化しましょう。
# 可視化
model.plot(forecast) plt.show()
nico02

日での予測の結果はかなり上下動が激しい感じなので
周期性の方を見てみます。

model.plot_components(forecast)
plt.show()
nico03

はい
これだと綺麗に予測の結果が出ますね。

このままの下降ラインをたどると
2026年には有料会員数が0になるという結果がでました。

下振れが激しければ2024年でも
有料会員数が0になる未来もあり得るという予想結果でした。

あくまでも現状の数値を使っての予測のため
そのままの下降線をたどるということは
少ないかもしれませんが

施策次第では
V字回復もあり得るシナリオではあるので
これからのニコニコ動画さんの
巻き返しに注目したいところです。

頑張れニコ動!!!