2016-03-03 16 views
0

我在用戶定義的程序中調用最大化選項時出現問題。例如,下面的工作完美:Stata用戶定義程序,Probit和最大化選項

sysuse nlsw88, clear 
probit collgrad age grade, tech(bfgs) 

但是,當我定義的概率值調用一個函數,我得到「選項高科技()不得入內」的錯誤消息。下面是該

program probit_test, eclass 
version 10.1 
    if replay() { 
    syntax [anything] [, Level(real 95) ] 
    eret di, level(`level') 
    } 
    else { 
    qui { 
syntax [varlist] [if] [in], [Level(real 95) *] 

tempvar touse e1 
tempname beta var 
mark `touse' `if' `in' 
markout `touse' 

gettoken depv vl:varlist 
probit `depv' `vl' if `touse', tech(bfgs) 
g `e1'=e(sample) 

loc N=r(N) 
matrix `beta'=e(b) 
matrix `var'=e(V) 

ereturn post `beta' `var', dep(`depv') e(`e1') obs(`N') 
cap drop _d* 
    } 
eret di, level(`level') 
    } 
end 
**** 

sysuse nlsw88, clear 
probit_test collgrad age grade 

編輯代碼:我只是想補充一點,這是不實際的程序我運行,但一個簡單的版本,顯示的問題。

回答

1

您的probit_test程序告訴Stata表現得好像是10.1版。在10.1中,Broyden-Fletcher-Goldfarb-Shanno算法尚不可用,因此錯誤。將版本更改爲更新的版本(bfgs在v11中引入),並且它應該運行良好。

+0

感謝您的支持! – Greg

相關問題