www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

都道府県別のケーブルテレビ加入世帯数のデータの分析6 - R言語で階層的クラスタリングをする。

 

www.crosshyou.info

 の続きです。

今回はR言語で階層的クラスタリングをしてみます。

まず、select関数でtv_gr: テレビ放送受信契約数の伸び, catv_gr: ケーブルテレビ加入世帯数の伸び, bb_gr: ブロードバンドサービス契約数の伸びだけを選択して、as.matrix関数でマトリックスを作ります。

f:id:cross_hyou:20210213091426p:plain

次にdist関数で各都道府県間の距離を計算します。

f:id:cross_hyou:20210213091535p:plain

hclust関数で階層的クラスタリングを作成します。

f:id:cross_hyou:20210213091714p:plain

plot関数で視覚化します。

f:id:cross_hyou:20210213092011p:plain

f:id:cross_hyou:20210213092135p:plain

一番左に東京都があります。東京都は他の都道府県と大きく違うことがわかります。

ここからは、

tarutaru-blogs.com

を参考にして、クラスタを4つに区切ってみます。cutree関数を使います。

f:id:cross_hyou:20210213092422p:plain

作成したオブジェクトをデータフレームにします。

f:id:cross_hyou:20210213092604p:plain

df2と作成したデータフレームをinner_join関数を使って結合します。

f:id:cross_hyou:20210213092730p:plain

クラスタごとに色分けした散布図を描いてみます。

tv_grとcatv_grの散布図です。

f:id:cross_hyou:20210213093241p:plain

f:id:cross_hyou:20210213093259p:plain

tv_grとcatv_grではクラスタごとに散布していない感じですね。

tv_grとbb_grの散布図はどうでしょうか?

f:id:cross_hyou:20210213093544p:plain

f:id:cross_hyou:20210213093559p:plain

きれいにクラスタごとに分かれていますね。bb_grの数値で分けられている感じですね。

bb_grとcatv_grの散布図も見てみます。

f:id:cross_hyou:20210213094035p:plain

f:id:cross_hyou:20210213094053p:plain

cex = 8というのを加えて文字を大きくしてみました。縦軸がbb_grです。やはりbb_grの数値でクラスタリングされているようですね。

今回は以上です。

はじめから読むには、

 

www.crosshyou.info

 です。

 

都道府県別のケーブルテレビ加入世帯数のデータの分析5 - ブロードバンドサービス契約数の伸びを回帰分析する。

 

www.crosshyou.info

 の続きです。

今回は、bb_gr: ブロードバンドサービス契約数の伸びを他の変数で回帰分析してみようと思います。

まず、散布図マトリックスを描いてみます。R言語のplot関数を使います。

f:id:cross_hyou:20210211094913p:plain

f:id:cross_hyou:20210211094929p:plain

tv_2010, catv_2010, bb_2010は分布が左右対称ではないので、対数変換した値にしましょう。

mutate関数を使います。

f:id:cross_hyou:20210211095338p:plain

もう一度、散布図マトリックスを描いてみます。

f:id:cross_hyou:20210211095622p:plain

f:id:cross_hyou:20210211095843p:plain

select関数で変数を指定するときに、bb_grを一番初めにしたので、散布図マトリックスの1行目が縦軸がbb_grで横軸がその他の変数です。相関関係は弱いようですね。

cor関数で相関係数を確認します。

f:id:cross_hyou:20210211100322p:plain

bb_grは他の変数との相関はほとんど無いですね。tv_2010_lnとcatv_2010_lnが0.868, tv_2010_lnとbb_2010_lnが0.982, bb_2010_lnとcatv_2010_lnが0.914とかなり強い相関ですね。tv_2010_lnとcatv_2010_lnは説明変数からははずしましょう。

それではlm関数で回帰分析をします。

f:id:cross_hyou:20210211101134p:plain

p-valueが0.1784と0.05よりも大きいですね。統計的に有意なモデルでは無い、ということです。

catv_grを削除したモデルを試してみます。

f:id:cross_hyou:20210211101856p:plain

p-valueが0.1283です。0.05よりも大きいので、このモデルも有意ではないです。

bb_2010_lnを削除してみます。

f:id:cross_hyou:20210211102148p:plain

p-valueが0.09045と0.05よりも大きいです。このモデルも有意なモデルでは無いです。

結局、ブロードバンドサービス契約数の伸びは今回の回帰分析で使った変数では説明できないということですね。

他の要因が働いている、ということでしょう。

今回は以上です。

次回は、

 

www.crosshyou.info

 です。

 

はじめからみるには、

 

www.crosshyou.info

 です。

都道府県別のケーブルテレビ加入世帯数のデータの分析4 - R言語で平均値の信頼区間をパラメトリック法とブートストラップ法で求める。

 

www.crosshyou.info

の続きです。

前回作成した、それぞれの伸び率、tv_gr: テレビ放送受信契約数の伸び、catv_gr: ケーブルテレビ加入世帯数の伸び、 bb_gr: ブロードバンドサービス契約数の伸びの平均値の信頼区間を調べてみようと思います。

