www.crosshyou.info

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

読書記録 - 「現代社会はどこに向かうか -- 高原の見晴らしを切り開くこと」(岩波新書) 見田宗介 著

 

現代社会はどこに向かうか――高原の見晴らしを切り開くこと (岩波新書)

現代社会はどこに向かうか――高原の見晴らしを切り開くこと (岩波新書)

 

 現代社会は、地球環境や資源の有限性に直面し人口増加率が低下・もしくは人口減少の局面に移行している。今よりも良い(と信じられる)未来のために今を犠牲にする社会ではなく、今を生きることの幸福を感じる社会になってきている。

NHKの調査によると、1970年台の20歳台の若者よりも現在の20歳台の若者のほうが生活満足度を感じるも人比率が高いそうだ。

その一方でリストカットをする若者が多いことはなぜだろうか?

 

都道府県別のボランティア活動行動者率の分析3 - R言語のlm関数で単回帰分析をしてみる。

 

www.crosshyou.info

 の続きです。今回はボランティア活動行動者率を反応変数に、人口や面積、県内総生産を説明変数にして回帰分析をしてみようと思います。

まずは、X軸に説明変数(人口や面積、県内総生産)、Y軸に反応変数(行動者率)とした散布図を描いてみます。

まずは、人口(POP)との散布図です。

f:id:cross_hyou:20190807154913j:plain

f:id:cross_hyou:20190807154928j:plain

黒の点は2006年度、赤の点は2011年度です。人口が多いほうがボランティア活動行動者比率は低い傾向でしょうか?

人口の対数をX軸にしてみます。

f:id:cross_hyou:20190807155242j:plain

f:id:cross_hyou:20190807155254j:plain

対数値をとった散布図のほうがいいのかな?

とりあえず、両方試してみます。

f:id:cross_hyou:20190807155742j:plain

まずは、人口で回帰したモデルです。

p-valueは1.374e-07と0.05よりも小さく有意なモデルです。R-squaredは0.2616、POPの係数の符号はマイナスですから、人口が多いほど、行動者率は低いです。

f:id:cross_hyou:20190807160156j:plain

人口の対数値で回帰したモデルです。p-value は9.204e-08と、さらに小さい値で、R-squaredは0.2679とさらに大きい値です。対数をとったほうがいいのかな?

次は、面積を説明変数にします。まずは散布図です。

f:id:cross_hyou:20190807160809j:plain

f:id:cross_hyou:20190807160820j:plain

一番右の二つの点、北海道だと思うのですが、この二つの点が目立ってしまってよくわからないですね。これも対数変換してみます。

f:id:cross_hyou:20190807161128j:plain

f:id:cross_hyou:20190807161142j:plain

面積と行動者率は関係なさそうですね。対数値でないモデル、対数値のモデルの両方を調べてみます。

f:id:cross_hyou:20190807161409j:plain

面積で回帰したモデルです。

p-valueが0.4176と0.05よりもずっと大きいです。有意なモデルではないです。

f:id:cross_hyou:20190807161639j:plain

面積の対数値で回帰したモデルです。p-valueは0.1313とこらも0.05よりも大きいので有意なモデルではないです。面積はボランティア活動行動者率とは関係ないですね。

県内総生産との散布図を描きます。一度に対数値をとった散布図も描いてしまいます。

f:id:cross_hyou:20190807162204j:plain

f:id:cross_hyou:20190807162219j:plain

GDPが大きいほど、行動者比率は下がっているように見えます。lm関数で回帰分析します。

f:id:cross_hyou:20190807162501j:plain

まずは対数値をとらないモデルです。

p-value = 3.906e-05なので0.05よりも小さい値ですから、有意なモデルです。GDPの係数の符号はマイナスですから、GDPが大きいほど、ボランティア活動行動者比率は下がります。

f:id:cross_hyou:20190807163018j:plain

GDPの対数値で回帰したモデルです。p-valueは7.453e-07でさらに小さく、R-squaredは0.2348とさらに大きくなりました。

ここまで6つのモデルを調べました。p-valueの小さい順に並べてみます。

model2(人口の対数値) 9.204e-08

model1(人口) 1.374e-07

model6(県内総生産の対数値) 7.453e-07

model5(県内総生産) 3.906e-05

