[英]Error in eval(predvars, data, env) when doing Bootstrapping
我正在嘗試擬合線性回歸模式來檢查 COVID 對交通量的影響。 這是我的數據集,其中包含 31 個觀察值,我已使用最小-最大縮放比例對這些觀察值進行了歸一化。
structure(list(Date = c("Jul-19", "Aug-19", "Sep-19", "Oct-19",
"Nov-19", "Dec-19", "Jan-20", "Feb-20", "Mar-20", "Apr-20", "May-20",
"Jun-20", "Jul-20", "Aug-20", "Sep-20", "Oct-20", "Nov-20", "Dec-20",
"Jan-21", "Feb-21", "Mar-21", "Apr-21", "May-21", "Jun-21", "Jul-21",
"Aug-21", "Sep-21", "Oct-21", "Nov-21", "Dec-21", "Jan-22"),
Average.Weekday.Daily.Traffic..Veh.day. = c(0.888327194565519,
0.957155270369628, 0.895880165623604, 0.942066917846049,
1, 0.877361842545003, 0.703731456172012, 0.898082382615854,
0.607783746512863, 0, 0.317277553217312, 0.560830088053501,
0.706464878860476, 0.747561202987416, 0.737478848514911,
0.800118905645907, 0.857496156674019, 0.809655982748128,
0.708357519023144, 0.926517717996616, 0.895669090512526,
0.856018630896471, 0.925733222167108, 0.825782121234508,
0.798338838875814, 0.533903939716948, 0.819263418220707,
0.84537340946109, 0.792752384269276, 0.64987564158039, 0.365423786054267
), Case = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0.00543532109442455,
0.00036093929142663, 5.66179280669224e-05, 0, 0.000134467579158941,
0.000339707568401534, 0.000127390338150575, 0.000113235856133845,
0, 0.000169853784200767, 0.000106158615125479, 0.00106158615125479,
0.0015286840578069, 0, 0, 0.00110404959730499, 0.00312814052569746,
0, 0.000268935158317881, 0, 0.00153576129881527, 1), Regulation = c(0,
0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0.666666666666667, 0.333333333333333,
0.333333333333333, 0.166666666666667, 0.166666666666667,
0.166666666666667, 0.166666666666667, 0.333333333333333,
0.166666666666667, 0.333333333333333, 0.166666666666667,
0.166666666666667, 0.333333333333333, 0.166666666666667,
0.166666666666667, 0.166666666666667, 0.166666666666667,
0, 0, 0)), row.names = c(NA, -31L), class = "data.frame")
我的model和output:
m1 <- lm(Average.Weekday.Daily.Traffic..Veh.day. ~ Case + Regulation, data = data)
summary(m1)
Call:
lm(formula = Average.Weekday.Daily.Traffic..Veh.day. ~ Case +
Regulation, data = data)
Residuals:
Min 1Q Median 3Q Max
-0.35325 -0.00991 0.00712 0.05537 0.25166
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.89096 0.03061 29.104 < 2e-16 ***
Case -0.52838 0.13368 -3.952 0.000477 ***
Regulation -0.53484 0.08077 -6.622 3.49e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.1301 on 28 degrees of freedom
Multiple R-squared: 0.6548, Adjusted R-squared: 0.6301
F-statistic: 26.55 on 2 and 28 DF, p-value: 3.413e-07
盡管自變量很重要,但我發現使用 Jarque-Bera 檢驗時誤差不是正態分布的。 我試圖通過使用以下代碼進行引導來修復它:
set.seed(4321)
m2 <- Boot(m1, R = 100, method = "residual")
summary(m2)
但是我收到一條錯誤消息,即使我在我的線性 model 中包含了 Case 變量: Error in eval(predvars, data, env): object 'Case' not found
誰能幫我解釋為什么會出現此錯誤以及如何解決? 非常感謝你的幫助。
您的問題是由於數據框的名稱與 function data
之間的名稱沖突,這是由於Boot
和boot
使用非標准評估的方式。 這就是為什么最好避免為您自己的對象使用這樣的名稱。 您需要做的就是將data
更改為mydata
,問題就消失了。
library(car)
#> Loading required package: carData
mydata <- data
m1 <- lm(Average.Weekday.Daily.Traffic..Veh.day. ~ Case + Regulation, data = mydata)
set.seed(4321)
m2 <- Boot(m1, R = 100, method = "residual")
#> Loading required namespace: boot
summary(m2)
#>
#> Number of bootstrap replications R = 100
#> original bootBias bootSE bootMed
#> (Intercept) 0.89096 0.00248002 0.038248 0.89308
#> Case -0.52838 0.00555811 0.187270 -0.51458
#> Regulation -0.53484 -0.00088829 0.099065 -0.53900
由reprex package (v2.0.1) 創建於 2022-04-03
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.