我试图在R中引导一个简单的多项式回归,我收到一个错误: Error in is.data.frame(data) : object ‘d’ not found 真正奇怪的是,我使用相同的代码(调整到这个特定的问题),就像在启动包at Quick-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()返回的对象也没有系数和standard.errors.似乎,summary.multinom()依次计算你的数据中的hessian 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 )