www.crosshyou.info

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

都道府県別の空き家・持ち家・借家数のデータ分析6 - R言語でClustering。dist関数、hclust関数、plot関数

 

www.crosshyou.info

 の続きです。

今回はClusteringをしてみます。

まずは、Clusteringのためのマトリックスを作成します。

f:id:cross_hyou:20201111101211p:plain

このマトリックス、matの行名を都道府県にします。

f:id:cross_hyou:20201111101402p:plain

dist関数、hclust関数、plot関数でClusteringします。

f:id:cross_hyou:20201111101855p:plain

f:id:cross_hyou:20201111102201p:plain

山形県と秋田県、宮崎県と熊本県、埼玉県と千葉県が隣同士になったり、大阪府と東京都が隣同士になっているなど、納得感のあるClusteringができました。

今回は以上です。

 

 

 

都道府県別の空き家・持ち家・借家数のデータ分析5 - R言語のlm関数で借家率を回帰分析する。

 

www.crosshyou.info

 の続きです。

今回は、1978年の空き家率で2018年の借家率を回帰分析してみます。

R言語のlm関数を使います。

f:id:cross_hyou:20201110115358p:plain



p-valueが2.664e-13と0.05よりも低いので、有意なモデルです。Intercept、rent_ratio_1978の係数のp値も0.05よりも低いです。

Adjusted R-squaredが0.692です。

このmodel1にeastwest, 東日本と西日本のファクターを加えてみましょう。

f:id:cross_hyou:20201110110443p:plain

eastwestのp値は0.336と0.05よりも大きいので、eastwestを加えても回帰分析モデルの性能はよくならないことがわかりました。Adjusted R-squaredも0.6916とわずかですが低下しています。

それでは、japanpacificを加えてみましょう。

f:id:cross_hyou:20201110110816p:plain

Adjusted R-squaredは0.6959と上昇しましたが、japanpacificのp値は0.05よりも大きいのでmodel1と大差なさそうです。

anova関数でmodel1とmodel2を比較してみましょう。

f:id:cross_hyou:20201110111128p:plain

Pr(>F)が0.2854と0.05よりも大きいです。model1とmodel3は有意な違いがありません。

region、北海道東北、関東、東海などの地域区分を加えてみます。

f:id:cross_hyou:20201110111632p:plain

九州沖縄だけ、Pr(>|t|)が0.05よりも小さいですね。Adjusted R-squaredは0.788になりました。

anova関数でmodel1とmodel4を比較してみます。

f:id:cross_hyou:20201110112012p:plain

Pr(>F)が0.002649と0.05よりも小さいですから、model1とmodel4は有意な違いがあります。そして、model4のほうがAdjusted r-squaredが大きいですから、model4のほうがよさそうです。

model4は九州沖縄という1つの地域だけが特殊な感じです。

そこで、新しい変数、九州沖縄か、それ以外か、という変数を作成して分析してみましょう。

 

f:id:cross_hyou:20201110112834p:plain

ifelse関数でregionが九州沖縄ならYes, そうでないならNoという変数を作りました。

summary関数で数を数えようとしたら、文字列型なので数えられないです。

as.factor関数でファクター型に変換します。

 

f:id:cross_hyou:20201110112956p:plain

ファクター型になっているので、summary関数で数をかぞえることができました。

このkyushu_okimwaというファクターをmodel1に加えてみます。

f:id:cross_hyou:20201110113255p:plain

kyushu_okinwaのp値は0.05以下です。Adjusted R-squaredは0.7795とmodel4の0.788よりもいいです。

anova関数でmodel4とmodel5を比較してみます。

f:id:cross_hyou:20201110113611p:plain

Pr(>F)が0.2839と0.05よりも大きいです。つまり、model4とmodel5では有意な違いはありません。なので、より単純な、しかもAdjusted R-squaredも大きいmodel5のほうがいいモデルです。

model5の残差プロットを描いてみます。

f:id:cross_hyou:20201110113939p:plain

f:id:cross_hyou:20201110113952p:plain

model5の式の係数を確認しましょう。

f:id:cross_hyou:20201110114155p:plain

つまり、九州沖縄の県は、

2018年の借家率 = 0.09469473 + 0.56062211 * 1978年の借家率 + 0.04786152

