2012-06-05 127 views
1

我是新來的stata和宏。我想循環多個變量來從mlogit生成估計值,然後將它們保存在數據集中。這部分工作正常。我遇到的問題是需要分成虛擬變量的分類變量。Stata:Mlogit宏與虛擬變量

global mypath "/Volumes/NO NAME/Dissertation/Data/AIM 2" 
use "$mypath/AIM 2 DATA" 
global SES "sesq2 sesq3 sesq4 sesq5" 

/*regression*/ 
foreach xvar in age_median female marital ethnicity literacy $SES poor_health physical_median mental_median facility_fee time_clinic { 
    mlogit trauma_main `xvar', b(5) vce(cluster ea_id) rrr 
    parmest, saving("$mypath/multi_`xvar'.dta", replace) 
} 

我認爲通過設置SES作爲一個全局變量,循環會把它當作一組變量,但我錯了。代碼循環遍歷$ SES中的每個變量,所以我最終將每個虛擬變量分別迴歸到trauma_main,這不是我想要的。有沒有辦法「告訴」stata將虛擬變量視爲一個塊?另外,我知道我可以做i.SES,並且使用它可以正常工作,但是使用的引用組不是我想要的引用組。我已經用google搜索瞭如何爲i.var這樣的東西設置參考組,但是我沒有提供任何有用的信息,可能是因爲我使用了錯誤的搜索術語。

預先感謝任何建議,

瑪吉

回答

0

Stata's documentation for the foreach command表明,如果你想使用一個全球宏觀做到這一點,將工作,而全球宏觀經濟,即

. foreach xvar in age_median female marital ethnicity literacy "sesq2 sesq3 sesq4 sesq5" poor_health physical_median mental_median facility_fee time_clinic { 

,你需要使用複合雙引號來定義,其中包括引號宏:

. global SES `""sesq2 sesq3 sesq4 sesq5""' 
1

你不需要將你的分類變量分成傻瓜。您可以使用因子變量表示法(i.)。這在help fvvarlist中有記錄。隨着因子變量,參考類別的變化是直接的。

這裏是一個例子。 網站變量有三類。默認情況下站點= 1是參考類別分類變量:

webuse sysdsn1,明確

在年齡的foreach v雄性i.site {
mlogit保證`V」
}

隨着ib您可以參考類別設置爲任何所需的水平。如果你想網站= 2作爲參考,你可以做到以下幾點:

的foreach V IN歲男性ib2.site {
mlogit確保'V」
}