crosshyou

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

建設総合統計の分析2 - 地域によって発注者の割合に違いはあるか?カイ自乗検定で検証(chisq.test関数)

今回は建設総合統計のデータを使って、地域 x 発注者のクロス表を作成して地域によって発注者の割合に違いがあるかを見てみましょう。

まずは、データをread.csv関数で読込みます。

f:id:cross_hyou:20180818154654j:plain

発注者は、その他、公団・独法・政府企業等、国、市区町村、地方公営企業都道府県の6タイプに分類されます。

地域はどうでしょうか?リストアップします。summary関数を使いました。

f:id:cross_hyou:20180818154941j:plain

近畿、九州、四国、中国、中部、東北、南関東、北海道、北関東、北陸の10地域です。

6 x10 または 10 x 6 のクロス表を作ってカイ自乗検定を行うという作戦です。集計する金額はX30年度計のデータにします。

まずはsubset関数で発注者ごとのデータフレームを作成します。

f:id:cross_hyou:20180818160941j:plain

これで本当に発注者ごとのデータフレームになっているでしょうか?試しにそれぞれのデータフレームを見てみましょう。

f:id:cross_hyou:20180818161300j:plain

f:id:cross_hyou:20180818161429j:plain

このように作成できました。これらを合体させます。cbind関数です。

f:id:cross_hyou:20180818161827j:plain

できました。しかし、列名がかっこ悪いですね。新しく名前をつけなおします。

f:id:cross_hyou:20180818162146j:plain

行名もつけなおしましょう。

f:id:cross_hyou:20180818162340j:plain

地域の列は必要ないので削除します。

f:id:cross_hyou:20180818162550j:plain

これで、地域 x 発注者 のクロス表が作成できました。

金額だと地域ごとの発注者タイプの割合がわからないので、比率のクロス表にします。prop.table関数を使います。

f:id:cross_hyou:20180818163140j:plain

prop.table関数はマトリックスでないとうまく動かないので、as.matrix関数でマトリックスに変換してから使っています。margin=1で行の合計が1になるように指定します。100をかけているので、パーセント表示にしています。round関数で小数点以下2桁までの表示にしています。

この表を見ると、公団等は北陸が40%以上なのに対して、中国では10%以下などと地域によってかなり差があることがわかります。

金額の上位2位の発注者を地域別に書くと、

北海道は、国と市区町村

東北は、都道府県と国

北関東は、市区町村と都道府県

南関東は、公団等と地方公営企業

北陸は、公団等と都道府県

中部は、公団等と都道府県

近畿は、公団等と市区町村

中国は、都道府県と市区町村

四国は、国と都道府県

九州は、国と都道府県

となっています。

カイ自乗検定をしてこれらの地域差に有意な違いがあるかどうかを調べます。

帰無仮説は、地域と発注者タイプには関連性はない。

対立仮説は、地域と発注者タイプには関連性がある。

となります。

カイ自乗検定はchisq.testです。

f:id:cross_hyou:20180818165056j:plain

p-value < 2.2e-16 < 0.05 なので、帰無仮説は棄却され、対立仮説が採用されます。

つまり、地域と発注者タイプには関連性があるのでした。

調整済み残差を表示して、どの部分が有意なのかをみてみましょう。

f:id:cross_hyou:20180818165545j:plain

調整済み残差は絶対値が1.96以上なら有意ということですが、こうしてみると、北関東の国、中部の都道府県のほかはすべて絶対値で1.96以上ですね。

地域によって建設工事の発注者のタイプによる違いがよくわかりました。