視聴占有率の推移とその変化率の分布

視聴占有率の推移とその変化率の分布

みなさんこんにちは、先端技術開発部の黒岩です。
ライブ視聴ランキング Bot では、視聴ランキングのポイント数が急上昇した番組をお知らせすることで、皆様によりよい視聴体験をお届けできると考えております。

ピクセラTVサービスのライブ視聴ランキング Bot

今回、視聴占有率数の変動について jupyter notebook で解析を行ったのでご紹介します。

データの読み込み

使うライブラリをインポートする

In [2]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

2018/2/27 の視聴占有率を読み込み。

In [7]:
x_all = np.load("x_all.npy")
y_norms = np.load("y_norms.npy")

x 軸のデータは 1 分刻みの時刻が入っています。
y_norms には各チャンネルの視聴占有率が格納されています。
プロットしてみたのが下図です。9 ~ 14 くらいまでを切り取って表示しています。

In [38]:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
idx_start=int(len(x_all)/8)*3 # 適当に表示区間を区切る
idx_end=int(len(x_all)/8)*5
for i in np.arange(y_norms.shape[0]):
    x=x_all
    y= y_norms[i]
    plt.plot(x[idx_start:idx_end],y[idx_start:idx_end])
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=60))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H'))
plt.title("")
plt.xlabel("Time (on 2018/2/27)")
plt.ylabel("Occupancy")
plt.show()

各時点の傾きをみてみる

急上昇の傾向を知りたいので、微分してみました。
大きなスパイクがいくつかあり、このタイミングで注目度の高い
番組が選局されたものと思われます。

In [16]:
fig = plt.figure()
ax = fig.add_subplot(1,1,1) 
for i in np.arange(y_norms.shape[0]):
    plt.plot(x_all, np.gradient(y_norms[i]))
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=60))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H'))
plt.title("Occupancy Change Time Evolution")
plt.xlabel("time(2018/02/27 00:00 ~)")
plt.ylabel("Occupancy Change in a Minute")
plt.show()

傾きの分布

上でいくつかある大きなスパイクは、どれくらいの頻度で起きるのか? どのあたりまでがノイズなのか? を見るために分布をみてみました。

In [10]:
y_grads = np.gradient(y_norms,axis=1)
y_grads_flatten = np.reshape(y_grads, (-1,1))
plt.hist(y_grads_flatten,bins=512,histtype='step', normed=True)
plt.xlim([-0.02,0.02])
plt.title("Distribution of Occupancy Change")
plt.xlabel("Occupancy Change in a Minute")
plt.ylabel("Probability Density")
plt.show()
print("σ=", np.std(y_grads_flatten))
σ= 0.0076040672804

標準偏差は 0.076 で思ったよりもきれいな形の分布が現れました。
横軸は視聴占有率の傾き。縦軸が確率密度です。

グラフの見方ですが、横軸の 0 点は視聴を継続し続けていることを、横軸の値が大きくなるにつれて視聴人数が急上昇したことを、横軸の値が小さくなるにつれて視聴人数が急減少したことを意味しています。

視聴占有率の傾き標準偏差が 0.076 なので、全チャンネル合わせて 100 人視聴者がいたら、とあるチャンネルの視聴者が 7 人増えてもそれは珍しいことではなく、急上昇とは言わないということがわかります。

確率密度分布の特徴として、左右の対称性が高い様にも見えます。これにはどのような意味があるのでしょうか?非常に興味深いデータです。

引き続き解析を続けてまいります。
本日はここまで。