www.crosshyou.info

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

都道府県別の自動車(バス)輸送統計調査のデータ分析8 - R の princomp() 関数で主成分分析

Bing Image Generatorで生成: Photo, Winter snow field with red cameria

www.crosshyou.info

の続きです。

今回は、R で主成分分析をしてみようと思います。

を参考にしてやってみます。

まず、princomp() 関数で主成分分析のオブジェクトを生成します。使用するデータは、前回作成した、mtx です。

summary() 関数で結果を見ることができます。

mtx の変数は 6つありましたが、Comp.2 の Cumulative Proportion が0.9549なので、Comp.1 と Comp.2 の2つの成分で6つの変数の 95.5% を説明できる、ということですね。

$loadings で主成分がわかります。

Comp.1 はhighway_num_chg, highway_kilo_chg の2つの変数、Comp.2 はそれらに加えて、rental_kilo_chg が採用されています。

Comp.1 と Comp.2 の散布図を描いてみます。

highway_num_chg, highway_kilo_chg, rental_kilo_chg の他の3つの変数は、ほとんど同じ位置にあることがわかります。

$scores で主成分得点がわかります。

この主成分得点の Comp.1 と Comp.2 の散布図を描いてみます。

福岡や山梨は他の都道府県とは違ってユニークな存在だとわかります。

次は、biplot() 関数でbiplot を描いてみます。

最後に今回の主成分分析の散布図に、前回のクラスタリングの結果を組みわわせてみます。

きれいに3つのクラスターが散布図上で分類されていますね。

今回は以上です。

初めから読むには、

www.crosshyou.info

です。

読書記録 - 「化石に眠るDNA 絶滅動物は復活するか」 更科 功 著 (中公新書)

自然界には生物の死骸や糞尿、汗などの由来の DNA がそこらじゅうにあるそうです。環境 DNA というらしいです。

なので、化石から DNA を取り出して分析するときは、それが本当にその化石生物の DNA なのか、それとも他から混入された DNA なのかを見分けることが重要ということです。

ジュラシックパークの本のように、恐竜の血を吸った蚊が琥珀の中に閉じ込められて、そこから恐竜の DNA を複製して復活させる、ということは可能性はかなり低いということでした。

ツンドラの永久凍土が融け出して、地球温暖化に拍車がかかるという事態を防ぐために、マンモスを復活させるプロジェクトがあるということでビックリしました。

とても面白かったです。

 

都道府県別の自動車(バス)輸送統計調査のデータ分析7 - R で階層的クラスタリング

Bing Image Creator で生成: 風景写真、春の季節の穏やかな午後、小さな白い花が咲いている

www.crosshyou.info

の続きです。

前回、前々回で回帰分析をしました。バスの輸送人員の変化と人口の変化やエネルギー消費の変化と関係がないことがわかりました。

今回は、階層的クラスタリングをしてみましょう。

最初の使用するデータの再確認をします。

変化倍率の値と、2020年度、2022年度のデータです。今回は、変化倍率の値だけでクラスタリングをしてみます。

まず、必要な変数だけのマトリックスを作成します。

dplyr::select() 関数で、ends_with() を使えば、変数名のおしりが _chg のものだけを選択できます。rownames() 関数で マトリックスの行の名前を指定しています。

階層的クラスタリングをするので、各変数を最小値 0、最大値 1 に基準化します。

summary() 関数で確認しましょう。

あ、そういえば、滋賀は highway のデータが NA でしたね。これは、平均値に置換しておきましょう。

そうしたら、dist() 関数で距離マトリックスを作成して、hclust() 関数でクラスタリングします。

結果をグラフにします。

この樹形図を左から見ると、福岡、山梨、三重のグループ、釧路から愛媛までのグループ、福井から長野までのグループの3つに分けてみようと思います。

cutree() 関数でグループ分けできます。

グループで色分けして散布図をいくつか描いてみましょう。

general_num_chg と highway_num_chg だと、福岡だけ仲間と離れていますね。

general_num_chg とrental_num_chg だとグループどうしが混ざってしまっていることですね。

rental_num_chg と highway_num_chg でも福岡は仲間の三重、山梨とははずれていますね。

樹形図をよく見ると、福岡は、三重、山梨とは少しはずれていますね。

今回は以上です。

次回は、

www.crosshyou.info

です。

初めから読むには、

www.crosshyou.info

です。













 

都道府県別の自動車(バス)輸送統計調査のデータ分析6 - エネルギー消費統計調査のデータも加えて回帰分析 - infer パッケージでシミュレーションベースの回帰分析

 Bing Image Creator で生成: long far view photo, corn field and cotton flowers photo

www.crosshyou.info

の続きです。

前回は、輸送量の変化を人口の増減で回帰分析してみました。結果は人口は関係ない、という結果でした。

今回はさらに、

エネルギー消費統計調査のデータも加えて回帰分析してみます。

このように、2020年度と2022年度のデータが丁度よく揃っていました。

ダウンロードしたエクセルファイルは下のようなものでした。

これから、業種計だけとりだして、2020年度と2022年度を合わせて、下のような CSV ファイルにしました。

これを、R に読み込ませます。

inner_join() 関数で、df_new と df_energy を合体させます。

それでは、前回と同じように回帰分析してみます。

説明変数は、Y2020, pop_chg, Y2020_Energy, Energy_Chg です。

summary() 関数で結果をみてみます。

Energy_Chg の係数が -1.532 で p値が 0.0355 です。しかし、このモデル全体の p-value が 0.3233 と 0.05 よりも遥かに大きいので悩みどころですね。

