繁体   English   中英

限制回归并在R中聚类SE

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM