視聴率と統計

こんばんは。namakemonoです。
本日のテーマは「視聴率」です。

視聴率とは?

「視聴率は、テレビの番組やCMがどのくらいの世帯や人々に見られているかを示すひとつの指標です。
サッカーやプロ野球などのスポーツ番組、大事件が起きた時の特別番組などの視聴率から「国民の関心の高さを探る」ことや、
視聴率の移り変わりから「社会の動きを知る」といった、社会調査的な側面で利用されることがあります。

また、視聴率データは、広告出稿社(者)、テレビ局、広告会社が広告取引をする際に、テレビの媒体力や広告効果を測るひとつの指標として利用されています。
さらに視聴者がテレビをよく見る時間帯やよく見る番組を知ることで、
番組制作・番組編成に役立てる、いわゆるマーケティングデータとしても活用されています。」
ビデオリサーチ社のHPより

視聴率の調査方法

統計調査の肝は「標本抽出」です。視聴率の調査では「系統抽出法」という抽出方法を利用しています。
ざっくりいうと以下の手順です。
1.市区町村に番号を付ける。
2.開始位置を乱数表を利用して取得
3.一定の間隔(総世帯数 ÷ 標本数)を開始位置に足していき、対象地域とする。
4.対象地域の中から、対象世帯を決定する。
詳細はこちらをご参照下さい。

つまり、世帯構成などを無視して、完全に順番で標本抽出しているということですね。
これでは、視聴率が偏ってしまう(推定値が母数と乖離してしまう)可能性もありますが、対象世帯のローテーションをすることでカバーしているそうです。

ここからは完全に自分の意見ですが、視聴率が広告やテレビ局に多大なる影響を与えているのだから、
もう少し標本数を大きくしたり、標本を抽出する際に労力をかけても良いのではないかと思います。
単純無作為抽出法より標準誤差が大きくなるため、数%で一喜一憂するテレビにはあまり向かないように思います。
数字と実態がずれていて、視聴率のランキングでは1位のものが、実は2番目に見られているなんてこともあり得ますから
コストはかかりますが、選挙の出口調査のようにもう少し気合いを入れてもいいように思います。
まぁ、視聴率の調査もビジネスですから、大きな声で言えない事情もあるのかもしれないですけど。(笑)

シミュレーションしてみると。。。

ある番組を視聴しているかどうかシミュレーションします。
【前提条件】
・Rのrunif関数を利用して、乱数を発生させる。しきい値(0.5)より大きい場合は視聴しているとする。
・標本数を100,600,1000,2000として、各10回ずつ実施する。
・母集団は1500万世帯とする。

ソース

#シミュレーション
mySim #変数の初期化
count 0.5){
#乱数が0.1を超える場合、カウントアップする
count }
}
#(総視聴数/標本数)*100で視聴率を戻す
return ((count / x)*100)
}#繰返し用
myLoopSim<-function(x,y,n){
#変数の初期化
result for(i in 1:n){
#変数の末尾にシミュレーション結果を格納
result[length(result)+1] }
return (result)
}



実施結果

> result100<-myLoopSim(mySim,100,10) > result600<-myLoopSim(mySim,600,10) > result1000<-myLoopSim(mySim,1000,10) > result2000<-myLoopSim(mySim,2000,10) > resultSet<-data.frame(result100,result600,result1000,result2000) > summary(resultSet)
result100 result600 result1000 result2000
Min. :44.00 Min. :47.17 Min. :48.40 Min. :48.10
1st Qu.:50.25 1st Qu.:49.58 1st Qu.:49.12 1st Qu.:49.42
Median :51.50 Median :49.92 Median :50.10 Median :49.95
Mean :51.40 Mean :50.35 Mean :50.37 Mean :49.82
3rd Qu.:53.00 3rd Qu.:51.71 3rd Qu.:51.73 3rd Qu.:50.61
Max. :56.00 Max. :53.00 Max. :52.40 Max. :51.10
> var(resultSet)
result100 result600 result1000 result2000
result100 11.3777778 1.9925926 -0.5755556 0.6244444
result600 1.9925926 3.0274691 0.3579630 0.6412963
result1000 -0.5755556 0.3579630 2.1378889 0.4278889
result2000 0.6244444 0.6412963 0.4278889 1.0312222

この結果を見る限り、標本数が600の分散は3.02つまり、±1.74%のばらつきが生じるということです。
ちなみに標本数が2000の場合は分散が1.01つまり、約±1%のばらつきが生じるということです。
最大値、最小値の差をとってみても、標本数600の場合は5.83%なのに対し、標本数2000の場合は3%です。
実際はもっと複雑でしょうし、数%で結果が大きく変わるテレビ業界に関しては、もう少し標本数を大きくしても良いのではないかなぁと思います。
(もしくは標本抽出方法を変えるなり。。。)

また、各結果の箱ひげ図はこのようになります。resultの後ろの数字が標本数になります。
070
標本数が大きくなるにつれて、ばらつきも少なくなっていきますね。

ちなみに1500万世帯で試してみるとこのようになりました。

> result15000000<-myLoopSim(mySim,15000000,10) > result15000000
[1] 49.98333 50.02216 50.00762 49.98966 50.00716 49.99736 50.01803 49.99973 49.99681
[10] 50.02357
> summary(result15000000)
Min. 1st Qu. Median Mean 3rd Qu. Max.
49.98 50.00 50.00 50.00 50.02 50.02
> var(result15000000)
[1] 0.0001863128

50%に収束していて、分散も小さいですね。

最後に

私たちの周りには数字がよく出てきますが、その数値がどのように計測されているのかあまり意識しないことが多いかもしれません。
一度立ち止まって考えてみるのも面白いかもしれませんね。
ではでは。


コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA