Augment 接受模型對象和數據集,並添加有關數據集中每個觀察值的信息。最常見的是,這包括 .fitted
列中的預測值、.resid
列中的殘差以及 .se.fit
列中擬合值的標準誤差。新列始終以 .
前綴開頭,以避免覆蓋原始數據集中的列。
用戶可以通過 data
參數或 newdata
參數傳遞數據以進行增強。如果用戶將數據傳遞給 data
參數,則它必須正是用於擬合模型對象的數據。將數據集傳遞給 newdata
以擴充模型擬合期間未使用的數據。這仍然要求至少存在用於擬合模型的所有預測變量列。如果用於擬合模型的原始結果變量未包含在 newdata
中,則輸出中不會包含 .resid
列。
根據是否給出 data
或 newdata
,增強的行為通常會有所不同。這是因為通常存在與訓練觀察(例如影響或相關)測量相關的信息,而這些信息對於新觀察沒有有意義的定義。
為了方便起見,許多增強方法提供默認的 data
參數,以便 augment(fit)
將返回增強的訓練數據。在這些情況下,augment 嘗試根據模型對象重建原始數據,並取得了不同程度的成功。
增強數據集始終以 tibble::tibble 形式返回,其行數與傳遞的數據集相同。這意味著傳遞的數據必須可強製轉換為 tibble。如果預測變量將模型作為協變量矩陣的一部分輸入,例如當模型公式使用 splines::ns()
、 stats::poly()
或 survival::Surv()
時,它會表示為矩陣列。
我們正在定義適合各種 na.action
參數的模型的行為,但目前不保證數據丟失時的行為。
參數
- x
-
從
lfe::felm()
返回的felm
對象。 - data
-
base::data.frame 或
tibble::tibble()
包含用於生成對象x
的原始數據。默認為stats::model.frame(x)
,以便augment(my_fit)
返回增強的原始數據。不要將新數據傳遞給data
參數。增強將報告傳遞給data
參數的數據的影響和烹飪距離等信息。這些度量僅針對原始訓練數據定義。 - ...
-
附加參數。不曾用過。僅需要匹配通用簽名。注意:拚寫錯誤的參數將被吸收到
...
中,並被忽略。如果拚寫錯誤的參數有默認值,則將使用默認值。例如,如果您傳遞conf.lvel = 0.9
,所有計算將使用conf.level = 0.95
進行。這裏有兩個異常:
也可以看看
其他毛氈整理器:tidy.felm()
例子
# load libraries for models and data
library(lfe)
#> Loading required package: Matrix
#>
#> Attaching package: ‘Matrix’
#> The following objects are masked from ‘package:tidyr’:
#>
#> expand, pack, unpack
#>
#> Attaching package: ‘lfe’
#> The following object is masked from ‘package:lmtest’:
#>
#> waldtest
# use built-in `airquality` dataset
head(airquality)
#> Ozone Solar.R Wind Temp Month Day
#> 1 41 190 7.4 67 5 1
#> 2 36 118 8.0 72 5 2
#> 3 12 149 12.6 74 5 3
#> 4 18 313 11.5 62 5 4
#> 5 NA NA 14.3 56 5 5
#> 6 28 NA 14.9 66 5 6
# no FEs; same as lm()
est0 <- felm(Ozone ~ Temp + Wind + Solar.R, airquality)
# summarize model fit with tidiers
tidy(est0)
#> # A tibble: 4 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 (Intercept) -64.3 23.1 -2.79 0.00623
#> 2 Temp 1.65 0.254 6.52 0.00000000242
#> 3 Wind -3.33 0.654 -5.09 0.00000152
#> 4 Solar.R 0.0598 0.0232 2.58 0.0112
augment(est0)
#> # A tibble: 111 × 7
#> .rownames Ozone Temp Wind Solar.R .fitted .resid
#> <chr> <int> <int> <dbl> <int> <dbl> <dbl>
#> 1 1 41 67 7.4 190 33.0 7.95
#> 2 2 36 72 8 118 35.0 1.00
#> 3 3 12 74 12.6 149 24.8 -12.8
#> 4 4 18 62 11.5 313 18.5 -0.475
#> 5 7 23 65 8.6 299 32.3 -9.26
#> 6 8 19 59 13.8 99 -6.95 25.9
#> 7 9 8 61 20.1 19 -29.4 37.4
#> 8 12 16 69 9.7 256 32.6 -16.6
#> 9 13 11 66 9.2 290 31.4 -20.4
#> 10 14 14 68 10.9 274 28.1 -14.1
#> # ℹ 101 more rows
# add month fixed effects
est1 <- felm(Ozone ~ Temp + Wind + Solar.R | Month, airquality)
# summarize model fit with tidiers
tidy(est1)
#> # A tibble: 3 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.341 5.50 0.000000274
#> 2 Wind -3.11 0.660 -4.71 0.00000778
#> 3 Solar.R 0.0522 0.0237 2.21 0.0296
tidy(est1, fe = TRUE)
#> # A tibble: 8 × 7
#> term estimate std.error statistic p.value N comp
#> <chr> <dbl> <dbl> <dbl> <dbl> <int> <dbl>
#> 1 Temp 1.88 0.341 5.50 0.000000274 NA NA
#> 2 Wind -3.11 0.660 -4.71 0.00000778 NA NA
#> 3 Solar.R 0.0522 0.0237 2.21 0.0296 NA NA
#> 4 Month.5 -74.2 4.23 -17.5 2.00 24 1
#> 5 Month.6 -89.0 6.91 -12.9 2.00 9 1
#> 6 Month.7 -83.0 4.06 -20.4 2 26 1
#> 7 Month.8 -78.4 4.32 -18.2 2.00 23 1
#> 8 Month.9 -90.2 3.85 -23.4 2 29 1
augment(est1)
#> # A tibble: 111 × 8
#> .rownames Ozone Temp Wind Solar.R Month .fitted .resid
#> <chr> <int> <int> <dbl> <int> <int> <dbl> <dbl>
#> 1 1 41 67 7.4 190 5 38.3 2.69
#> 2 2 36 72 8 118 5 42.1 -6.07
#> 3 3 12 74 12.6 149 5 33.1 -21.1
#> 4 4 18 62 11.5 313 5 22.6 -4.62
#> 5 7 23 65 8.6 299 5 36.5 -13.5
#> 6 8 19 59 13.8 99 5 -1.33 20.3
#> 7 9 8 61 20.1 19 5 -21.3 29.3
#> 8 12 16 69 9.7 256 5 38.4 -22.4
#> 9 13 11 66 9.2 290 5 36.1 -25.1
#> 10 14 14 68 10.9 274 5 33.7 -19.7
#> # ℹ 101 more rows
glance(est1)
#> # A tibble: 1 × 8
#> r.squared adj.r.squared sigma statistic p.value df df.residual nobs
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
#> 1 0.637 0.612 20.7 25.8 4.57e-20 103 103 111
# the "se.type" argument can be used to switch out different standard errors
# types on the fly. In turn, this can be useful exploring the effect of
# different error structures on model inference.
tidy(est1, se.type = "iid")
#> # A tibble: 3 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.341 5.50 0.000000274
#> 2 Wind -3.11 0.660 -4.71 0.00000778
#> 3 Solar.R 0.0522 0.0237 2.21 0.0296
tidy(est1, se.type = "robust")
#> # A tibble: 3 × 5
#> term estimate std.error statistic p.value
#> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.344 5.45 0.000000344
#> 2 Wind -3.11 0.903 -3.44 0.000834
#> 3 Solar.R 0.0522 0.0226 2.31 0.0227
# add clustered SEs (also by month)
est2 <- felm(Ozone ~ Temp + Wind + Solar.R | Month | 0 | Month, airquality)
# summarize model fit with tidiers
tidy(est2, conf.int = TRUE)
#> # A tibble: 3 × 7
#> term estimate std.error statistic p.value conf.low conf.high
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.182 10.3 0.000497 1.37 2.38
#> 2 Wind -3.11 1.31 -2.38 0.0760 -6.74 0.518
#> 3 Solar.R 0.0522 0.0408 1.28 0.270 -0.0611 0.166
tidy(est2, conf.int = TRUE, se.type = "cluster")
#> # A tibble: 3 × 7
#> term estimate std.error statistic p.value conf.low conf.high
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.182 10.3 0.000497 1.37 2.38
#> 2 Wind -3.11 1.31 -2.38 0.0760 -6.74 0.518
#> 3 Solar.R 0.0522 0.0408 1.28 0.270 -0.0611 0.166
tidy(est2, conf.int = TRUE, se.type = "robust")
#> # A tibble: 3 × 7
#> term estimate std.error statistic p.value conf.low conf.high
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.344 5.45 0.00550 0.920 2.83
#> 2 Wind -3.11 0.903 -3.44 0.0262 -5.62 -0.602
#> 3 Solar.R 0.0522 0.0226 2.31 0.0817 -0.0104 0.115
tidy(est2, conf.int = TRUE, se.type = "iid")
#> # A tibble: 3 × 7
#> term estimate std.error statistic p.value conf.low conf.high
#> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Temp 1.88 0.341 5.50 0.00532 0.929 2.82
#> 2 Wind -3.11 0.660 -4.71 0.00924 -4.94 -1.28
#> 3 Solar.R 0.0522 0.0237 2.21 0.0920 -0.0135 0.118
相關用法
- R broom augment.fixest 使用來自(n)個最固定對象的信息來增強數據
- R broom augment.betamfx 使用來自 betamfx 對象的信息增強數據
- R broom augment.robustbase.glmrob 使用來自 glmrob 對象的信息增強數據
- R broom augment.rlm 使用來自 rlm 對象的信息增強數據
- R broom augment.htest 使用來自(n)個 htest 對象的信息來增強數據
- R broom augment.clm 使用來自 clm 對象的信息增強數據
- R broom augment.speedlm 使用來自 speedlm 對象的信息增強數據
- R broom augment.smooth.spline 整理一個(n)smooth.spline對象
- R broom augment.drc 使用來自 a(n) drc 對象的信息增強數據
- R broom augment.decomposed.ts 使用來自 decomposed.ts 對象的信息增強數據
- R broom augment.poLCA 使用來自 poLCA 對象的信息增強數據
- R broom augment.lm 使用來自 (n) lm 對象的信息增強數據
- R broom augment.rqs 使用來自 (n) 個 rqs 對象的信息來增強數據
- R broom augment.polr 使用來自 (n) 個 polr 對象的信息增強數據
- R broom augment.plm 使用來自 plm 對象的信息增強數據
- R broom augment.nls 使用來自 nls 對象的信息增強數據
- R broom augment.gam 使用來自 gam 對象的信息增強數據
- R broom augment.survreg 使用來自 survreg 對象的信息增強數據
- R broom augment.rq 使用來自 a(n) rq 對象的信息增強數據
- R broom augment.Mclust 使用來自 Mclust 對象的信息增強數據
- R broom augment.nlrq 整理 a(n) nlrq 對象
- R broom augment.robustbase.lmrob 使用來自 lmrob 對象的信息增強數據
- R broom augment.lmRob 使用來自 lmRob 對象的信息增強數據
- R broom augment.mlogit 使用來自 mlogit 對象的信息增強數據
- R broom augment.betareg 使用來自 betareg 對象的信息增強數據
注:本文由純淨天空篩選整理自等大神的英文原創作品 Augment data with information from a(n) felm object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。