我正在尝试在 R 中引导一个简单的多项式回归,但出现错误:
Error in is.data.frame(data) : object 'd' not found
真正奇怪的是,我使用了与引导包 at Quick-R 教程中相同的代码(针对此特定问题进行了调整)。 ,并且当我使用不同的函数(如 lm())时,同样的代码也有效。当然,我正在做一些愚蠢的事情,但我看不出是什么。请,如果有人可以提供帮助,我将不胜感激。
这是一个例子:
require(foreign)
require(nnet)
require(boot)
# an example for multinomial logistic regression
ml = read.dta('http://www.ats.ucla.edu/stat/data/hsbdemo.dta')
ml = ml[,c(5,7,3)]
bs <- function(formula, data, indices) {
d = data[indices,] # allows boot to select sample
fit = multinom(formula, data=d)
s = summary(fit)
return(list(fit$coefficients, fit$standard.errors))
}
# 5 replications
results = list()
results <- boot(
data=ml, statistic=bs, R=5, parallel='multicore',
formula=prog~write
)
最佳答案
错误发生在 summary()
部分,也是 multinom()
返回的对象没有coefficients
和 standard.errors
.看来,summary.multinom()
反过来根据您的数据计算粗麻布,d
,由于某种原因(可能是范围问题)无法找到。快速修复是添加 Hess = TRUE
:
bs <- function(formula, data, indices) {
d = data[indices,] # allows boot to select sample
fit = multinom(formula, data=d, Hess = TRUE)
s = summary(fit)
return( cbind(s$coefficients, s$standard.errors) )
}
# 5 replications
results = list()
results <- boot(
data=ml, statistic=bs, R=5, parallel='multicore',
formula=prog~write
)
关于r - R 中的 Bootstrap 多项式回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33170335/