2015-06-18 30 views
0

我試圖演示小樣本數據的各種測試的特性。我想證明t檢驗的表現,t檢驗以及bootstrap估計和rankum檢驗。我有興趣使用simulate獲得多組數據的每個測試的p值。但是,我無法使用bootstrap前綴和ttest命令獲得t檢驗估計值。來自ttest命令的bootstrap估計的語法

由產生的數據:

clear 
set obs 60 
gen level = abs(rnormal(0,1)) 
gen group = "A" 
replace group = "B" if [_n] >30 

bootstrap, reps(100): ttest level, by(group) 
bootstrap _b, reps(100): ttest level, by(group) 
bootstrap boot_p = e(p), reps(100): ttest level, by(group) 

每個的在順序程序的錯誤是:需要

  • 無效

    1. 表達式列表表達:_b

    2. 'E(P)' 評價爲全樣本中缺失

    這些結果不與用於bootstrap前綴的文檔是一致的。 e或r類對象的規格是否有問題並且ttest

    編輯:

    瞭解,現在R級是正確的組標量的,我還是不產生變化的「P」給出的解決方案所提供的代碼。此外:

    clear 
    set more off 
    
    set obs 60 
    
    gen level = abs(rnormal(0,1)) 
    gen group = "A" 
    replace group = "B" if [_n] >30 
    
    bootstrap p=r(p), reps(100): ttest level, by(group) 
        display r(p) 
    

    不返回p值。

  • +0

    ''後bootstrap'不包含的r(p)的'返回list',\將顯示你'r(p)'不會被'bootstrap'返回,所以你的最後一條命令會產生一個錯誤。 –

    回答

    2

    ttestr級命令並將其重試存儲在r()中。您似乎期望它能將結果保存在e()中,如電子類命令。規範是後者適合模型; ttest不在此類別。

    雙面p值被存儲在r(p),如在help ttest所示:

    clear 
    set more off 
    
    set obs 60 
    
    gen level = abs(rnormal(0,1)) 
    gen group = "A" 
    replace group = "B" if [_n] >30 
    
    bootstrap p=r(p), reps(100): ttest level, by(group) 
    
    +0

    此解決方案在編輯後的查詢中不起作用。 – Todd

    +1

    'bootstrap'有它自己的幫助文件,你可以通過'help bootstrap'輕鬆訪問它。在那裏你可以發現bootstrap結果在'e(b)'中。運行'矩陣列表e(b)'顯示它。關於你想創建一個變量,如果你想要中間結果,請檢查'bootstrap'的'save()'選項。如果你想保存最終結果,你現在知道如何訪問它。有關將結果保存到Stata數據集的信息,請參閱'help postfile'。我的建議是更好地使用「幫助文件」和Stata手冊。 (你可以做出任何不相關的答案,只是修改你的問題。) –