model4(面積の対数値) 0.1313

model3(面積) 0.4176

ということです。

残差プロットを見てみます。

f:id:cross_hyou:20190807164604j:plain

f:id:cross_hyou:20190807164622j:plain

今回は以上です。

 

読書記録 - 「ウニはすごい バッタもすごい - デザインの生物学」(中公新書) 本川達雄 著

 

ウニはすごい バッタもすごい - デザインの生物学 (中公新書)

ウニはすごい バッタもすごい - デザインの生物学 (中公新書)

 

 サンゴのような刺胞動物門、昆虫のような節足動物門、貝やタコ、イカのような軟体動物門、ヒトデやウニ、ナマコのような棘皮動物門、ホヤのような脊索動物門、カエル、ワニ、ほ乳類のような脊椎動物亜門、それぞれの動物たちの生きるための体の構造を興味深く紹介してくれました。

それぞれすごいのですが、一番すごいと思ったのは、こういう生物の体の構造を作り上げた進化ってすごいなと思いました。

 

都道府県別のボランティア活動行動者率の分析2 - 島根県、鳥取県、鹿児島県がボランティア活動行動者率が高い。

 

www.crosshyou.info

 の続きです。

今回はどこの都道府県がボランティア活動が盛んなのか見てみます。

f:id:cross_hyou:20190806104122j:plain

まず、準備作業でVOLU変数にnames関数で都道府県名の名前属性を付与します。

f:id:cross_hyou:20190806104252j:plain

VOLU[YEAR == "2006年度"]として2006年度だけにしてから、sort関数で小さい順に並び替えました。鳥取県、島根県、滋賀県が上位で、沖縄県、大阪府、東京都が下位です。

f:id:cross_hyou:20190806104517j:plain

2011年度は上のようになりました。山形県、島根県、鹿児島県が上位で大阪府、沖縄県、青森県が下位です。

2006年度と2011年度の平均でもみてみましょう。

f:id:cross_hyou:20190806112140j:plain

島根県、鳥取県、鹿児島県が上位で、大阪府、沖縄県、青森県が下位です。

2006年度から2011年度にどのくらい変化したかも都道府県別にみてみましょう。

f:id:cross_hyou:20190806105731j:plain

まず、2006年度と2011年度で都道府県が同じ順番かを確認しました。names属性が2006年度と2011年度を比較して、sum関数でTRUEの数を数えています。47なので、TRUEが47個、47都道府県全部TRUEということで同じ順番です。

それでは、変化幅を計算して、小さい順に表示します。

f:id:cross_hyou:20190806110332j:plain

f:id:cross_hyou:20190806110212j:plain

山形県、沖縄県、秋田県などが変化がプラスの上位です。石川県、宮崎県、福島県が変化がマイナスの上位です。

この変化幅の基本統計量をsummary関数、var関数およびsd関数でみてみます。

f:id:cross_hyou:20190806110756j:plain

最小値は -3.8, 最大値は 4.1, 平均値は -0.1021, 中央値は -0.2, 分散は 2.80, 標準偏差は 1.67です。

hist関数でヒストグラム、boxplot関数で箱ひげ図を描いてみます。

f:id:cross_hyou:20190806111247j:plain

f:id:cross_hyou:20190806111258j:plain

今回は以上です。

都道府県別のボランティア活動行動者率の分析1 - 基本統計量 10歳以上の約3割弱がボランティア活動行動者です。

今回は、都道府県別のボランティア活動行動者率を分析してみます。

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

f:id:cross_hyou:20190805080125j:plain

地域は47都道府県です。

f:id:cross_hyou:20190805080154j:plain

取得するデータは、総人口(人)、総面積(ha)、県内総生産額(百万円)、ボランティア活動行動者率(10歳以上)(%)です。

f:id:cross_hyou:20190805080334j:plain

こんな感じのCSVファイルです。9行目に私が変数名の列を入れました。

R言語のread.csv関数でファイルを読み込み、分析します。

f:id:cross_hyou:20190805081514j:plain

f:id:cross_hyou:20190805081533j:plain

ボランティア活動者のデータは、2006年度と2011年度の2つの年度があるようですね。

はじめに、それぞれのデータのベクトルを作成します。

f:id:cross_hyou:20190805082358j:plain

