crosshyou

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

都道府県別の定期健康診断結果報告のデータ分析4- R言語で棒グラフを描いたり、単純線形回帰分析をしたりする。

UnsplashCristina Anne Costelloが撮影した写真 

 

www.crosshyou.info

今回は、上のブログの続きです。

前回は、散布図や箱ひげ図を描きました。今回は、barplot()関数を使って棒グラフを描いてみます。

まずは、ritsu: 所見のあった人数の割合を都道府県ごとの平均値にしてグラフにしてみます。

まず、tapply()関数とmean()関数で都道府県別のritsuの平均値を計算し、sort()関数で小さい順に並び替え、barplot()関数で棒グラフにしています。

barplot()関数をはずして、実際の数値をみてみます。

沖縄県が65%ぐらいで一番割合が高く、三重県が50%ぐらいで一番小さいです。

次は、tworatio: 2回以上実施した事業場数の割合をグラフにしてみます。

これも実際の数値をみてみます。

福井県が51%ぐらいで一番高く、東京都が21%ぐらいで一番低いですね。

上の結果を見ていると、東京都、大阪府、北海道、埼玉県、千葉県など人口が大きい都道府県は割合が低いような傾向です。

lm()関数で回帰分析をして調べてみましょう。

numの係数が、-1.085e-05 となっています。ちょっとわかりにくいので表示方法を変更します。

options(scipen = 999)という関数式を使うと、-1.085e-05 のような e を使わないで表示します。numが1増えると、tworatioが0.000010852減少するということです。

num: 検査実施事業場数が10,000増えれば、2回実施事業場数の割合は、0.1085、つまり10ポイント低下するという関係です。

l_num: 検査実施事業場数の対数変換値でも回帰分析してみましょう。

l_numの係数は、-0.033769 です。これは、l_numが1増えるとtworatioが0.033769低下するということです。l_numが1増えるということは、numが1%増えるということなので、numが1%増えると、tworatioが3.4ポイント低下する、ということです。

numとtworatioの散布図の上に二つの回帰線を重ねてみます。

plot()関数で散布図を描いて、abline()関数でreg1の回帰直線を重ねます。

reg2は、説明変数はnumではなくてl_numなのでxvalというオブジェクトに1から16000までの整数を保存し、predit()関数でxvalの対数変換値を使って予測値を算出してyvalという名前で保存しています。そして、lines()関数でx軸 = xval, y軸 = yvalの曲線を引いて、最後にlegend()関数で凡例を表示しました。

今回は以上です。

今回使った関数は

barplot()関数 --- 棒グラフを描く

sort()関数 --- 並び替え

tapply()関数 --- グループごとにデータを処理

mean()関数 --- 平均値を計算

lm()関数 --- 線形回帰分析

options()関数 --- options(sicpen = 999)で -1.085e-05 を-0.00001085と表示する

summary()関数 --- 線形回帰分析の結果を表示

plot()関数 --- 散布図を描く

abline()関数 --- 線形回帰直線を描く

log()関数 --- 対数変換

predict()関数 --- 回帰分析の予想値を算出

lines()関数 --- 曲線を描く

legend()関数 --- 凡例を追加

でした。

次回は

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。