crosshyou

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

washdata.orgのデータ分析3 - R言語のtidymodelsパッケージを使う。

 

www.crosshyou.info

 の続きです。

今回は、tidymodelsパッケージを使ってみようと思います。

https://www.tidymodels.org/start/models/

このサイトを参考にしてみます。

このサイトはウニの大きさ(数値データ)をもともとの大きさ(数値データ)と食べ物の種類(3種類のファクターデータ)で回帰分析しています。

同じように、basic(数値データ)をurban_rate(数値データ)とyear(2000年、2009年、2017年の3つのファクターデータにします)で回帰分析してみます。

まず、tidymodelsを読み込みます。

tidymodelsパッケージ

まず、分析に使うデータだけに絞ったデータフレームを作成しておきましょう。

データフレームを作成

glimpse関数でbunseki_dataを確認します。

glimpse関数

glimpse関数はdplyrパッケージの中の関数で、str関数のような働きをします。ファクターや文字列でも""(ダブルクォーテーション)を使わないで出力しますので見やすいです。

まず、分析したいデータの散布図を描いてみます。

ggplot2パッケージの中のgeom_point関数とgeom_smooth関数を使います。

geom_point関数とgeom_smooth関数

散布図

geom_smooth関数はmethod = "lm"として線形回帰分析の線を書きます。

年によって直線の傾きが違いますね。

linear_reg()とset_engineで回帰分析モデルを作ります。

linear_reg()とset_engine

fit関数でデータをモデルにフィットさせます。

fit関数

lm_fitを見てみます。

fit関数

切片と各変数の係数が表示されています。

tidy関数を使うともう少しわかりやすく表示します。

tidy関数

urban_rateのp-valueは8.73e-19なので0.05以下ですがその他はyear2017だけが2.88e-2, 0.0288で0.05以下です。他は有意な変数では無いようですね。

urban_rateが25のときのbasicの予想をしてみましょう。

expand.grid関数で新しいデータフレームを作成します。

expand.grid関数

predict関数で予測ができます。

predict関数

predict関数で、type = "conf_int"とすると信頼区間も作れます。

predict関数

mean_predとconf_int_predをbind_cols関数でnew_pointsに合体させます。

bind_cols関数

こうして作成したデータをもとにしてグラフを描きましょう。

ggplo関数

グラフを表示

こうしてみると、2009年と2017年ではあまり差が無いですね。

今回は以上です。