f:id:cross_hyou:20190805082416j:plain

VOLUの最小値は19.70%, 平均値は28.11%, 中央値は27.75%, 最大値は35.50%です。

まずは、年度で違いがあるか、箱ひげ図で目でみてみます。plot関数を使います。

f:id:cross_hyou:20190805082820j:plain

f:id:cross_hyou:20190805082839j:plain

2006年度、2011年度で大きな違いはなさそうですね。

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

f:id:cross_hyou:20190805083818j:plain

f:id:cross_hyou:20190805083857j:plain

2006年度のほうが山型って感じで2011年は山というより、丘型という感じですね。

tapply関数で年度別の平均値と標準偏差を見てみます。

f:id:cross_hyou:20190805084347j:plain

2006年度の平均値は、28.16%, 2011年度は28.06%でした。分散と標準偏差は200年度のほうが大きいですね。

var.test関数で両者の分散に違いがあるといえるのか検定してみます。

f:id:cross_hyou:20190805084914j:plain

p-value = 0.8287ですので、両者の分散に違いがある、といは言えません。

両者の分散は同じと考えてよさそうなので、t.test関数で両者の平均値に違いがあるかどうかを検定します。

f:id:cross_hyou:20190805085431j:plain

p-value = 0.6776 なので、両者の平均値に違いがあるとは言えません。

ヒストグラムの形状は少し違っているように見えましたので、wilcox.test関数で分布形状のが同じかどうかを検定します。

f:id:cross_hyou:20190805090056j:plain

p-value = 0.662 なので、両者の分布形状に違いがあるとは言えません。

今回の分析では、10歳以上の人の3割弱、28%ぐらいがボランティア活動をしている、2006年度と2011年度で活動者の比率に大きな変化は無い、ということがわかりました。

今回は以上です。

 

都道府県別・男女別の平均余命のデータの分析2 - 平均余命を人口と面積で回帰分析する。人口の多い都道府県ほど余命の男女差比が小さい。

 

www.crosshyou.info

 の続きです。

今回は、平均余命を人口と面積で回帰分析してみます。

まず、都道府県ごとの人口の平均値、面積の平均値を計算します。

f:id:cross_hyou:20190803153522j:plain

f:id:cross_hyou:20190803153538j:plain

人口は東京都、大阪府、神奈川県が多く、鳥取県、島根県、高知県が少ないです。

面積は北海道、岩手県、福島県が広く、香川県、大阪府、東京都が狭いです。

まずは、plot関数で散布図を描きます。

f:id:cross_hyou:20190803154135j:plain

f:id:cross_hyou:20190803154145j:plain

どちらも関係はなさそうです。人口、面積を対数にしてみましょう。

f:id:cross_hyou:20190803154546j:plain

f:id:cross_hyou:20190803154557j:plain

こちらの散布図のほうが見やすくなりましたね。やっぱり、平均余命と人口や面積は関係ないみたいです。lm関数で回帰分析します。

その前に

f:id:cross_hyou:20190803154902j:plain

と対数に変換しておきました。

男性の平均余命から分析します。

f:id:cross_hyou:20190803155211j:plain

p-valueが0.1609ですから、有意なモデルではないですね。

男性の平均余命と人口や面積は関係ないと言えます。

次は、女性の平均余命で回帰分析します。

f:id:cross_hyou:20190803155543j:plain

p-valueが0.3155ですから、有意なモデルではないです。女性の平均余命も人口・面積とは関係ないですね。

平均余命の男女比との相関を見てみます。散布図を描きましょう。

f:id:cross_hyou:20190803160352j:plain

 

f:id:cross_hyou:20190803160406j:plain


男女比も関係なさそうですね。lm関数で回帰分析します。

f:id:cross_hyou:20190803160657j:plain


お!p-value = 0.02817です!0.05よりも小さいですから統計的には有意なモデルですね。各変数のPr(>|t|)を見ると、I(logP^2)が一番大きいので、これを削除したモデルを調べましょう。

f:id:cross_hyou:20190803161354j:plain

p-vlue = 0.01305とさらに小さい値になりました。I(logA^2)とlogP:logAのPrを比べると、logP:logAの方が大きいので、こっちを削除したmoelr3を調べます。