それ以外の都道府県は、

2018年の借家率 = 0.09469473 + 0.56062211 * 1978年の借家率

ということです。

これをグラフで表現してみます。geom_polt関数とgeom_abline関数を使います。

f:id:cross_hyou:20201110115136p:plain

f:id:cross_hyou:20201110115149p:plain

九州沖縄の借家率はその他の地域と比べると0.04785152だけ高いということですね。

今回は以上です。

都道府県別の空き家・持ち家・借家数のデータ分析4 - R言語で散布図を描く。geom_point関数、theme関数、facet_grid関数

 

www.crosshyou.info

の続きです。

前回の分析で1978年と2018年の空き家率・持ち家率・借家率のベクトルを作成しました。そして、1978年と2018年では有意に平均値が違うことがわかりました。

なので、今回はこれらのベクトルをまとめて新たなデータフレームを作成してみます。

f:id:cross_hyou:20201109100934p:plain

地域や東日本と西日本、日本海側と太平洋側で違いがあるかどうかを調べたいので、region, eastwest, japanpacificの3つの変数も加えました。

str関数で確認します。

f:id:cross_hyou:20201109101122p:plain

region, eastwest, japanpacificの3つの変数が文字列型なので、as.factor関数でファクター型に変換しましょう。

f:id:cross_hyou:20201109101752p:plain

ファクター型に変換されていることが確認できました。

summary関数でdat2を見てみます。

f:id:cross_hyou:20201109102035p:plain

空き家率の散布図を描いてみます。

まずは東日本と西日本で散布図の傾向に違いがあるかどうかを見てみます。

f:id:cross_hyou:20201109102753p:plain

f:id:cross_hyou:20201109102809p:plain

theme(legend.position = "top")でlegendを上にしました。どうでしょうか?パッと見た感じではよくわからないですね。

日本海側と太平洋側、その他ではどうでしょうか?

f:id:cross_hyou:20201109103421p:plain

f:id:cross_hyou:20201109103437p:plain

う~ん。ちょっとよくわからないですね。

持ち家の散布図を描いてみます。

f:id:cross_hyou:20201109103748p:plain

あんまりかわらない感じですね。

日本海側と太平洋側とその他ではどうでしょうか?

f:id:cross_hyou:20201109104033p:plain

f:id:cross_hyou:20201109104113p:plain

その他の地域がけっこうバラツキがあるような感じです。

借家率の散布図を描いてみます。

f:id:cross_hyou:20201109104439p:plain

f:id:cross_hyou:20201109104454p:plain

日本海側と太平洋側とその他ではどうでしょうか?

f:id:cross_hyou:20201109104718p:plain

f:id:cross_hyou:20201109104734p:plain

日本海側は比較的、借家率が低いようです。

今回は以上です。















 

都道府県別の空き家・持ち家・借家数のデータ分析3 - R言語で40年間の空き家率・持ち家率・借家率の変化を検定する。

 

www.crosshyou.info

の続きです。

今回は経年変化を見てみます。

まず、データの一番新しい年と一番古い年は何年か確認します。

f:id:cross_hyou:20201108165346p:plain

一番古い調査年は1978年、一番新しい調査年は2018年、40年間でどのように変化してるのでしょうか?

空き家率がどう変化したか、見てみます。

ggplot2パッケージのgeom_histogram関数とfacet_grid関数を使います。

f:id:cross_hyou:20201108165843p:plain

f:id:cross_hyou:20201108165956p:plain

上段のヒストグラムが1978年、下段が2018年です。

空き家率が上昇しているのが明らかです。

持ち家率はどうでしょうか?

f:id:cross_hyou:20201108170300p:plain

f:id:cross_hyou:20201108170316p:plain

持ち家率は1978年のほうが高かったようです。

借家率はどうでしょうか?

f:id:cross_hyou:20201108170642p:plain

f:id:cross_hyou:20201108170700p:plain

借家率は1978年は散らばっていたのが、2018年はまとまっている感じですね。

t.test関数で1978年と2018年で有意な違いがあるかどうかを検定します。

まずは、空き家率からです。

f:id:cross_hyou:20201108171402p:plain

上のようにして、1978年の空き家率のベクトルと2018年の空き家率のベクトルを作成しました。

