crosshyou

主にクロス表(分割表)分析をしようかなと思います。

定期健康診断結果の分析1 - 基本統計量(R言語のsummary関数, sd関数, length関数, sum関数, apply関数, round関数)

 

政府統計の総合窓口、e-Statのサイトにアクセスしてみたら、「定期健康診断結果報告」という統計が新着でありました。早速アクセスしてみました。

f:id:cross_hyou:20180714155915j:plain

職場の定期健康診断結果の報告を集計したもののようです。私事になりますが、最近、健康診断をしましたので興味をもちました。ファイルにアクセスしてみます。

f:id:cross_hyou:20180714160049j:plain

年次別、業種別、都道府県別の3つがあるようです。業種別のファイルにアクセスしてみました。

f:id:cross_hyou:20180714160250j:plain

業種ごとの健康診断受診者数と所見のあった人数が記載されています。所見のあった、というのは血糖値が高いですよ、とか血圧が高いですよ、とかですね。つまり所見がなければ問題なし、所見があれば再検診とか気を付けましょう、ということだと思います。

データをR言語に読込んで分析しましょう。

まず、データのファイルをR言語に読込ませやすいように、このように加工しました。

f:id:cross_hyou:20180714163116j:plain

大分類という列と一事業所当人数という列を作り、もとのデータファイルにあった「小計」の行を削除しました。小計はR言語で算出できると思います。

read.csv関数でデータを読込み、head関数ではじめの6行を表示します。

f:id:cross_hyou:20180714163719j:plain

では、summary関数を使って、最小値、最大値、第1四分位、中央値、平均値、第3四分位を表示しましょう。大分類(1列目)と業種(2列目)は必要ないので、kenshin[ , c(-1,-2)]として1列目と2列目を削除した状態でsummary関数を適用します。

f:id:cross_hyou:20180714164417j:plain

サマリー関数では、データの個数、標準偏差、合計が表示されないので、apply関数を使ってそれぞれの統計値を算出します。データの個数は、length関数です。

f:id:cross_hyou:20180714164746j:plain

41の業種があることがわかります。lengthの前に , 2 , としているのは、lenght関数を列に適用しなさい、という意味です。1だと行に対して適用することになるので、

f:id:cross_hyou:20180714165000j:plain

という結果になります。

標準偏差を出しましょう。sd関数です。

f:id:cross_hyou:20180714165339j:plain

round関数を使って、小数点以下2桁までの表示にしています。

合計値を出します。

f:id:cross_hyou:20180714165619j:plain

受信者数の合計は、1359万7456人です。所見人数の合計は735万3945人です。

全体の有所見率は、54.1%です。半数以上が所見有りということですね。