str*_*tum 5 bootstrapping r logistic-regression
我试图在R中引导一个简单的多项式回归,我收到一个错误:
is.data.frame(data)出错:找不到对象'd'
真正奇怪的是我在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
)
Run Code Online (Sandbox Code Playgroud)
错误发生在该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
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |