crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

都道府県別の献血者数のデータの分析5 - R言語のlm関数で献血者率を回帰分析する。一人当たり県内総生産額が高いほうが献血者率が高い。ボランティア行動者率が高いほうが献血者率が低い。

f:id:cross_hyou:20210620202143j:plain

Photo by Anton Maksimov juvnsky on Unsplash

 

www.crosshyou.info

 の続きです。

今回は献血者率を他の変数で回帰分析してみましょう。

いままでの分析結果から、2006年と2011年では献血者率が違う、東日本と西日本では献血者率が違うなどがわかりました。

これら全部の変数を同時に考慮したときはどうなるでしょうか?

まずは、2006年なら1、2011年なら0となるダミー変数を作ります。

f:id:cross_hyou:20210620202625p:plain

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

f:id:cross_hyou:20210620202719p:plain

summary関数で結果を見てみます。

f:id:cross_hyou:20210620202826p:plain

p-valueは0.0008082と0.05よりも低いので、全体として有意な統計モデルです。

eastの変数が10%水準、lpop, volant, gdp_pop, 変数が5%水準、d2006が1%水準で有意です。

人口が1%増えると0.002ポイント献血者率が減少します。

ボランティア活動行動者率が1ポイント増えると、0.03622ポイント献血者率が減少します。

gdp_popが1(百万円)増えると、0.14632ポイント献血者率が増加します。

2006年のほうが0.24249ポイント献血者率が低いです。

東日本のほうが0.16541ポイント献血者率が低いです。

続いて、誤差項が均一分散かどうかをチェックします。

まず、誤差項の2乗を計算して、それを説明変数で回帰分析します。

f:id:cross_hyou:20210620204254p:plain

p-valueが0.02349ということで0.05よりも低いです。誤差項が均一分散(homoscedasticity)で無いということは、さきほどの結果のStd. Errorなどは正しくない、ということですね。

Using R for Introductry Econometrics

 

 を参考にしてheteroscedasticity-robust inferenceを算出します。

lmtestとcarというパッケージを読み込みます。

f:id:cross_hyou:20210620204828p:plain

coeftest()関数で通常のStd. ErrorとHeteroscedasticity-robust Std. Errorを算出できます。

f:id:cross_hyou:20210620205030p:plain

これは、すでにsummary()関数で表示したのを同じです。

heteroscedasticity-robust Std. Errorはvcov = hccmというオプションを加えます。

f:id:cross_hyou:20210620205357p:plain

lpop, eastは有意な変数ではなくなりました。

volantが5%水準で有意で、対数変換した人口、人口当たりの県内総生産額、2006年か2011年か、東日本か、西日本か、big6か非big6かが同じなら、ボランティア行動者率が1ポイント上昇すると、献血者率は0.036221ポイント低下する、という結果です。

なんか不思議な結果ですね。

gdp_popが10%水準で有意です。他の条件が同じなら、1百万円だけ人口当たりの県内総生産額が上昇すると献血者率が0.146325ポイント上昇します。豊かになれば献血をする余裕もできるということでしょうか?

他の条件が同じならば、2006年のほうが2011年よりも献血者率が0.242492ポイント低いということです。2011年の人のほうが献血への意識が高いということですかね。

今回は以上です。

はじめから読むには

 

www.crosshyou.info

 です。

都道府県別の献血者数のデータの分析4 - R言語のgeom_point()関数とgeom_smotth()関数で散布図を描き、回帰直線を重ねる。

f:id:cross_hyou:20210620092836j:plain

 Photo by Tanner Geringer on Unsplash  

www.crosshyou.info

 の続きです。

今回は献血者数と各数値データの関係を見ていきましょう。

はじめは対数変換した人口との関係です。

f:id:cross_hyou:20210620093549p:plain

f:id:cross_hyou:20210620093601p:plain

geom_point()関数で散布図を描いて、geom_smooth(metho = "lm")で線形回帰の直線を重ねています。対数変換した人口が大きくなるほど献血者率は低下する傾向があるようです。

続いて、対数変換した県内総生産額との関係はどうでしょうか?

f:id:cross_hyou:20210620094038p:plain

f:id:cross_hyou:20210620094048p:plain

対数変換した県内総生産額が大きいほど、献血者率は低下する傾向があるようです。

人口当たりの県内総生産額との散布図を見てみます。

f:id:cross_hyou:20210620094412p:plain

f:id:cross_hyou:20210620094424p:plain

回帰直線が水平ですから、人口当たりの県内総生産額と献血者率は関係なさそうですね。

ボランティア活動行動者率との散布図を見てみます。

f:id:cross_hyou:20210620094734p:plain

f:id:cross_hyou:20210620094747p:plain

ボランティア活動行動者率が高いほど献血者率は低下しています。

