当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R broom augment.felm 使用来自 (n) 个 felm 对​​象的信息来增强数据


Augment 接受模型对象和数据集,并添加有关数据集中每个观察值的信息。最常见的是,这包括 .fitted 列中的预测值、.resid 列中的残差以及 .se.fit 列中拟合值的标准误差。新列始终以 . 前缀开头,以避免覆盖原始数据集中的列。

用户可以通过 data 参数或 newdata 参数传递数据以进行增强。如果用户将数据传递给 data 参数,则它必须正是用于拟合模型对象的数据。将数据集传递给 newdata 以扩充模型拟合期间未使用的数据。这仍然要求至少存在用于拟合模型的所有预测变量列。如果用于拟合模型的原始结果变量未包含在 newdata 中,则输出中不会包含 .resid 列。

根据是否给出 datanewdata,增强的行为通常会有所不同。这是因为通常存在与训练观察(例如影响或相关)测量相关的信息,而这些信息对于新观察没有有意义的定义。

为了方便起见,许多增强方法提供默认的 data 参数,以便 augment(fit) 将返回增强的训练数据。在这些情况下,augment 尝试根据模型对象重建原始数据,并取得了不同程度的成功。

增强数据集始终以 tibble::tibble 形式返回,其行数与传递的数据集相同。这意味着传递的数据必须可强制转换为 tibble。如果预测变量将模型作为协变量矩阵的一部分输入,例如当模型公式使用 splines::ns()stats::poly()survival::Surv() 时,它会表示为矩阵列。

我们正在定义适合各种 na.action 参数的模型的行为,但目前不保证数据丢失时的行为。

用法

# S3 method for felm
augment(x, data = model.frame(x), ...)

参数

x

lfe::felm() 返回的 felm 对象。

data

base::data.frametibble::tibble() 包含用于生成对象 x 的原始数据。默认为stats::model.frame(x),以便augment(my_fit) 返回增强的原始数据。不要将新数据传递给 data 参数。增强将报告传递给 data 参数的数据的影响和烹饪距离等信息。这些度量仅针对原始训练数据定义。

...

附加参数。不曾用过。仅需要匹配通用签名。注意:拼写错误的参数将被吸收到 ... 中,并被忽略。如果拼写错误的参数有默认值,则将使用默认值。例如,如果您传递 conf.lvel = 0.9 ,所有计算将使用 conf.level = 0.95 进行。这里有两个异常:

  • tidy() 方法在提供 exponentiate 参数时会发出警告(如果该参数将被忽略)。

  • augment() 方法在提供 newdata 参数时会发出警告(如果该参数将被忽略)。

也可以看看

augment() , lfe::felm()

其他毛毡整理器:tidy.felm()

带有列的 tibble::tibble()

.fitted

拟合值或预测值。

.resid

观察值和拟合值之间的差异。

例子


# 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/lfe-tidiers.R

相关用法


注:本文由纯净天空筛选整理自大神的英文原创作品 Augment data with information from a(n) felm object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。