この2つのベクトルをt.test関数で検定します。

f:id:cross_hyou:20201108171702p:plain

p-valueが2.2e-16よりも小さいということは1978年の空き家率と2018年の空き家率には有意な違いがあるということです。95%信頼区間が-0.089から-0.072と0以下です。

空き家率は40年間で有意に上昇したということですね。

 

持ち家率はどうでしょうか?同じようにt.test関数を使います。

f:id:cross_hyou:20201108172218p:plain

1978年と2018年の持ち家率のベクトルを作成します。arrange(pref)としていますので、都道府県の名前順にデータは並んでいます。

t.test関数で検定をします。

f:id:cross_hyou:20201108172514p:plain

p-valueが1.305e-09と0.05よりも小さいので有意です。95%信頼区間は、0.050から0.0870です。この40年間で持ち家率が有意に低下したということです。

 

借家率はどうでしょうか?

f:id:cross_hyou:20201108173041p:plain

まず1978年と2018年の借家率のベクトルを作成しました。

t.test関数で検定します。

f:id:cross_hyou:20201108173417p:plain

p-valueは0.002433と0.05よりも小さいので、1978年と2018年では借家率に有意な違いがあるということです。95%信頼区間が0.00857から0.0374なので、2018年の借家率のほうが低いということですね。

つまり、1978年から2018年の40年間で、

空き家率は上昇、持ち家率と借家率は下落したということです。

今回は以上です。

 














 

都道府県別の空き家・持ち家・借家数のデータ分析2 - R言語で空き家率・持ち家率・借家率を算出する。

 

www.crosshyou.info

 の続きです。

今回は、空き家率・持ち家率・借家率を計算しましょう。

mutate関数を使って新しい変数を作ります。

f:id:cross_hyou:20201107202057p:plain

それぞれの値のサマリーを見てみましょう。

f:id:cross_hyou:20201107202359p:plain

空き家率は最小値は0.04197, 最大値は0.22009, 平均値は0.11302, 中央値は0.10978です。

空き家率が22%の都道府県があるのですね。ちょっと驚きです。どこでしょうか?

filter関数とmax関数を利用して調べましょう。

f:id:cross_hyou:20201107202901p:plain

2013年度の山梨県が空き家率が最高でした。

持ち家は、最小値は0.3482, 最大値が0.7934, 平均値が0.5921, 中央値が0.5955です。

こんどは持ち家率が最低の都道府県を調べましょう。

f:id:cross_hyou:20201107203222p:plain

1993年度の東京都が持ち家率が最低でした。

借家率は最小値は0.1324, 最大値は0.5263, 平均値は0.2753, 中央値は0.2623でした。

 

yearがYYYY年度となっているので文字列型なので、これを数値型に変換してみましょう。

まず、はじめの4文字、つまり数字部分だけにします。

str_sub関数を使います。"1993年度"の文字列があったとして、1993だけ欲しい場合は、str_sub("1993年度", 1, 4)とします。

f:id:cross_hyou:20201107204141p:plain

次に、as.numeric関数で数値型に変換します。

f:id:cross_hyou:20201107204355p:plain

yearを数値に変換できたので、山梨県の空き家率の時系列のグラフを描いてみます。

f:id:cross_hyou:20201107204750p:plain

f:id:cross_hyou:20201107204806p:plain

1980年は0.10以下だったのに、どんどん空き家率が上昇しています。

東京都の持ち家率もグラフにしてみます。

f:id:cross_hyou:20201107205051p:plain

f:id:cross_hyou:20201107205106p:plain

1993年度が底でそこからは上昇傾向のような感じです。

今回は以上です。

 

都道府県別の空き家・持ち家・借家数のデータ分析1 - R言語でデータを読み込む。

f:id:cross_hyou:20201107155040p:plain

今回は、都道府県別の空き家数、持ち家数、借家数のデータを分析してみようと思います。

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

f:id:cross_hyou:20201107155647p:plain

ダウンロードしたCSVファイルはこのようなものでした。

9行目に変数名を追加しています。

R言語のread.csv関数でデータを読み込みます。

f:id:cross_hyou:20201107160340p:plain

read.csv関数でデータを読み込んだあと、str関数でデータの確認をしました。無事に読み込まれているようです。