f:id:cross_hyou:20190803161704j:plain

p-valueが0.01004とさらに小さくなりました。logAとI(logA^2)を比べると、logAのほうがPrの値が大きいので、logAを削除したmodelr4を調べましょう。

f:id:cross_hyou:20190803162006j:plain

p-valueが0.005027とさらに小さくなりました。I(logA^2)のPrは0.38596と有意でないので、I(logA^2)を削除したモデル、logPだけのmodelr5を調べます。

f:id:cross_hyou:20190803162325j:plain

p-valueは0.001617とさらに小さくなりました。logPの係数は0.003593で正の値です。Prは0.00162ですから有意です。

解釈はlogP,つまり人口が多いほど、MFRatioは高いということです。人口の多い県ほど、男性の余命が女性との比較で長くなる、ということですね。

最後に散布図に回帰直線を重ね合わせます。

f:id:cross_hyou:20190803162938j:plain

f:id:cross_hyou:20190803162949j:plain

text関数で都道府県名をプロットしました。

今回は以上です。

都道府県別・男女別の平均余命のデータの分析1 - 基本統計量など。青森県の平均余命は短い。男性は長野県、女性は沖縄県の平均余命が長い。

今回は都道府県別・男女別の平均余命のデータを分析します。

www.e-stat.go.jp 政府統計の総合窓口のサイトからデータを取得します。

f:id:cross_hyou:20190801193105j:plain

47都道府県を選び、

f:id:cross_hyou:20190801193124j:plain

総人口、総面積、平均余命(0歳) 男女を選択します。

f:id:cross_hyou:20190801193207j:plain

Excelにデータをダウンロードすると、こんな感じです。9行目を挿入して、変数名を加えました。

Yearは年度、Popは総人口(人)、Prefは総面積(ha)、YomeiMは男性の平均余命(歳)、YomeiFが女性の平均余命です。

このデータをR言語で分析します。

f:id:cross_hyou:20190801193437j:plain

read.csv関数でデータを読込みます。skip = 8で9行目から読込み、na.strings = c(~~~)のところで***やXなどをNAにして読み込んでいます。
na.omit関数でNAのある行を削除し、summary関数で基本的なデータ要約を表示しました。

男性の平均余命は76.53歳、女性は82.90歳です。女性のほうが平均余命が長いです。

f:id:cross_hyou:20190801194034j:plain

yearから数値型変数のYearを作成しました。substr関数でyearのはじめの4文字、つまり1975などを取り出し、as.numeric関数で数値型に変換しています。
summary関数で数値型になっていることがわかります。
as.character関数で文字列型にしてからtabale関数で個数を数えています。

1975年から2015年まで5年ごとにあって、47都道府県もれなくデータがありますね。

f:id:cross_hyou:20190801194520j:plain

df1$YomeiFなどと、いちいちdf1$を付けるのが面倒なので、それぞれ独立したベクトルを作成しました。

まずは、年別の平均余命の平均値を見てみます。

f:id:cross_hyou:20190801194818j:plain

男性は1975年は71.4歳、2015年は80.7歳です。40年間で9歳ぐらい伸びました。

女性は1975年は76.9歳、2015年は87.0歳です。40年間で10歳ぐらい伸びました。

都道府県別の平均値を出しましょう。

f:id:cross_hyou:20190801195934j:plain

tapply関数で都道府県別の平均余命の平均値を算出しています。それをas.data.frame関数で一時的にobjectという名前で保存し、PrefM、PrefFという名前のベクトルに値を格納します。names関数とrownames関数で都道府県の名前を作成したベクトルに付与し、sort関数で小さい順に表示しています。最後にrm関数でobjectという変数を削除しています。

男性の平均余命の一番短い都道府県は、青森県で74.5歳です。一番長い都道府県は長野県で77.7歳です。

女性の平均余命の一番短い都道府県は、青森県で82.1歳です。一番長い都道府県は沖縄県で84.6歳です。

男性の平均余命 / 女性の平均余命 という比率も計算してみましょう。

f:id:cross_hyou:20190801200934j:plain

青森県が一番低く0.91ぐらい、岐阜県が一番大きく0.93です。まあ、青森県と岐阜県で0.02ぐらいしか差がないので、重要ではないかもしれないです。

今回は以上です。