これは意外な気がしました。ボランティアに熱心な人は献血にも前向きかと思ったんですが。。

cor()関数で各変数間の相関係数マトリックスをみてみます。

f:id:cross_hyou:20210620095237p:plain

献血者率はどの変数とも相関は低いですね。

lpopとlgdpは0.982という高い相関係数です。

今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。

読書記録 - 「日本近代史講義 - 成功と失敗の歴史に学ぶ」 山内昌之・細谷雄一 編集著 中公新書

 

 「歴史は無限の宝庫」これは、あとがきにある言葉です。

この無限の宝庫である歴史を活かすためには事実を正しく認識しなければなりません。

本書は2015年12月から2018年7月まで自由民主党本部で行われた講義をまとめたものだそうです。

自民党の政治家が、というよりもすべての政治家が「無限の宝庫」を活かして政治をしてくれるといいなあと思います。

有権者も「無限の宝庫」を活かして投票してほしいです。

 

都道府県別の献血者数のデータの分析3 - 人口と県内総生産額は対数変換したほうが正規分布に近づく。

 

f:id:cross_hyou:20210619171332j:plain

Photo by Christoph von Gellhorn on Unsplash

 

www.crosshyou.info

 の続きです。

こんどか東日本と西日本の献血者率をみてみます。

f:id:cross_hyou:20210619171804p:plain

0が西日本なので、西日本のほうが少し高いです。

geom_density()関数で密度分布グラフをみてみます。

f:id:cross_hyou:20210619172008p:plain

f:id:cross_hyou:20210619172023p:plain

西日本のほうが献血者率が高いほうに集中していますね。

t.test()関数でt検定をしましょう。

f:id:cross_hyou:20210619172213p:plain

p-valueが0.02547です。5%水準で西日本と東日本の献血者率には違いがあります。

big6(東京都、千葉県、埼玉県、神奈川県、愛知県、大阪府)と非big6でも比較してみます。

f:id:cross_hyou:20210619172509p:plain

今回はtapply()関数ではなくて、group_by()関数とsumarise()関数を使ってみました。

big6は3.83%、非big6は4.10%です。

この違いは統計的に有意なのかどうか、t検定します。

f:id:cross_hyou:20210619173445p:plain

p-valueは0.101です。5%水準では有意ではないです。10%水準で有意というところでしょうか。

いままでのをまとめると、

2006年と2011年は有意に違い、2011年のほうが献血者率が高い。

東日本と西日本は有意に違い、西日本のほうが献血者率が高い。

big6と非big6では有意に違うとは言えず、非big6のほうが献血者率が高い。

ということです。

次は数値データと献血者率の関係をみていきましょう。

まず、人口当たりの県内総生産額を計算します。

f:id:cross_hyou:20210619174054p:plain

人口当たりの県内総生産額は、最小値は2.500、これは250万円ということです。

最大値は786万5千円、平均値は365万5千円、中央値は359万3千円です。

人口と県内総生産額を対数変換した値も計算します。

f:id:cross_hyou:20210619174449p:plain

なぜ対数変換するかというと、そのほうが分布の形が左右対称に近くなるからです。

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

f:id:cross_hyou:20210619174823p:plain

f:id:cross_hyou:20210619174833p:plain

このように、右側の対数変換したほうのヒストグラムのほうが左右対称に近いですね。

今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。

都道府県別の献血者数のデータの分析2 - t検定によると、2011年のほうが2006年よりも献血者率は高くなっていることがわかる。

f:id:cross_hyou:20210619080912j:plain

 Photo by Robin Schreiner on Unsplash  

 

www.crosshyou.info

の続きです。

まずは、人口当たり何%の人が献血をしているのかを計算しましょう。

f:id:cross_hyou:20210619081445p:plain

最小値は3.054%、最大値は5.254%、平均値は4.067%、中央値は4.129%です。

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

f:id:cross_hyou:20210619081826p:plain

f:id:cross_hyou:20210619081838p:plain

すこし偏りがありますが、山型の分布です。

どこが一番献血者率が高いでしょうか?

f:id:cross_hyou:20210619082557p:plain

2011年の北海道、2006年の北海道、2011年の高知県、2011年の秋田県と続きます。

codeはもう必要ないですね。削除します。

f:id:cross_hyou:20210619082756p:plain

それでは、献血者率の低いところはどこでしょうか?

f:id:cross_hyou:20210619083107p:plain

top_n()関数でマイナスの数値を入れると下位のデータをとってきます。

2006年の神奈川県、2011年の三重県、2006年の茨城県、2006年の茨城県と続きます。

なんだか、2006年のほうが2011年よりも全般的に低いようですね。

確認してみます。

f:id:cross_hyou:20210619083707p:plain

