簡體   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