都道府県の地域区分のデータも読み込みます。

f:id:cross_hyou:20201107161040p:plain
read.csv関数でデータを読み込んで、str関数で確認しました。

1番目の変数の名前がおかしくなっています。訂正します。

f:id:cross_hyou:20201107161231p:plain

こうして読み込んだchiiki_kubunのデータをdatに統合します。

tidyverseライブラリーを読み込み、inner_join関数を使います。

f:id:cross_hyou:20201107161427p:plain

inner_join関数でdatとchiiki_kubunを統合します。

f:id:cross_hyou:20201107162155p:plain

うまく結合できました。

na.omit関数でNAの行を削除します。

f:id:cross_hyou:20201107162507p:plain

summary関数でNAが無いことを確認しました。

今回は以上です。

 

都道府県別のスポーツテストのデータ分析7 - 東日本と西日本、日本海側と太平洋側での違いはあるか?

 

www.crosshyou.info

 の続きです。

今回は東日本と西日本、日本海側と太平洋側での違いはあるのかどうかを調べてみます。

f:id:cross_hyou:20201107092130p:plain

こういうふうに都道府県を分類したファイルを用意しました。新潟県までは東日本にしました。

また、海の無い件や北海道や兵庫県、福岡県、沖縄県はその他にしました。

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

f:id:cross_hyou:20201107092654p:plain

head関数で表示してみます。

f:id:cross_hyou:20201107092836p:plain

regionは地域です。北海道東北、関東、北陸、東海、近畿、中国、四国、九州沖縄の8つです。

eastwestが東日本と西日本の2つ、japanpacificが日本海側、太平洋側、その他の3つです。

こうして読み込んだbunruiをdata_prefと結合します。inner_join関数を使います。

f:id:cross_hyou:20201107093328p:plain

うまく結合できたか見てみましょう。

f:id:cross_hyou:20201107093508p:plain

うまく結合できているようです。

今回は、total_scoreに焦点を絞ってみましょう。

東日本と西日本で別々に箱ひげ図を描いてみます。

f:id:cross_hyou:20201107094046p:plain

f:id:cross_hyou:20201107094103p:plain

両者に違いがあるとは言えなさそうですね。

日本海側、太平洋側、その他ではどうでしょうか?

f:id:cross_hyou:20201107094456p:plain

f:id:cross_hyou:20201107094515p:plain

日本海側はその他、太平洋側よりもスコアが高いですね。

東日本と西日本でtotal_scoreに違いがあるかどうか検定します。

 

Statistics: An Introduction Using R (English Edition)

Statistics: An Introduction Using R (English Edition)

 

 こちらを参考にします。

まず、東日本のトータルスコア、西日本のトータルスコアのベクトルを作ります。

f:id:cross_hyou:20201107095349p:plain

まず、var.test関数でそれぞれのvarianceを比較します。

f:id:cross_hyou:20201107095733p:plain

p-valueが0.1957と0.05よりも大きいので、両者のvarianceに違いがあるとは言えません。なので、平均値をt.test関数で比較できます。

f:id:cross_hyou:20201107100136p:plain

p-valueが0.936と0.05よりも大きいので、両者の平均値(東日本は-0.224, 西日本は-0.088)に有意な違いがあるとは言えません。

結論としては、東日本と西日本ではスポーツテストの成績に有意な違いはあるとは言えないということです。

日本海側、太平洋側、その他では違いがあると言えるでしょうか?3つの地域がありますので、ANOVA分析になります。

aov関数とsummary関数でANOVA分析をします。

f:id:cross_hyou:20201107100955p:plain

Pr(>F)が0.0352と0.05よりも小さいです。つまり、日本海側、太平洋側、その他という3つの地域の違いは、total_scoreに有意な違いをもたらしているということです。

summary関数のかわりにsummary.lm関数で確認します。

f:id:cross_hyou:20201107101512p:plain

InterceptのEstimateの値は-1.5074ですが、これは、その他の都道府県のtotal_scoreの平均値が-1.5074だということです。太平洋側の平均値は-1.5074に0.5109を加えた、-0.9965です。日本海側は、2.9424です。日本海側は、箱ひげ図で見えたように、他の2地域と比べてスポーツテストの成績はいいようですね。

今回は以上です。