2016-12-02 9 views
0

編集:1日後、私はこのクロス投稿をStatalistに投稿しました。p値のベクトルだけを返すStata eclassプログラムを書く

私はSSCのesttabからeststoesttabで動作するように私自身の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))") */ 

答えて

0

Statalist hereで回答を受け取りました。

これはRTFMのケースでした。 ereturn post構文では、名前の変更と等号は必要ありませんが、ereturn matrixは行います。これは、ereturnヘルプページの上部にある構文例に焦点を当てると明らかです。 =はオプションですが、新しい名前はありません。

正しいコードはereturn matrix p = pです。

関連する問題