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


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


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 sarlm
augment(x, data = x$X, ...)

參數

x

spatialreg::lagsarlm()spatialreg::errorsarlm() 返回的對象。

data

被忽略,但為了內部一致性而包含在內。請參閱下麵的詳細信息。

...

附加參數。不曾用過。僅需要匹配通用簽名。注意:拚寫錯誤的參數將被吸收到 ... 中,並被忽略。如果拚寫錯誤的參數有默認值,則將使用默認值。例如,如果您傳遞 conf.lvel = 0.9 ,所有計算將使用 conf.level = 0.95 進行。這裏有兩個異常:

  • tidy() 方法在提供 exponentiate 參數時會發出警告(如果該參數將被忽略)。

  • augment() 方法在提供 newdata 參數時會發出警告(如果該參數將被忽略)。

細節

Sarlm 對象的預測方法假設響應已知。有關更多討論,請參閱 ?predict.sarlm。因此,由於可以從擬合對象中恢複原始數據,因此該方法當前不接受 datanewdata 參數。

也可以看看

augment()

其他空間寄存器:glance.sarlm()tidy.sarlm()

帶有列的 tibble::tibble()

.fitted

擬合值或預測值。

.resid

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

例子



# load libraries for models and data
library(spatialreg)
#> Loading required package: spData
#> To access larger datasets in this package, install the
#> spDataLarge package with: `install.packages('spDataLarge',
#> repos='https://nowosad.github.io/drat/', type='source')`
#> Loading required package: sf
#> Linking to GEOS 3.10.2, GDAL 3.4.1, PROJ 8.2.1; sf_use_s2() is TRUE
library(spdep)
#> 
#> Attaching package: ‘spdep’
#> The following objects are masked from ‘package:spatialreg’:
#> 
#>     get.ClusterOption, get.VerboseOption, get.ZeroPolicyOption,
#>     get.coresOption, get.mcOption, set.ClusterOption,
#>     set.VerboseOption, set.ZeroPolicyOption, set.coresOption,
#>     set.mcOption

# load data
data(oldcol, package = "spdep")

listw <- nb2listw(COL.nb, style = "W")

# fit model
crime_sar <-
  lagsarlm(CRIME ~ INC + HOVAL,
    data = COL.OLD,
    listw = listw,
    method = "eigen"
  )

