Manual one:
HTML Code:
clear all
program define svywt
syntax varlist, wtvar(varlist)
    
    gettoken depvar indepvars : varlist
    _fv_check_depvar `depvar'
    local p: word count `wtvar'
    local first1(`:word 1 of `wtvar''/(1+{xb: `wtvar'}))
    
    local first2(`:word 2 of `wtvar''/(1+{xb: }))
    
    local last(last:(`depvar' - ({`depvar': `indepvars' _cons}))/    (1+{xb: }))
    local last_inst instruments(last:`indepvars')
    
    gmm `first1'`-'`first`p'' `last', `last_inst' onestep winitial(unadjusted, independent)
        
    end
sysuse auto, clear
egen y = mean(price)
gen price_1 = price -y
egen x = mean(mpg)
gen mpg_1=mpg-x
svywt price weight mpg, wtvar(price_1 mpg_1)With a loop:
HTML Code:
clear all
program define svywt
syntax varlist, WTvar(varlist)
    
    gettoken depvar indepvars : varlist
    _fv_check_depvar `depvar'
    
    local p: word count `wtvar' 
     
    forvalues i = 2(1)`p'{
     local first_1(first_1:`:word `i' of `wtvar''/(1+{xb: `wtvar'} )) //this one is done manually to declare linear combination `xb'
     local first_`i'(first_`i':`:word `i' of `wtvar''/(1+ {xb:}) )
    }
    local third(third:(`depvar' - ({`depvar': `indepvars' _cons}))/    (1+{xb:} ))
    local third_inst instruments(third: `indepvars')
    
    gmm `first_1'`-'`first_`p'' `third', `third_inst' onestep winitial(unadjusted, independent)
        
    end
sysuse auto, clear
egen y = mean(price)
gen price_1 = price -y
egen x = mean(mpg)
gen mpg_1=mpg-x
svywt price weight mpg, wtvar(price_1 mpg_1)Rabiul
0 Response to Help needed to fix GMM iteration problem
Post a Comment