編集:1日後、私はこのクロス投稿をStatalistに投稿しました。p値のベクトルだけを返すStata eclassプログラムを書く
私はSSCのesttab
からeststo
とesttab
で動作するように私自身のeclass
プログラムを書きたいです。
ranksum
のラッパーを作成して、p値を取得してt検定のp値と一緒にテーブルに追加できるようにします。 ereturn
ヘルプファイルから、の行列をeclass
に準拠させて返す必要があるようですが、どうやって計算するのか分かりません。
私は以下の悪質な電話にコメントしました。手段およびt検定を用いてテーブルを作成することは問題ではない(すなわち、最初の3列)。しかし私のWilcoxon3
コマンドでエラーが発生します。私はb
を返信して試してみましたが、エラー番号invalid syntax
は分かりません。
のp値をe()
コンテナに入れても問題ありません。
capture program drop Wilcoxon3
program define Wilcoxon3, eclass
version 13
syntax varlist [if] [in], by(varname)
marksample touse
local names
foreach v of varlist `varlist' {
ranksum `v' if `touse', by(`by')
matrix b = nullmat(b), 1
matrix p = nullmat(p), 2*normprob(-abs(r(z)))
local names `names' "`v'"
}
matrix colnames p = `names'
// store results
ereturn post b
ereturn matrix p
end
sysuse auto, clear
eststo clear
/* store means and t-tests */
estpost summarize price weight if !foreign
eststo
estpost summarize price weight if foreign
eststo
estpost ttest price weight, by(foreign)
eststo
/* /1* try to store rank-sum test *1/ */
/* Wilcoxon3 price weight, by(foreign) */
/* eststo */
/* table of means and t-tests */
esttab, cells("mean(pattern(1 0 0) fmt(3) label(!Foreign)) mean(pattern(0 1 0) fmt(3) label(Foreign)) p(star pattern(0 0 1) fmt(3) label(p))")
/* /1* try table of means, t-tests, and rank-sum tests *1/ */
/* esttab, cells("mean(pattern(1 0 0 0) fmt(3) label(!Foreign)) mean(pattern(0 1 0 0) fmt(3) label(Foreign)) p(star pattern(0 0 1 0) fmt(3) label(p)) p(star pattern(0 0 0 1) fmt(3) label(p))") */