# summarize model fit with tidiers
tidy(crime_sar)
#> # A tibble: 4 × 5
#>   term        estimate std.error statistic  p.value
#>   <chr>          <dbl>     <dbl>     <dbl>    <dbl>
#> 1 rho            0.431    0.118       3.66 2.50e- 4
#> 2 (Intercept)   45.1      7.18        6.28 3.37e-10
#> 3 INC           -1.03     0.305      -3.38 7.23e- 4
#> 4 HOVAL         -0.266    0.0885     -3.00 2.66e- 3
tidy(crime_sar, 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 rho            0.431    0.118       3.66 2.50e- 4    0.200    0.662 
#> 2 (Intercept)   45.1      7.18        6.28 3.37e-10   31.0     59.1   
#> 3 INC           -1.03     0.305      -3.38 7.23e- 4   -1.63    -0.434 
#> 4 HOVAL         -0.266    0.0885     -3.00 2.66e- 3   -0.439   -0.0925
glance(crime_sar)
#> # A tibble: 1 × 6
#>   r.squared   AIC   BIC deviance logLik  nobs
#>       <dbl> <dbl> <dbl>    <dbl>  <dbl> <int>
#> 1     0.652  375.  384.    4679.  -182.    49
augment(crime_sar)
#> # A tibble: 49 × 6
#>    `(Intercept)`   INC HOVAL  CRIME .fitted .resid
#>            <dbl> <dbl> <dbl>  <dbl>   <dbl>  <dbl>
#>  1             1 21.2   44.6 18.8      22.6  -3.84
#>  2             1  4.48  33.2 32.4      46.6 -14.2 
#>  3             1 11.3   37.1 38.4      41.4  -2.97
#>  4             1  8.44  75    0.178    37.9 -37.7 
#>  5             1 19.5   80.5 15.7      14.2   1.54
#>  6             1 16.0   26.4 30.6      34.3  -3.66
#>  7             1 11.3   23.2 50.7      44.7   5.99
#>  8             1 16.0   28.8 26.1      38.4 -12.3 
#>  9             1  9.87  18   48.6      51.7  -3.12
#> 10             1 13.6   96.4 34.0      16.3  17.7 
#> # ℹ 39 more rows

# fit another model
crime_sem <- errorsarlm(CRIME ~ INC + HOVAL, data = COL.OLD, listw)

# summarize model fit with tidiers
tidy(crime_sem)
#> # A tibble: 4 × 5
#>   term        estimate std.error statistic   p.value
#>   <chr>          <dbl>     <dbl>     <dbl>     <dbl>
#> 1 (Intercept)   59.9      5.37       11.2  0        
#> 2 INC           -0.941    0.331      -2.85 0.00441  
#> 3 HOVAL         -0.302    0.0905     -3.34 0.000836 
#> 4 lambda         0.562    0.134       4.20 0.0000271
tidy(crime_sem, 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 (Intercept)   59.9      5.37       11.2  0           49.4      70.4  
#> 2 INC           -0.941    0.331      -2.85 0.00441     -1.59     -0.293
#> 3 HOVAL         -0.302    0.0905     -3.34 0.000836    -0.480    -0.125
#> 4 lambda         0.562    0.134       4.20 0.0000271    0.299     0.824
glance(crime_sem)
#> # A tibble: 1 × 6
#>   r.squared   AIC   BIC deviance logLik  nobs
#>       <dbl> <dbl> <dbl>    <dbl>  <dbl> <int>
#> 1     0.658  377.  386.    4683.  -183.    49
augment(crime_sem)
#> # A tibble: 49 × 6
#>    `(Intercept)`   INC HOVAL  CRIME .fitted  .resid
#>            <dbl> <dbl> <dbl>  <dbl>   <dbl>   <dbl>
#>  1             1 21.2   44.6 18.8      22.5  -3.70 
#>  2             1  4.48  33.2 32.4      44.9 -12.5  
#>  3             1 11.3   37.1 38.4      38.2   0.223
#>  4             1  8.44  75    0.178    35.0 -34.8  
#>  5             1 19.5   80.5 15.7      13.3   2.45 
#>  6             1 16.0   26.4 30.6      35.0  -4.33 
#>  7             1 11.3   23.2 50.7      42.3   8.41 
#>  8             1 16.0   28.8 26.1      39.4 -13.3  
#>  9             1  9.87  18   48.6      49.3  -0.721
#> 10             1 13.6   96.4 34.0      16.6  17.4  
#> # ℹ 39 more rows

# fit another model
crime_sac <- sacsarlm(CRIME ~ INC + HOVAL, data = COL.OLD, listw)

# summarize model fit with tidiers
tidy(crime_sac)
#> # A tibble: 5 × 5
#>   term        estimate std.error statistic    p.value
#>   <chr>          <dbl>     <dbl>     <dbl>      <dbl>
#> 1 rho            0.368    0.197      1.87  0.0613    
#> 2 (Intercept)   47.8      9.90       4.83  0.00000140
#> 3 INC           -1.03     0.326     -3.14  0.00167   
#> 4 HOVAL         -0.282    0.0900    -3.13  0.00176   
#> 5 lambda         0.167    0.297      0.562 0.574     
tidy(crime_sac, conf.int = TRUE)
#> # A tibble: 5 × 7
#>   term        estimate std.error statistic    p.value conf.low conf.high
#>   <chr>          <dbl>     <dbl>     <dbl>      <dbl>    <dbl>     <dbl>
#> 1 rho            0.368    0.197      1.87  0.0613      -0.0174     0.754
#> 2 (Intercept)   47.8      9.90       4.83  0.00000140  28.4       67.2  
#> 3 INC           -1.03     0.326     -3.14  0.00167     -1.67      -0.386
#> 4 HOVAL         -0.282    0.0900    -3.13  0.00176     -0.458     -0.105
#> 5 lambda         0.167    0.297      0.562 0.574       -0.415      0.748
glance(crime_sac)
#> # A tibble: 1 × 6
#>   r.squared   AIC   BIC deviance logLik  nobs
#>       <dbl> <dbl> <dbl>    <dbl>  <dbl> <int>
#> 1     0.652  376.  388.    4685.  -182.    49
augment(crime_sac)
#> # A tibble: 49 × 6
#>    `(Intercept)`   INC HOVAL  CRIME .fitted .resid
#>            <dbl> <dbl> <dbl>  <dbl>   <dbl>  <dbl>
#>  1             1 21.2   44.6 18.8      22.2  -3.37
#>  2             1  4.48  33.2 32.4      46.4 -14.0 
#>  3             1 11.3   37.1 38.4      40.4  -2.00
#>  4             1  8.44  75    0.178    37.5 -37.3 
#>  5             1 19.5   80.5 15.7      13.5   2.25
#>  6             1 16.0   26.4 30.6      34.4  -3.74
#>  7             1 11.3   23.2 50.7      44.1   6.60
#>  8             1 16.0   28.8 26.1      39.0 -12.9 
#>  9             1  9.87  18   48.6      51.5  -2.93
#> 10             1 13.6   96.4 34.0      15.8  18.2 
#> # ℹ 39 more rows
源代碼:R/spdep-tidiers.R

相關用法


注:本文由純淨天空篩選整理自大神的英文原創作品 Augment data with information from a(n) spatialreg object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。