まずは、パラメトリック法による信頼区間です。

まず、tv_grの平均値とその信頼区間を求めましょう。

平均値をmean関数で、分散をvar関数で、サンプル数をlength関数で求めます。

f:id:cross_hyou:20210207090212p:plain

次に標準誤差(se)を求めます。分散をサンプル数で割って、平方根をとったものです。

f:id:cross_hyou:20210207090918p:plain


95%の信頼区間は、平均値 ± t(α=0.025, d.f.)で求められます。

avg_tv_gr ± qt(0.975, n_tv_gr - 1) * se_tv_gr

ですね。

f:id:cross_hyou:20210207092747p:plain

tv_grの95%の信頼区間は、1.072552から1.094954です。

同じようにして、catv_grの信頼区間をパラメトリック方式で求めましょう。

はじめに信頼区間を作成する関数を作りました。

f:id:cross_hyou:20210207093816p:plain

tv_grでうまく計算されるかテストしてみます。

f:id:cross_hyou:20210207093912p:plain

さきほどの計算結果と一致していますので、関数はうまく動いています。

この関数を使って、catv_grの95%信頼区間を求めましょう。

f:id:cross_hyou:20210207094111p:plain

catv_grの平均値95%信頼区間は0.8770051から0.9605034です。

bb_grも同じようにやってみます。

f:id:cross_hyou:20210207094305p:plain

bb_grの平均値95%信頼区間は5.724841から6.223085です。

つぎに、Bootstrap方式で平均値の信頼区間を求めましょう。

まず、繰り返す回数を決定します。今回は1万回にします。

f:id:cross_hyou:20210207094641p:plain

そして、tv_grをランダムに47個抜き出し、平均値を計算する、これを1万回繰り返します。

平均値を入れる箱を作っておきます。

f:id:cross_hyou:20210207095035p:plain

データからランダムに抜き出し、平均値を計算する関数を作ります。

f:id:cross_hyou:20210207095647p:plain

replicate関数で1万回繰り返します。

f:id:cross_hyou:20210207095933p:plain

hist関数でhakoのヒストグラムを描いてみます。

f:id:cross_hyou:20210207100034p:plain

f:id:cross_hyou:20210207100108p:plain

quantile関数で信頼区間を求めます。

f:id:cross_hyou:20210207100252p:plain

パラメトリック法で求めた信頼区間(1.072552から1.094954)と同じくらいの数値ですね。

catv_gr, bb_grについても同じように求めてみます。

まず、catv_grからです。

f:id:cross_hyou:20210207101348p:plain

これもパラメトリック法での信頼区間(0.8770051から0.9605034)と似た数値です。

 

bb_grも求めます。

f:id:cross_hyou:20210207101715p:plain

これもパラメトリック法での信頼区間(5.724841から6.223085)と似た数値です。
今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。

都道府県別のケーブルテレビ加入世帯数のデータの分析3 - テレビ放送受信契約数、ケーブルテレビ加入世帯数、ブロードバンドサービス契約数、それぞれの伸びを計算する。

 

www.crosshyou.info

 の続きです。

前回は東京都のブロードバンドサービス契約数がとても大きな伸び率だとわかりました。今回は47都道府県の2010年度から2017年度のtv: テレビ放送受信契約数、catv: ケーブルテレビ加入世帯数、bb: ブロードバンドサービス契約数の伸びを見てみましょう。

まず、2010年度だけ、2017年度だけのデータフレームをR言語のfilter関数で作ります。

f:id:cross_hyou:20210206192940p:plain

次にrename関数でtv, catv, bbという変数名に_2010, _2017を加えます。

f:id:cross_hyou:20210206193051p:plain

yearという変数はもういらないので、select関数で削除します。

f:id:cross_hyou:20210206193149p:plain

inner_join関数でdf_2010とdf_2017を合体させます。

f:id:cross_hyou:20210206193251p:plain

二つのデータフレームに共通している、pref: 都道府県名の変数で合体しました。

mutate関数でtv, catv, bbの伸び率(倍率)を計算します。

f:id:cross_hyou:20210206193433p:plain

summary関数でdf2をみてみましょう。

f:id:cross_hyou:20210206193555p:plain

tv_grがテレビ放送受信契約数の伸びですが、最小値でも1.024ですから、全ての都道府県で増加したことがわかります。

catv_grがケーブルテレビ加入世帯数の伸びです。最小値は0.3908と6割も減った都道府県がある一方、最大値が1.2160と2割も増加した都道府県があることがわかります。

bb_grがブロードバンドサービス契約数の伸びです。最小値は4.896で最大値が9.135です。一番伸びが小さいところでも5倍近い伸びですね。

tv_grのヒストグラムを描いてみます。

f:id:cross_hyou:20210206194149p:plain

f:id:cross_hyou:20210206194201p:plain