数式ベースでは、悩ましいので、シミュレーションベースで有意かどうか判断しましょう。

infer パッケージのワークフローでシミュレーションベースの回帰分析をします。

https://infer.netlify.app/articles/observed_stat_examples#multiple-explanatory-variables-1

こちらのウェブサイトで書かれているように実行します。

まず、lm() 関数でやったように、回帰分析の係数を求めます。

これらの係数は、先ほど summary() 関数で得た結果と同じですね。

次は、ブートストラップ法で係数の分布をシミュレーションします。

このブートストラップ法で生成した係数の分布から信頼区間を求めます。

Energy_Chg を含むすべての係数の 95% 信頼区間が 0 を含んでいます。

つまり、どの係数も統計的には有意な係数ではない、ということです。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

最初から読むには、

www.crosshyou.info

です。

 

 

都道府県別の自動車(バス)輸送統計調査のデータ分析5 - 人口の増減で回帰分析

Bing Image Creator で生成: 青い空に白い雲が3つあって、虹がかかっている。パンジーの花がたくさん咲いている、写真

 

www.crosshyou.info

の続きです。

前回は輸送量の増えた地域、減った地域を調べてみました。

今回は、この増減が人口と関わりがあるのかを調べてみようと思います。

そこで、政府統計の総合窓口(www.e-stat.go.jp)から都道府県別の人口のデータをダウロードしました。

これを R に読み込みます。

この df_population から2000年度と2022年度だけのデータにして、変化率も計算します。

まず、filter() 関数で2022年度と2020年度だけにします。

pivot_wider() 関数で縦持ち型のデータフレームを横持ち型のデータフレームに変換します。この pivot_wider() 関数や、その反対の pivot_longer() 関数、いつまでたっても使い方が覚えられません。

rename() 関数で変数名を変更しました。

mutate() 関数で2022年度と2020年度の変化率(正確は変化倍数)を計算しました、これを df_2020_2022 と合体させます。

df_2020_2022 には北海道はなくて、札幌、旭川などだったので、合体したデータフレームは、46都府県のデータフレームになります。

general_num_chg を被説明変数にして、Y2020 と pop_chg を被説明変数にして回帰分析をします。lm() 関数を使います。

summary() 関数で結果をみてみます。

p-value は Y2020 は0.974, pop_chg は 0.890 と有意な関係性は見られないですね。

散布図でもこのことを確認してみましょう。

どちらの散布図も Y2020, pop_chg と general_num_chg は関係が無さそうな散布図になりました。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。

 

読書記録 - 「悩みいろいろ - 人生に効く物語50」 金子 勝 著 (岩波新書)

慶應義塾大学の経済学の金子先生の、朝日新聞の人生相談欄での回答をまとめたものです。

この本の特徴は、相談者の悩みに対して、金子先生が、落語や小説などの中から相応しい話を紹介して、悩みに答えるという形式になっているところです。

人はみな、同じような、そしてそれぞれちょっと違う悩みを抱えて生きているんだなと思いました。

金子先生は、まず相談者の悩みを肯定してから、物語を紹介しています。~~すれば万事解決、という回答はありませんが、相談者の心が少しでも楽になればいいというのが人生相談なのかな、とも思いました。

 

都道府県別の自動車(バス)輸送統計調査のデータ分析4 - 2020年度と2022年度の比較で輸送量の増えた地域を探す

Bing Image Creator で生成: 春の日差しが暖かさを感じる。穏やかな日本の草原の写真

www.crosshyou.info

の続きです。

前回の分析で、2020年度と2022年度では統計的に有意な違い、2022年度のほうが輸送量が増えていることがわかりました。

今回は、2020年度を基準に2022年度の輸送量がどのくらい増加しているかを算出して、どの地域が増加が多いかを調べてみましょう。

まず、2020年度だけのデータフレームを作成します。

filter() 関数で 2020年度だけにして、rename() 関数で各変数の名前を変更し、select() 関数で year を削除しました。

同じように、2022年度だけのデータフレームを作成します。

そうしたら、この2つのデータフレームを inner_join() 関数で合体させます。

次は、mutate() 関数で、増加率の変数を作成します。

relocate() 関数で、各変化率の変数を左側に移動させました。

それでは、arrange() 関数を使って、どの都道府県、地域が輸送量が増えたか、減ったかをみてみます。

arrange() 関数でデータフレームをある変数の値の小さい順に並び替えできます。

arrange(desc()) 関数で大きい順に並び替えできます。

general_num_chgから順番にみていきます。

長野県、釧路、鹿児島県、長崎県、山口県は、2022年度のほうが輸送人員が少ないということがわかりました。

福島県は倍以上も増えています。

highway_num_chg をみてみます。

札幌は高速バスの乗合の輸送人員が減っています。

三重県が一番、増加しています。

rental_num_chg はどうでしょうか?

福井県、和歌山県は減少しています。

沖縄県、宮崎県は倍以上増えています。

general_kilo_chg はどうでしょうか?

釧路、鹿児島県、長崎県は減少しています。

福島県は倍以上増えています。

highway_kilo_chg をみてみます。

札幌、函館は減少しています。釧路、北見、旭川と続いていますので、高速乗合バスの輸送人キロは北海道は低調ですね。

山梨県、福岡県、三重県は10倍以上の増加です。

最後の変数は、rental_kilo_chg です。

福井県は減少しています。

神奈川県が一番増加しています。

以上、各変数の変化率、何倍になっているかを見ました。

全体としては、2022年度のほうが増加していますが、個々の地域を見ると、減少している地域があることがわかりました。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

初めから読むには、

www.crosshyou.info

です。