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


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


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

参数

x

quantreg::rq() 返回的 rqs 对象。

data

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

newdata

base::data.frame()tibble::tibble() 包含用于创建 x 的所有原始预测变量。默认为 NULL ,表示没有任何内容传递给 newdata 。如果指定了newdata,则data 参数将被忽略。

...

参数传递给quantreg::predict.rq

object

rq 生成的类 rq 或 rqs 或 rq.process 的对象

interval

所需的间隔类型:默认为'none',当设置为'confidence'时,该函数返回一个矩阵预测,其中包含每个'newdata'点的点预测以及置信上限和下限。

level

'confidence' 区间的收敛概率。

type

对于 predict.rq , 'confidence' 间隔的方法(如果需要)。如果'percentile',则使用一种引导方法为每个预测生成百分位数区间,如果'direct',则使用 Portnoy 和 Zhou (1998) 方法的版本,否则参数估计的估计协方差矩阵为用过的。确定选择引导方法或协方差矩阵估计的进一步参数可以通过 ... 参数传递。对于 predict.rqspredict.rq.process,当 stepfun = TRUE 时,type 是 "Qhat"、"Fhat" 或 "fhat",具体取决于用户是否想要分别估计条件分位数、分布或密度函数。如下所述,前两个估计可以使用函数 rearrange 进行单调化。调用 "fhat" 选项时,将根据 akjapproxfun 中实现的 Silverman 自适应内核方法返回条件密度函数列表。

na.action

函数确定应如何处理'newdata'中的缺失值。默认是预测'NA'。

细节

根据通过 ... 传递给 predict.rq 的参数,还会根据拟合值计算置信区间,从而生成列 .lower.upper 。当通过 newdata 参数指定数据时,不提供置信区间。

也可以看看

augmentquantreg::rq()quantreg::predict.rqs()

其他 quantreg 整理器: augment.nlrq()augment.rq()glance.nlrq()glance.rq()tidy.nlrq()tidy.rqs()tidy.rq()

例子


# load modeling library and data
library(quantreg)

data(stackloss)

# median (l1) regression fit for the stackloss data.
mod1 <- rq(stack.loss ~ stack.x, .5)

# weighted sample median
mod2 <- rq(rnorm(50) ~ 1, weights = runif(50))

# summarize model fit with tidiers
tidy(mod1)
#> # A tibble: 4 × 5
#>   term              estimate conf.low conf.high   tau
#>   <chr>                <dbl>    <dbl>     <dbl> <dbl>
#> 1 (Intercept)       -39.7     -53.8    -24.5      0.5
#> 2 stack.xAir.Flow     0.832     0.509    1.17     0.5
#> 3 stack.xWater.Temp   0.574     0.272    3.04     0.5
#> 4 stack.xAcid.Conc.  -0.0609   -0.278    0.0153   0.5
glance(mod1)
#> # A tibble: 1 × 5
#>     tau logLik      AIC   BIC df.residual
#>   <dbl> <logLik>  <dbl> <dbl>       <int>
#> 1   0.5 -50.15272  108.  112.          17
augment(mod1)
#> # A tibble: 21 × 5
#>    stack.loss stack.x[,"Air.Flow"] [,"Water.Temp"]    .resid .fitted  .tau
#>         <dbl>                <dbl>           <dbl>     <dbl>   <dbl> <dbl>
#>  1         42                   80              27  5.06e+ 0    36.9   0.5
#>  2         37                   80              27 -1.42e-14    37     0.5
#>  3         37                   75              25  5.43e+ 0    31.6   0.5
#>  4         28                   62              24  7.63e+ 0    20.4   0.5
#>  5         18                   62              22 -1.22e+ 0    19.2   0.5
#>  6         18                   62              23 -1.79e+ 0    19.8   0.5
#>  7         19                   62              24 -1.00e+ 0    20     0.5
#>  8         20                   62              24 -7.11e-15    20     0.5
#>  9         15                   58              23 -1.46e+ 0    16.5   0.5
#> 10         14                   58              18 -2.03e- 2    14.0   0.5
#> # ℹ 11 more rows
#> # ℹ 1 more variable: stack.x[3] <dbl>

