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


R broom augment.plm 使用来自 plm 对象的信息增强数据


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 plm
augment(x, data = model.frame(x), ...)

参数

x

plm::plm() 返回的 plm 对象。

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() , plm::plm()

其他 plm 整理器:glance.plm()tidy.plm()

带有列的 tibble::tibble()

.fitted

拟合值或预测值。

.resid

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

例子


# load libraries for models and data
library(plm)
#> 
#> Attaching package: ‘plm’
#> The following object is masked from ‘package:mlogit’:
#> 
#>     has.intercept
#> The following object is masked from ‘package:lfe’:
#> 
#>     sargan
#> The following objects are masked from ‘package:dplyr’:
#> 
#>     between, lag, lead

# load data
data("Produc", package = "plm")

# fit model
zz <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
  data = Produc, index = c("state", "year")
)

# summarize model fit with tidiers
summary(zz)
#> Oneway (individual) effect Within Model
#> 
#> Call:
#> plm(formula = log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, 
#>     data = Produc, index = c("state", "year"))
#> 
#> Balanced Panel: n = 48, T = 17, N = 816
#> 
#> Residuals:
#>      Min.   1st Qu.    Median   3rd Qu.      Max. 
#> -0.120456 -0.023741 -0.002041  0.018144  0.174718 
#> 
#> Coefficients:
#>              Estimate  Std. Error t-value  Pr(>|t|)    
#> log(pcap) -0.02614965  0.02900158 -0.9017    0.3675    
#> log(pc)    0.29200693  0.02511967 11.6246 < 2.2e-16 ***
#> log(emp)   0.76815947  0.03009174 25.5273 < 2.2e-16 ***
#> unemp     -0.00529774  0.00098873 -5.3582 1.114e-07 ***
#> ---
#> Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#> 
#> Total Sum of Squares:    18.941
#> Residual Sum of Squares: 1.1112
#> R-Squared:      0.94134
#> Adj. R-Squared: 0.93742
#> F-statistic: 3064.81 on 4 and 764 DF, p-value: < 2.22e-16

tidy(zz)
#> # A tibble: 4 × 5
#>   term      estimate std.error statistic   p.value
#>   <chr>        <dbl>     <dbl>     <dbl>     <dbl>
#> 1 log(pcap) -0.0261   0.0290      -0.902 3.68e-  1
#> 2 log(pc)    0.292    0.0251      11.6   7.08e- 29
#> 3 log(emp)   0.768    0.0301      25.5   2.02e-104
#> 4 unemp     -0.00530  0.000989    -5.36  1.11e-  7
tidy(zz, conf.int = TRUE)
#> # A tibble: 4 × 7
#>   term      estimate std.error statistic   p.value conf.low conf.high
#>   <chr>        <dbl>     <dbl>     <dbl>     <dbl>    <dbl>     <dbl>
#> 1 log(pcap) -0.0261   0.0290      -0.902 3.68e-  1 -0.0830    0.0307 
#> 2 log(pc)    0.292    0.0251      11.6   7.08e- 29  0.243     0.341  
#> 3 log(emp)   0.768    0.0301      25.5   2.02e-104  0.709     0.827  
#> 4 unemp     -0.00530  0.000989    -5.36  1.11e-  7 -0.00724  -0.00336
tidy(zz, conf.int = TRUE, conf.level = 0.9)
#> # A tibble: 4 × 7
#>   term      estimate std.error statistic   p.value conf.low conf.high
#>   <chr>        <dbl>     <dbl>     <dbl>     <dbl>    <dbl>     <dbl>
#> 1 log(pcap) -0.0261   0.0290      -0.902 3.68e-  1 -0.0739    0.0216 
#> 2 log(pc)    0.292    0.0251      11.6   7.08e- 29  0.251     0.333  
#> 3 log(emp)   0.768    0.0301      25.5   2.02e-104  0.719     0.818  
#> 4 unemp     -0.00530  0.000989    -5.36  1.11e-  7 -0.00692  -0.00367

augment(zz)
#> # A tibble: 816 × 7
#>    `log(gsp)` `log(pcap)` `log(pc)` `log(emp)` unemp  .fitted .resid      
#>    <pseries>  <pseries>   <pseries> <pseries>  <pser>   <dbl> <pseries>   
#>  1 10.25478   9.617981    10.48553  6.918201   4.7       10.3 -0.046561413
#>  2 10.28790   9.648720    10.52675  6.929419   5.2       10.3 -0.030640422
#>  3 10.35147   9.678618    10.56283  6.977561   4.7       10.4 -0.016454312
#>  4 10.41721   9.705418    10.59873  7.034828   3.9       10.4 -0.008726974
#>  5 10.42671   9.726910    10.64679  7.064588   5.5       10.5 -0.027084312
#>  6 10.42240   9.759401    10.69130  7.052202   7.7       10.4 -0.022368930
#>  7 10.48470   9.783175    10.82420  7.095893   6.8       10.5 -0.036587629
#>  8 10.53111   9.804326    10.84125  7.146142   7.4       10.6 -0.030020604
#>  9 10.59573   9.824430    10.87055  7.197810   6.3       10.6 -0.018942497
#> 10 10.62082   9.845937    10.90643  7.216709   7.1       10.6 -0.014057170
#> # ℹ 806 more rows
glance(zz)
#> # A tibble: 1 × 7
#>   r.squared adj.r.squared statistic p.value deviance df.residual  nobs
#>       <dbl>         <dbl>     <dbl>   <dbl>    <dbl>       <int> <int>
#> 1     0.941         0.937     3065.       0     1.11         764   816
源代码:R/plm-tidiers.R

相关用法


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