1

私は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グローバル変数として設定することで、ループはそれを変数の 1 つのセットとして扱うと思っていましたが、間違っていました。コードはすべての変数をループする$SESため、各ダミー変数trauma_mainが個別に回帰することになりますが、これは私が望んでいるものではありません。

ダミー変数を 1 つのブロックとして扱うように Stata に「指示」する方法はありますか? さらに、私はできることを知っており、それi.SESを使用してもうまくいきますが、使用されている参照グループは私が望むものではありません. のような参照グループを設定する方法をグーグルでi.var検索しましたが、おそらく間違った検索用語を使用しているため、何も役に立ちません。

アドバイスをよろしくお願いします。

マギー

4

2 に答える 2

1

カテゴリ変数をダミーに分割する必要はありません。代わりに因子変数表記 ( i.) を使用できます。これについては、 に記載されていhelp fvvarlistます。因子変数を使用すると、参照カテゴリを簡単に変更できます。

ここに例があります。サイト変数には 3 つのカテゴリがあります。デフォルトでは、サイト = 1がカテゴリ変数の参照カテゴリです。

webuse sysdsn1、クリア

foreach v in age male i.site {
mlogit insure `v'
}

を使用ibすると、参照カテゴリを任意のレベルに設定できます。参照としてサイト = 2が必要な場合は、次の操作を実行できます。

foreach v 年齢 男性 ib2.site {
mlogit insure `v'
}

于 2012-06-05T13:44:47.600 に答える
0

foreachこのコマンドに関する Stata のドキュメントには、グローバル マクロがなくても機能することが示されています。

. 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""'
于 2012-06-05T13:33:24.000 に答える