#はじめに
この記事は R Advent Calendar 2021の3日目の記事です。
Advent Calendarは今回初めてです。
よろしくお願いします。
#概要
今回の記事ではR言語を用いて、コンビニ各社において都道府県の人口密度と一番相関が高いコンビニを見つけたいと思います。
具体的には、R言語(RStudio)を用いて各コンビニと各都道府県の人口の相関係数を導出し、相関係数が信頼できるか無相関検定を行います。
#準備(R編)
相関係数を導出して無相関検定を行うためにR言語を使用します。
R言語を使用するために統計解析用ソフトであるR、RStudioをダウンロードする必要があります。
どちらもフリーソフトで、下記のURLからダウンロードできます。
R https://cran.r-project.org/
RStudio https://www.rstudio.com/products/rstudio/download/#download
#準備(元データ編)
どちらもフリーソフトで、下記あたって各都道府県別のコンビニ各社の店舗数と人口密度の元データが必要になります。
元データの各都道府県別のコンビニ各社の店舗数は下記のURLを参照しました。
都道府県データランキング https://uub.jp/pdr/m/c.html
元データの各都道府県別の人口密度は下記のURLを参照しました。
都道府県データランキング https://uub.jp/rnk/p_j.html
コンビニの店舗数は2021年3月末の時点の店舗数で、人口密度は2021年4月1日のデータを用いました。
各データをExcelでまとまると下図のようになります。
上記の表をRStudioで使いやすくするために、下のデータを元データとして用います。
元データはRStudioで読み込むためにcsv形式に出力します。
#相関係数導出(RStudio)
- RStudioを立ち上げます。
下のようなConsoleが出てくると思います。
コマンドは赤い丸で示している「>」の隣に書きます。
2. RStudio作業用ディレクトリの確認もしくは変更します。
作業用ディレクトリ確認コマンド getwd()
作業用ディレクトリ変更コマンド setwd("パス名")
作業用ディレクトリ確認コマンドをConsoleに打ち込みます。
作業用ディレクトリが分かるので、そのディレクトリにcsv形式の元データを入れておきます。
もしくは、setwd("パス名")で作業用ディレクトリを変更可能です。
3. Rstudioに元データを読み込み
先にcsv形式の元データを作業用ディレクトリに入れておきます。
その後、Consoleに「(データ名)<-read.csv("(ファイル名)",header=T)」を打ち込みます。
実際の画面は下のとおりです。
保存するデータ名を「data101」にして、元データのファイル名は「data101.csv」で保存していたので、下のようになります。
header=Tとなっていますが、これは元データの「都道府県」や「セブンイレブン」といったセルをデータと認識させないためです。
すると、元データがRStudioに取り込まれます。
4. 相関係数の導出
相関係数を導出するコマンド cor(データ名)
実際の画面は下のとおりです。
コンビニ各社と人口密度の相関係数をまとめると下のとおりです。
やはり、コンビニ大手3社は強いですね。
#無相関検定(RStudio)
上記で導出した相関係数が信頼できるかを判断するために、無相関検定を行います。
無相関検定では帰無仮説と対立仮説を設定します。
導出した相関係数が信頼できると言いたいので、要はこの帰無仮説を棄却したいわけです。
無相関検定では、このように帰無仮説と対立仮説を設定し、帰無仮説の方を棄却できるか検定します。
帰無仮説を棄却できるかどうかを検定するために、統計量t0値を導出する必要があります。
t0値は上の数式から導出可能です。ここで、rは先ほど導出した相関係数で、nはサンプル数なので今回は47です。
もちろんこの数式を使用して、t0値を導出するのもいいですが、RStudioでも導出可能です。
ピアソンの相関係数に関する検定を行う関数コマンド cor.test(対象となるデータ)
実際の画面は下のとおりです。
cor.test(data101[,11],data101[,1])によって11列目の人口密度と1列目のセブンイレブンのt0値を導出可能です。
図の赤丸がt0値で、緑丸がP値で、青丸が相関係数です。
求めたt0値はt分布表の数値と比較します。
t分布表はネット検索するとすぐ見つかると思います。
ここで、nは47なので、n-2=45よりt分布表は45のところを見ます。
要はt0値がt分布表のtより大きければ、帰無仮説棄却、
反対にt0値がt分布表のtより小さければ、帰無仮説採択となります。
しかし、ネットでt分布表を検索すると、大体のt分布表は40から50に飛ぶため、45のt値は正確には分かりません。
参考までに、有意水準0.5%、0.05%の時は下のとおりです。
そこで、今回はp値を用います。
p値は帰無仮説が正しい場合にその結果より極端な結果がでる確率です。
つまり、p値が小さければ、帰無仮説が正しいとした場合にはありえない結果なので、帰無仮説を棄却できます。
そのため、導出したp値は有意水準と比較して、有意水準より小さければ、その有意水準で帰無仮説を棄却できます。
t0値とp値のどちらを用いても帰無仮説を棄却するかどうかの結果は同じなので、どちらを用いても大丈夫です。
コンビニ各社のt0値、p値、判定をまとめると下のとおりです。
セイコーマート以外のp値は有意水準0.5%より小さいため、帰無仮説を棄却します。
従って、「セブンイレブン、ファミリーマート、ローソン、ミニストップ、デイリーヤマザキ、コミュニティストア、NEWDAYS、ポプラ、ローソン・スリーエフと人口密度に相関関係はある」と有意水準0.05%で結論付けることができます
ここで、有意差のあるコンビニ各社を相関係数の大きさで並べると下のとおりです。
やはり、コンビニ大手3社は店舗数も多く相関係数が高いですね。ただ、そこにNEWDAYSが食い込んでいるのが面白いですね。各コンビニによっては店舗が存在しない都道府県もあり、相関係数が小さくなったと思います。実際、無相関検定を行った結果、有意差が確認できなかったセイコーマートは北海道、茨城、埼玉の3道県のみの展開となっています。
実際には、各コンビニによってどの地域に店舗を多く展開しているかや経営方針などいろいろな特徴があり、人口密度だけで相関をみるとローソンが一番相関係数が高いという結果になりました。
#まとめ
・コンビニ各社で人口密度と相関が一番高いのはローソン
・RStudioを用いて、相関係数、統計量to値、P値を求め、t分布表、有意水準と比較し、無相関検定を行う
#おまけ(散布図)
元データの散布図はExcelから散布図を作成可能ですが、さらにデータ数が増えた場合、Excelでは255より多い点をプロットできません。
そこで、RStudioから散布図の作成方法を下記に示します。
散布図作成コマンド
plot(データ名)
このコマンドをConsoleに打ち込むと、
このような散布図が作成できます。
他のコンビニと人口密度の散布図は下のとおりです。
#あとがき
今回は、コンビニと人口密度の相関を見てみました。
各コンビニに特徴があって面白かったです。
他のジャンルのチェーン店でやったりするのも面白そうだと思いました。
お読みいただきありがとうございました。