我有一個簡單的數據集,其中一個Y和10個預測變量(X1-X10)爲100個觀測值編碼爲0,1或2。邏輯迴歸中的重採樣
n <- 100
Y <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
X1 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.1,0.4,0.5))
X2 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.5,0.25,0.25))
X3 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.3,0.4,0.4))
X4 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.35,0.35,0.3))
X5 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.1,0.2,0.7))
X6 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.8,0.1,0.1))
X7 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.1,0.1,0.8))
X8 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.35,0.35,0.3))
X9 <- sample(x=c(0,1,2), size=n, replace=TRUE, prob=c(0.35,0.35,0.3))
X10 <- c(0,2,2,2,2,2,2,2,0,2,0,2,2,0,0,0,0,0,2,0,0,2,2,0,0,2,2,2,0,2,0,2,0,2,1,2,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0)
datasim <- data.frame(Y,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10)
我試圖做bootstrap重採樣如下,它工作在一個變量生產100個不同的樣本集。
B <- 100
n <- length(datasim$X1)
boot.samples <- matrix(sample(datasim$X1, size=B*n, replace=TRUE),B,n)
現在,我試圖將一個函數中使用GLM來計算偏離度的差異。我的願望是爲每個bootstrap樣本生成dDeviance(100個值)。我嘗試了以下功能,但它只給了我100個類似的dDeviance值。
xfunction <- function(x){
glmfit <- glm(Y~X1, family="binomial", data=datasim)
dDeviance <- glmfit$null.deviance-glmfit$deviance
return(dDeviance)
}
boot.statistics <- apply(boot.samples,1,xfunction)
沒有datasim提供了其很難知道,但你的函數有一個參數,x,它犯規出現在函數中使用,而不是你使用的是同樣的數據集,「datasim」,每次被調用時。 – user5219763
在你的模型語句中,你需要定義data = x而不是datasim。 –
謝謝你倆指出了。我只包括datasim也許你想運行它。我收到了應用函數的錯誤消息。 eval(predvars,data,env)中的錯誤:numeric'envir'arg長度不一。 – Shima