2
我有一個下面的代碼,我試圖複製n次的估計,然後生成預測和係數供進一步使用。從stata中存儲n個重複的預測和係數
capture program drop mypro
program define mypro
drop _all
sysuse auto
bsample
reg mpg price headroom
mat mycoef=e(b)
gen mypri=mycoef[1,1]
gen myhead=mycoef[1,2]
gen mycons=mycoef[1,3]
predict x1b
end
simulate, seed(10) reps(10) nodots : mypro
默認情況下,simulate
只給出來自10個不同樣本的係數。但是,我試圖保存每個樣本數據集以及係數mpri,myhead,myconst和x1b。是否可以使用simulate
或我需要使用loop
?
更新爲每尼克的評論:
capture program drop mypro
program define mypro
set seed 1
local r=10
forvalues i=1/`r'{
drop _all
sysuse auto
bsample
reg mpg price headroom
mat mycoef=e(b)
gen mypri=mycoef[1,1]
gen myhead=mycoef[1,3]
predict x1b
save data`i',replace
}
end
謝謝。對不起,沒有明確問題。我不僅需要這些係數,還希望每次複製的預測(而不是彙總)和採樣數據集。例如,在我的情況下,我需要10個不同的重採樣數據集以及係數和預測。這些將被用作進一步研究的輸入。 'simulate'和'bootstrap'不允許我爲每個複製提取採樣數據(用於程序內部分析)。我試過尋找'postfile',但不知道該怎麼辦。 – user227710
對於任何嚴肅的模擬工作,10個聽起來都不夠充分。但我想你需要每次使用'merge'來循環調用'bsample'調用。 '模擬'對你來說是死路一條。 –
謝謝。是的,10是不夠的,但我在這裏只用作演示。 'bsample'沒有允許循環的選項。你能否給出一個額外的提示,如何繼續? – user227710