はいどうもこんばんは乙pyです。
今日はニコニコ動画さんの
有料会員の推移が気になってしまったので
有料会員数の予測をしてみました。
解説動画はこちら
まずニコニコ動画さんの
最近の有料会員数ですが
決算などで発表されているので
そこからデータ化しました。
さてこれをPythonを使って予測していきます。
最初に必要なライブラリの読み込みです。
次の会員数をデータ化します。
データはPandasのデータフレームにします。
一旦可視化をして推移を見てみましょう。
このような会員数の推移ですね。
2015年あたりをピークに
そこからは下降路線をたどっています。
この推移から未来を予測します。
予測にはFacebookの
Propfetというライブラリを用います。
モデルの呼び出しも簡単です。
時間に該当するものを ts というカラムでTimestampにしておく
数値は y というカラムでデータフレームに定義しておく
必要があります。
ファイルを読み込んでデータフレームを作った際は
カラム名やカラムのデータ型を
Propfet用に合わせる必要があります。
次に予測です。
予測は未来3000日分としました。
このライブラリは日で計算されるようで
引数 periods に日数を入れてあげて
model.make_future_dataframe()という関数を
呼んであげます。
そうすると予測用のデータフレームが作られます。
最後にmodel.predict()で作ったデータフレームで
予測結果のデータフレームを作ります。
使える変数は日付と数値だけと
変数が少ないので
簡易な予測にはもってこいのライブラリです。
最後に予測の結果を可視化しましょう。
日での予測の結果はかなり上下動が激しい感じなので
周期性の方を見てみます。
はい
これだと綺麗に予測の結果が出ますね。
このままの下降ラインをたどると
2026年には有料会員数が0になるという結果がでました。
下振れが激しければ2024年でも
有料会員数が0になる未来もあり得るという予想結果でした。
あくまでも現状の数値を使っての予測のため
そのままの下降線をたどるということは
少ないかもしれませんが
施策次第では
V字回復もあり得るシナリオではあるので
これからのニコニコ動画さんの
巻き返しに注目したいところです。
頑張れニコ動!!!
今日はニコニコ動画さんの
有料会員の推移が気になってしまったので
有料会員数の予測をしてみました。
解説動画はこちら
まずニコニコ動画さんの
最近の有料会員数ですが
決算などで発表されているので
そこからデータ化しました。
年(期) | 会員数(万人) |
---|---|
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()
このような会員数の推移ですね。
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()
日での予測の結果はかなり上下動が激しい感じなので
周期性の方を見てみます。
model.plot_components(forecast) plt.show()
はい
これだと綺麗に予測の結果が出ますね。
このままの下降ラインをたどると
2026年には有料会員数が0になるという結果がでました。
下振れが激しければ2024年でも
有料会員数が0になる未来もあり得るという予想結果でした。
あくまでも現状の数値を使っての予測のため
そのままの下降線をたどるということは
少ないかもしれませんが
施策次第では
V字回復もあり得るシナリオではあるので
これからのニコニコ動画さんの
巻き返しに注目したいところです。
頑張れニコ動!!!