2006年の平均値は3.958%で、2011年の平均値は4.175%です。2011年のほうが確かに高いですね。

t検定で2006年と2011年の献血者率の平均値に違いがあるのかどうかを確認します。

f:id:cross_hyou:20210619084144p:plain

p-value = 0.02437と0.05よりも小さい値です。5%水準で有意に違いがある、ということですね。

これを頭に入れると、三重県は2006年よりも2011年のほうが献血者率が下がっているというのは、何か気になりますね。献血したくない何かがあったのでしょうか?

今回は以上です。

次回は

 

www.crosshyou.info

 です。

はじめから読むには、

 

www.crosshyou.info

 です。









 

都道府県別の献血者数のデータの分析1 - R言語のread_csv()関数でデータを読み込む。

f:id:cross_hyou:20210613172757j:plain

Photo by HalGatewood.com on Unsplash

今回は都道府県別の献血者数のデータを分析しようと思います。

まず、政府統計の総合窓口(www.e-stat.go.jp)からデータをダウンロードします。

f:id:cross_hyou:20210613172925p:plain

47の都道府県を選択し、

f:id:cross_hyou:20210613172950p:plain

総人口、県内総生産額、献血者数、ボランティア活動行動者率の4つのデータを選択しました。

f:id:cross_hyou:20210613173130p:plain

こんな感じのCSVファイルです。

早速これをR言語に読み込みましょう。

まず、tidyverseパッケージを読み込みます。

f:id:cross_hyou:20210613173636p:plain

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

f:id:cross_hyou:20210613173909p:plain

str関数でうまく読み込まれているかどうかを確認します。

f:id:cross_hyou:20210613174059p:plain

yearとprefが文字化けしています。

yearのほうは「年度」の部分が文字化けしています。これは始めの4文字だけを取り出せばいいですね。

str_sub()関数を使いましょう。

f:id:cross_hyou:20210613174639p:plain

うまく始めの4文字だけを取り出せました。

prefの文字化けはどうにもならないので、別に用意してあるファイルを読み込みます。

f:id:cross_hyou:20210613175136p:plain

こういうCSVファイルです。このファイルのcodeとデータフレーム:dfのcodeを一致させて英語のprefをdfに加えます。ewは東日本か西日本か、big6は東京都、埼玉県、千葉県、神奈川県、愛知県、大阪府だと1を取るダミー変数です。

まず、read_csv()関数でファイルを読み込みます。

f:id:cross_hyou:20210613175330p:plain

str()関数でうまく読み込まれているかどうか確認します。

f:id:cross_hyou:20210613175447p:plain

うまくいきました。

inner_join関数でdfとpref_codeを結合します。

f:id:cross_hyou:20210613175645p:plain

dfのほうのprefは文字化けしているから削除します。両方のデータフレームにcodeという変数があるので、codeを基準にしてpref_codeのデータをdfに結合しています。

na.omit()関数でNAのある行を削除してから、summary()関数でdfをみてみます。

f:id:cross_hyou:20210613175936p:plain

year, pref, ewをファクター型に変換してからstr()関数でみてみます。

f:id:cross_hyou:20210613180218p:plain

yearは2006年と2011年の2つの年があります。

prefはAichi, Akitaと英語になっています。

ewはeastとwestの2つの水準です。

これで分析の準備ができました。

今回は以上です。

次回は

 

www.crosshyou.info

 です。

 














OECD Doctors' consultations data analysis 6 - using lm() function for linear regression

f:id:cross_hyou:20210613083954j:plain

 Photo by DAVID TANG on Unsplash  

www.crosshyou.info

 This post is following of above post.

In this blog, I will do regression anaysis using lm() function in R.

Let's go ahead.

f:id:cross_hyou:20210613084339p:plain

summary() function displays result.

f:id:cross_hyou:20210613084458p:plain

p-value is 0.4024, it is greater than 0.05, so this model is not valid model.

Let's add 'region' to explanatory variable.

f:id:cross_hyou:20210613084755p:plain

p-value is 0.3377.

Let's add quadratic of pct_chg

f:id:cross_hyou:20210613085122p:plain

p-value is 0.2579, it is not valid.

Uhmm.... let's add Y2007^3 , Y2007^4 and Y2007^5.

f:id:cross_hyou:20210613085602p:plain

p-value is o.02613, it is smaller than 0.05. 

Let's plot scatther plot of Y2007 and pct_chg and add predicted values.

First, makeing plot

f:id:cross_hyou:20210613090118p:plain

f:id:cross_hyou:20210613090132p:plain

next, adding predicted values.

f:id:cross_hyou:20210613090548p:plain

f:id:cross_hyou:20210613090600p:plain

red + is predicted value by lm_model4.

That's it. Thank you!

 

To read the 1st post...

 

www.crosshyou.info