引导样本结果变量是否与R中回归中的x值关联
我试图在R中的引导样本上运行回归 原始示例看起来像这个数据帧(称为df),有数百个条目。Y是结果变量,treat是0或1引导样本结果变量是否与R中回归中的x值关联,r,regression,linear-regression,sample,R,Regression,Linear Regression,Sample,我试图在R中的引导样本上运行回归 原始示例看起来像这个数据帧(称为df),有数百个条目。Y是结果变量,treat是0或1 y treat 3 0 5 1 2 0 4 1 我用替代品取样,从df$y生成900个观测值 set.seed(5) b1 <- sample(df$y, 900, replace = TRUE, prob = NULL) 当使用样本b1作为回归结果时,是否会自动将b1的正确值与原始数据帧中的treat值匹配?如果我希望b1中的结果值与原始数据帧中正确的t
y treat
3 0
5 1
2 0
4 1
我用替代品取样,从df$y生成900个观测值
set.seed(5)
b1 <- sample(df$y, 900, replace = TRUE, prob = NULL)
当使用样本b1作为回归结果时,是否会自动将b1的正确值与原始数据帧中的treat值匹配?如果我希望b1中的结果值与原始数据帧中正确的treat值相对应,我是否需要做一些不同的事情?如何检查这是否是我正在尝试运行的回归 我们可以对行序列而不是单个列进行
sample
。在OP的代码中,它只是对“y”进行采样,而“treat”只剩下4个元素,当我们应用公式方法时,这将导致错误,因为其中一个对象的长度不同
lm(b1 ~ treat, df)
model.frame.default中存在错误(公式=b1~treat,数据=df,
drop.unused.levels=TRUE):
可变长度不同(针对“treat”找到)
相反,我们对行序列进行sample
set.seed(5)
df1 <- df[sample(seq_len(nrow(df)), 900, replace = TRUE),]
lm(y ~ treat, df1)
set.seed(5)
现在,长度不同了。可能您需要df1我目前运行的回归,即使没有这样做。当它运行时发生了什么?我很惊讶它跑的长度不同。编辑:原始示例恰好也是900,这解释了它为什么运行。回归是错误的,但长度是相同的。您展示的示例给出了lm(b1~treat,df)
的错误,如果长度是相同的,那么它应该可以工作。i、 e.如果原始样本有900行,并且您只想在这种情况下采样,那么如果您在行序列上采样,它不会破坏这一点,因为您是在以行为单位的行序列上扩展基于数据的数据,@melbeznrow
也应该工作,但存在一些边缘情况
set.seed(5)
df1 <- df[sample(seq_len(nrow(df)), 900, replace = TRUE),]
lm(y ~ treat, df1)
df <- structure(list(y = c(3L, 5L, 2L, 4L), treat = c(0L, 1L, 0L, 1L
)), class = "data.frame", row.names = c(NA, -4L))