Я пытаюсь получить загрузочные SE для коэффициентов регрессии. Используемые данные выглядят так:
set.seed(1234)
df <- data.frame(y = rnorm(1:30),
fac1 = as.factor(sample(c("A","B","C","D","E"),30, replace = T)),
fac2 = as.factor(sample(c("NY","NC","CA"),30,replace = T)),
x = rnorm(1:30))
Я использую пакет boot
для выполнения начальной загрузки:
library(boot)
fun <- function(data, index){
data <- df[index,]
reg <- lm(y ~ fac1 + fac2 + x, data)
coef(reg)
}
test.boot <- boot(df, fun, strata = df$fac1, 100)
Однако R жалуется:
Error in boot(df, fun, strata = df$fac1, 100) :
number of items to replace is not a multiple of replacement length
Моя ситуация точно такая же, как указано здесь. Я понимаю, что проблема здесь в недостаточном количестве наблюдений в каждой группе. Опция strata
в пакете boot
может работать только для одной факторной переменной. В моем случае я должен стратифицировать образцы на основе двух факторов: fac1
и fac2
(пожалуйста, дайте мне знать, если мое понимание здесь неверно).
Я обнаружил, что функция stratified
, опубликованная здесь, может создавать точные стратифицированные выборки, как мне нужно. Проблема здесь в том, как я могу реализовать функцию stratified
для функции boot
и позволить функции boot
работать с правильными образцами?
В настоящее время я сам пишу for-loop
для запуска начальной загрузки с использованием правильных стратифицированных образцов. Но я все еще хочу знать, могу ли я включить функцию stratified
в boot
? Какие-либо предложения? Благодарю вас!
help("interaction")
для создания одного фактора из двух факторов. - person lmo   schedule 30.08.2016stratified
, упомянутые здесь, вboot
, поскольку мне могут понадобиться дополнительные функции, предоставляемыеstratified
для более сложных ситуаций. Спасибо! - person Chuan   schedule 30.08.2016