catv_grのヒストグラムを描きます。

f:id:cross_hyou:20210206194359p:plain

f:id:cross_hyou:20210206194413p:plain

bb_grのヒストグラムを描きます。

f:id:cross_hyou:20210206194629p:plain

f:id:cross_hyou:20210206194643p:plain

catv_grは左側の裾野が広い分布で、tv_grとbb_grは右側の裾野が広い分布ですね。

今回は以上です。

次回は、

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。

都道府県別のケーブルテレビ加入世帯数のデータの分析2 - 東京都のブロードバンド契約数の伸びは凄い。

 

www.crosshyou.info

の続きです。

まず、year: 調査年度が何年度からあるのかを確認しましょう。

f:id:cross_hyou:20210206100508p:plain

2010年度から2017年度までの8年間のデータがあります。

こんどは、それぞれの数値型の変数の平均値、標準偏差、変動係数の年度ごとの数値をみてみます。

f:id:cross_hyou:20210206100659p:plain

tv: テレビ放送受信契約数とbb: ブロードバンドサービス契約数は年を経るごとに平均値は増加していますが、catv: ケーブルテレビ加入者数は年を経るごとに減少しています。

catvの年ごとの箱ひげ図を描いてみます。

f:id:cross_hyou:20210206101156p:plain

f:id:cross_hyou:20210206101232p:plain

数値の大きい都道府県がいくつかありますね。縦軸を対数表示にしてみます。

f:id:cross_hyou:20210206101953p:plain

f:id:cross_hyou:20210206102007p:plain

年度ごとにcatvの平均値は違うのかどうか、ANOVA分析をしてみます。

f:id:cross_hyou:20210206102302p:plain

p値が1なので、年度によるcatv: ケーブルテレビ加入世帯数に違いがあるとは言えないです。

tv, bbもANOVA分析をしてみます。

f:id:cross_hyou:20210206102603p:plain

tv: テレビ放送受信契約数は年度による違いはなさそうですが、

bb: ブロードバンドサービス契約数は年度によって違いがあります。

グラフにしてみましょう。

f:id:cross_hyou:20210206102947p:plain

f:id:cross_hyou:20210206103002p:plain

凄い伸び率で増加しているところがあるようですね。

折れ線グラフでみてみます。

f:id:cross_hyou:20210206103337p:plain

f:id:cross_hyou:20210206103355p:plain

bb: ブロードバンド契約数が一番多いところは、他の都道府県とは伸び率が全然違う感じですね

2017年度のbbの上位の都道府県を確認しておきましょう。

f:id:cross_hyou:20210206103733p:plain

東京都、大阪府、神奈川県、愛知県、埼玉県、福岡県の順番でした。

東京都の折れ線グラフの傾きは、他の道府県とは違いますね。

今回は以上です。

次回は、

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。














 

読書記録 - 「地域衰退」宮崎雅人 著 岩波新書

 

地域衰退 (岩波新書 新赤版 1864)

地域衰退 (岩波新書 新赤版 1864)

  • 作者:宮崎 雅人
  • 発売日: 2021/01/22
  • メディア: 新書
 

 平成の大合併によって自治体の数は減ったが、それが地域の衰退の歯止めにになったとは言えないようだ。

農業でも農業法人を作って規模を大きくしてもあまりうまくいけないらしい。

日本の多くの地方自治体が衰退している現実は読んでいて悲しく感じたが、これをどうにかするのは難しいと思った。

 

 

都道府県別のケーブルテレビ加入世帯数のデータの分析1 - R言語のread_csv関数でCSVファイルを読み込む。

今回は都道府県別のケーブルテレビ加入世帯数のデータの分析をしてみようと思います。

データは、政府統計の総合窓口(www.e-stat.go.jp)から取得します。

f:id:cross_hyou:20210131172938p:plain

47都道府県を選択し、

f:id:cross_hyou:20210131173101p:plain

ケーブルテレビ加入者世帯数の他、テレビ放送受信契約とブロードバンドサービス契約数というデータも選択しました。

f:id:cross_hyou:20210131173207p:plain

このようなファイルです。

9行目に変数名を追加しました。

year: 調査年度

pref: 都道府県名

tv: テレビ放送受信契約数

catv: ケーブルテレビ加入者数

bb: ブロードバンドサービス契約数

です。

このCSVファイルをR言語のread_csv関数で読み込みます。

はじめに、tidyverseパッケージの読み込みをしておきます。

f:id:cross_hyou:20210131173715p:plain

read_csv関数でCSVファイルを読み込みます。

f:id:cross_hyou:20210131174007p:plain

NAの行をna.omit関数で削除して、yearをファクター型変数にas.factor関数で変換します。

f:id:cross_hyou:20210131174240p:plain

summary関数でdfを見てみましょう。

f:id:cross_hyou:20210131174413p:plain

特に問題なくテータは読み込まれたようです。

今回は以上です。

 次回は、

 

www.crosshyou.info

 です。