當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R broom augment.rq 使用來自 a(n) rq 對象的信息增強數據


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

參數

x

quantreg::rq() 返回的 rq 對象。

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.rq()

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

帶有列的 tibble::tibble()

.fitted

擬合值或預測值。

.resid

觀察值和擬合值之間的差異。

.tau

分位數。

例子


# load modeling library and data
library(quantreg)
#> Loading required package: SparseM
#> 
#> Attaching package: ‘SparseM’
#> The following object is masked from ‘package:base’:
#> 
#>     backsolve
#> 
#> Attaching package: ‘quantreg’
#> The following object is masked from ‘package:survival’:
#> 
#>     untangle.specials

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.124 NA       NA          0.5
glance(mod2)
#> # A tibble: 1 × 5
#>     tau logLik      AIC   BIC df.residual
#>   <dbl> <logLik>  <dbl> <dbl>       <int>
#> 1   0.5 -78.76986  160.  161.          49
augment(mod2)
#> # A tibble: 50 × 5
#>    `rnorm(50)` `(weights)` .resid .fitted  .tau
#>          <dbl>       <dbl>  <dbl>   <dbl> <dbl>
#>  1     0.393       0.696    0.269   0.124   0.5
#>  2     0.458       0.266    0.334   0.124   0.5
#>  3    -1.22        0.660   -1.34    0.124   0.5
#>  4    -1.12        0.212   -1.25    0.124   0.5
#>  5     0.993       0.00527  0.869   0.124   0.5
#>  6    -1.83        0.103   -1.96    0.124   0.5
#>  7     0.124       0.287    0       0.124   0.5
#>  8     0.591       0.444    0.467   0.124   0.5
#>  9     0.805       0.693    0.681   0.124   0.5
#> 10     0.00754     0.0209  -0.116   0.124   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) rq object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。