tidy(mod2)
#> # A tibble: 1 × 5
#>   term        estimate conf.low conf.high   tau
#>   <chr>          <dbl> <lgl>    <lgl>     <dbl>
#> 1 (Intercept)   0.0744 NA       NA          0.5
glance(mod2)
#> # A tibble: 1 × 5
#>     tau logLik     AIC   BIC df.residual
#>   <dbl> <logLik> <dbl> <dbl>       <int>
#> 1   0.5 -72.9869  148.  150.          49
augment(mod2)
#> # A tibble: 50 × 5
#>    `rnorm(50)` `(weights)` .resid .fitted  .tau
#>          <dbl>       <dbl>  <dbl>   <dbl> <dbl>
#>  1       1.25       0.192   1.18   0.0744   0.5
#>  2       0.458      0.321   0.383  0.0744   0.5
#>  3       0.765      0.0297  0.691  0.0744   0.5
#>  4       0.392      0.870   0.317  0.0744   0.5
#>  5      -0.547      0.647  -0.622  0.0744   0.5
#>  6      -0.468      0.319  -0.542  0.0744   0.5
#>  7      -1.11       0.293  -1.18   0.0744   0.5
#>  8       0.786      0.669   0.711  0.0744   0.5
#>  9      -0.648      0.408  -0.722  0.0744   0.5
#> 10       1.07       0.664   1.00   0.0744   0.5
#> # ℹ 40 more rows

# varying tau to generate an rqs object
mod3 <- rq(stack.loss ~ stack.x, tau = c(.25, .5))

tidy(mod3)
#> # A tibble: 8 × 5
#>   term               estimate conf.low conf.high   tau
#>   <chr>                 <dbl>    <dbl>     <dbl> <dbl>
#> 1 (Intercept)       -3.6 e+ 1  -59.0     -7.84    0.25
#> 2 stack.xAir.Flow    5.00e- 1    0.229    0.970   0.25
#> 3 stack.xWater.Temp  1.00e+ 0    0.286    2.26    0.25
#> 4 stack.xAcid.Conc. -4.58e-16   -0.643    0.0861  0.25
#> 5 (Intercept)       -3.97e+ 1  -53.8    -24.5     0.5 
#> 6 stack.xAir.Flow    8.32e- 1    0.509    1.17    0.5 
#> 7 stack.xWater.Temp  5.74e- 1    0.272    3.04    0.5 
#> 8 stack.xAcid.Conc. -6.09e- 2   -0.278    0.0153  0.5 
augment(mod3)
#> # A tibble: 42 × 5
#>    stack.loss stack.x[,"Air.Flow"] [,"Water.Temp"] .tau     .resid .fitted
#>         <dbl>                <dbl>           <dbl> <chr>     <dbl>   <dbl>
#>  1         42                   80              27 0.25   1.10e+ 1    31.0
#>  2         42                   80              27 0.5    5.06e+ 0    36.9
#>  3         37                   80              27 0.25   6.00e+ 0    31.0
#>  4         37                   80              27 0.5   -1.42e-14    37  
#>  5         37                   75              25 0.25   1.05e+ 1    26.5
#>  6         37                   75              25 0.5    5.43e+ 0    31.6
#>  7         28                   62              24 0.25   9.00e+ 0    19  
#>  8         28                   62              24 0.5    7.63e+ 0    20.4
#>  9         18                   62              22 0.25   1.00e+ 0    17.0
#> 10         18                   62              22 0.5   -1.22e+ 0    19.2
#> # ℹ 32 more rows
#> # ℹ 1 more variable: stack.x[3] <dbl>

# glance cannot handle rqs objects like `mod3`--use a purrr
# `map`-based workflow instead

相关用法


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