[英]restricting a regression and clustering SE's in R
我试图限制回归,仅使用其中变量everevac == 1 ..的数据点。我想出了一种方法,但是想知道是否有更好的方法。
在STATA中,我将只运行以下内容:
reg outcome y2006 age black male etc if everevac==1, cluster(persid)
我为R想到了这个:
fit <- ols(formula = outcome[everevac==1] ~ y2006[everevac==1] +
age[everevac==1] + black[everevac==1] +
male[everevac==1] + hsgrad[everevac==1] +
hsgrad[everevac==1] + someco[everevac==1] +
ba[everevac==1] + postgrad[everevac==1], x=TRUE, y=TRUE, data = ps2_new)
robcov(fit, cluster = ps2_new$persid[ps2_new$everevac==1])
请注意,我只是限制了所有变量,使其变为var [everevac == 1] ..这是否还在做我认为正在做的事情? 有更好的方法吗? 我尝试使用这样的“ if”语句:
if(everevac==1){ <lm function above, taking out the [everevac==1] on each variable> }
但这没用。
将此参数添加到ols
调用中,然后不要通过外部值来引用集群ID,而是通过将在fit
-object的上下文中进行评估的名称(仅包含subset
-ed数据)来引用:
... , subset = everevac==1)
fit <- ols(formula = outcome ~ y2006 +
age + black +
male +
hsgrad + someco +
ba + postgrad,
x=TRUE, y=TRUE,
data = ps2_new, subset = everevac==1)
robcov(fit, cluster = persid)
顺便说一句,在代码块中包含library(rms)
被认为是礼貌的。
只需索引数据框就足够了
fit <- ols(formula = outcome ~ y2006 + age + black + male + hsgrad +
hsgrad + someco + ba + postgrad, x=TRUE, y=TRUE,
data = ps2_new[ps2_new$everevac==1,])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.