同じデータセットで多数の線形モデルを推定し、回帰結果をすべて1つのテーブルにまとめる必要があります。再現可能な例として、以下を使用した簡略化を示しmtcars
ます。
formula_1 = "mpg ~ disp"
formula_2 = "mpg ~ log(disp)"
formula_3 = "mpg ~ disp + hp"
現在、私のアプローチは次のとおりです。
- すべての数式を含むリストを作成します。
purrr:map()
すべてのlm
モデルを推定するために使用します。
stargazer::
出力テーブルを作成するために使用します。
library(tidyverse)
library(stargazer)
formula_1 = "mpg ~ disp"
formula_2 = "mpg ~ log(disp)"
formula_3 = "mpg ~ disp + hp"
lst <- list(formula_1, formula_2, formula_3)
models<- lst %>% map(~lm(., mtcars))
stargazer(models, type = "text")
これは私が探している出力を私に与えます:
#>
#> =========================================================================================
#> Dependent variable:
#> ---------------------------------------------------------------------
#> mpg
#> (1) (2) (3)
#> -----------------------------------------------------------------------------------------
#> disp -0.041*** -0.030***
#> (0.005) (0.007)
#>
#> log(disp) -9.293***
#> (0.787)
#>
#> hp -0.025*
#> (0.013)
#>
#> Constant 29.600*** 69.205*** 30.736***
#> (1.230) (4.185) (1.332)
#>
#> -----------------------------------------------------------------------------------------
#> Observations 32 32 32
#> R2 0.718 0.823 0.748
#> Adjusted R2 0.709 0.817 0.731
#> Residual Std. Error 3.251 (df = 30) 2.579 (df = 30) 3.127 (df = 29)
#> F Statistic 76.513*** (df = 1; 30) 139.350*** (df = 1; 30) 43.095*** (df = 2; 29)
#> =========================================================================================
#> Note: *p<0.1; **p<0.05; ***p<0.01
簡単な質問:
数式が多い場合、どうすればすべての数式をリストに入れることができますか?以下の行は、数式が3つしかない場合は機能しますが、推定するモデルが多い場合は不器用に見えます。
lst <- list(formula_1, formula_2, formula_3)
2番目の質問:
saybroom
または別の方法を使用して、タスク全体を実行するためのより良い方法はありますか?それともpurrr:map()
合理的な解決策ですか?