Hi all,
I am estimating a mixed demand model using nlsur command.
When I am estimating it with 8 products, 4 rationed and 4 not, I got results. when I am estimating it with 3 rationed and 7 not. I got the following essage and I dont know what is the problem:
nlsursur returned 198
verify that nlsursur is a function evaluator program
Here is my command:
program drop nlsursur
program nlsursur, rclass
version 13
syntax varlist(min=20 max=20) if, at(name)
local w1: word 1 of `varlist'
local w2: word 2 of `varlist'
local w3: word 3 of `varlist'
local w4: word 4 of `varlist'
local w5: word 5 of `varlist'
local w6: word 6 of `varlist'
local w7: word 7 of `varlist'
local w8: word 8 of `varlist'
local w9: word 9 of `varlist'
local p4: word 10 of `varlist'
local p5: word 11 of `varlist'
local p6: word 12 of `varlist'
local p7: word 13 of `varlist'
local p8: word 14 of `varlist'
local p9: word 15 of `varlist'
local p10: word 16 of `varlist'
local z1: word 17 of `varlist'
local z2: word 18 of `varlist'
local z3: word 19 of `varlist'
local y: word 20 of `varlist'
tempname a4 a5 a6 a7 a8 a9 a10
scalar `a4' = NR4
scalar `a5' = NR5
scalar `a6' = NR6
scalar `a7' = NR7
scalar `a8' = NR8
scalar `a9' = NR9
scalar `a10' = NR10
* Symmetry restrictions: bij=bji
tempname b4_4 b4_5 b4_6 b4_7 b4_8 b4_9 b4_10
scalar `b4_4' = `at'[1,1]
scalar `b4_5' = `at'[1,2]
scalar `b4_6' = `at'[1,3]
scalar `b4_7' = `at'[1,4]
scalar `b4_8' = `at'[1,5]
scalar `b4_9' = `at'[1,6]
scalar `b4_10' = 0 -`b4_4'-`b4_5'-`b4_6'-`b4_7'-`b4_8'-`b4_9'
tempname b5_4 b5_5 b5_6 b5_7 b5_8 b5_9 b5_10
scalar `b5_4' = `b4_5'
scalar `b5_5' = `at'[1,7]
scalar `b5_6' = `at'[1,8]
scalar `b5_7' = `at'[1,9]
scalar `b5_8' = `at'[1,10]
scalar `b5_9' = `at'[1,11]
scalar `b5_10' = 0 -`b5_4'-`b5_5'-`b5_6'-`b5_7'-`b5_8'-`b5_9'
tempname b6_4 b6_5 b6_6 b6_7 b6_8 b6_9 b6_10
scalar `b6_4' = `b4_6'
scalar `b6_5' = `b5_6'
scalar `b6_6' = `at'[1,12]
scalar `b6_7' = `at'[1,13]
scalar `b6_8' = `at'[1,14]
scalar `b6_9' = `at'[1,15]
scalar `b6_10' = 0 -`b6_4'-`b6_5'-`b6_6'-`b6_7'-`b6_8'-`b6_9'
tempname b7_4 b7_5 b7_6 b7_7 b7_8 b7_9 b7_10
scalar `b7_4' = `b4_7'
scalar `b7_5' = `b5_7'
scalar `b7_6' = `b6_7'
scalar `b7_7' = `at'[1,16]
scalar `b7_8' = `at'[1,17]
scalar `b7_9' = `at'[1,18]
scalar `b7_10' = 0 -`b7_4'-`b7_5'-`b7_6'-`b7_7'-`b7_8'-`b7_9'
tempname b8_4 b8_5 b8_6 b8_7 b8_8 b8_9 b8_10
scalar `b8_4' = `b4_8'
scalar `b8_5' = `b5_8'
scalar `b8_6' = `b6_8'
scalar `b8_7' = `b7_8'
scalar `b8_8' = `at'[1,19]
scalar `b8_9' = `at'[1,20]
scalar `b8_10' = 0 -`b8_4'-`b8_5'-`b8_6'-`b8_7'-`b8_8'-`b8_9'
tempname b9_4 b9_5 b9_6 b9_7 b9_8 b9_9 b9_10
scalar `b9_4' = `b4_9'
scalar `b9_5' = `b5_9'
scalar `b9_6' = `b6_9'
scalar `b9_7' = `b7_9'
scalar `b9_8' = `b8_9'
scalar `b9_9' = `at'[1,21]
scalar `b9_10' = 0 -`b9_4'-`b9_5'-`b9_6'-`b9_7'-`b9_8'-`b9_9'
tempname b10_4 b10_5 b10_6 b10_7 b10_8 b10_9 b10_10
scalar `b10_4' = `b4_10'
scalar `b10_5' = `b5_10'
scalar `b10_6' = `b6_10'
scalar `b10_7' = `b7_10'
scalar `b10_8' = `b8_10'
scalar `b10_9' = `b9_10'
scalar `b10_10' = 0 -`b10_4'-`b10_5'-`b10_6'-`b10_7'-`b10_8'-`b10_9'
tempname d4 d5 d6 d7 d8 d9 d10
scalar `d4' = `at'[1,22]
scalar `d5' = `at'[1,23]
scalar `d6' = `at'[1,24]
scalar `d7' = `at'[1,25]
scalar `d8' = `at'[1,26]
scalar `d9' = `at'[1,27]
scalar `d10' = 0 -`d4'-`d5'-`d6'-`d7'-`d8'-`d9'
tempname beta4 beta5 beta6 beta7 beta8 beta9 beta10
scalar `beta4' = `at'[1,28]
scalar `beta5' = `at'[1,29]
scalar `beta6' = `at'[1,30]
scalar `beta7' = `at'[1,31]
scalar `beta8' = `at'[1,32]
scalar `beta9' = `at'[1,33]
scalar `beta10' = 0 -`beta4'-`beta5'-`beta6'-`beta7'-`beta8'-`beta9'
* The constraints for the 3 equations of the rations: s=k=1,2,3
tempname g1_1 g1_2 g1_3
scalar `g1_1' = `at'[1,34]
scalar `g1_2' = `at'[1,35]
scalar `g1_3' = `at'[1,36]
tempname g2_1 g2_2 g2_3
scalar `g2_1' = `g1_2'
scalar `g2_2' = `at'[1,37]
scalar `g2_3' = `at'[1,38]
tempname g3_1 g3_2 g3_3
scalar `g3_1' = `g1_3'
scalar `g3_2' = `g2_3'
scalar `g3_3' = `at'[1,39]
tempname mu1 mu2 mu3
scalar `mu1' = `at'[1,40]
scalar `mu2' = `at'[1,41]
scalar `mu3' = `at'[1,42]
tempname gamma1 gamma2 gamma3
scalar `gamma1' = `at'[1,43]
scalar `gamma2' = `at'[1,44]
scalar `gamma3' = `at'[1,45]
* i=4,5,6,7,8,9, 10 and k=1,2,3
tempname l4_1 l5_1 l6_1 l7_1 l8_1 l9_1 l10_1
scalar `l4_1' = `at'[1,46]
scalar `l5_1' = `at'[1,47]
scalar `l6_1' = `at'[1,48]
scalar `l7_1' = `at'[1,49]
scalar `l8_1' = `at'[1,50]
scalar `l9_1' = `at'[1,51]
scalar `l10_1' = 0 - (`l4_1'+`l5_1' + `l6_1' + `l7_1'+`l8_1' + `l9_1')
tempname l4_2 l5_2 l6_2 l7_2 l8_2 l9_2 l10_2
scalar `l4_2' = `at'[1,52]
scalar `l5_2' = `at'[1,53]
scalar `l6_2' = `at'[1,54]
scalar `l7_2' = `at'[1,55]
scalar `l8_2' = `at'[1,56]
scalar `l9_2' = `at'[1,57]
scalar `l10_2' = 0 - (`l4_2'+`l5_2' + `l6_2' + `l7_2'+`l8_2' + `l9_2')
tempname l4_3 l5_3 l6_3 l7_3 l8_3 l9_3 l10_3
scalar `l4_3' = `at'[1,58]
scalar `l5_3' = `at'[1,59]
scalar `l6_3' = `at'[1,60]
scalar `l7_3' = `at'[1,61]
scalar `l8_3' = `at'[1,62]
scalar `l9_3' = `at'[1,63]
scalar `l10_3' = 0 - (`l4_3'+`l5_3' + `l6_3' + `l7_3'+`l8_3' + `l9_3')
quietly {
/* Define main expressions */
/* MUTZ = (mu' z) */
tempvar mutz
gen `mutz' = (`mu1'*`z1') + (`mu2'*`z2') + (`mu3'*`z3')
/* ATP = (a' p) */
tempvar atp
gen `atp' = 0
forvalues i = 4/10 {
replace `atp' = `atp' + (`p`i''*`a`i'')
}
/* ZTGZ = (z' G z) */
tempvar ztgz
gen `ztgz' = 0
forvalues s = 1/3 {
forvalues k = 1/3 {
replace `ztgz' = `ztgz' + (`z`k''* `g`k'_`s'')*`z`s''
}
}
/* BETATP = (beta' p) */
tempvar betatp
gen `betatp' = 0
forvalues i = 4/10 {
replace `betatp' = `betatp' + (`p`i''*`beta`i'')
}
/* GAMMATZ = (gamma' z) */
tempvar gammatz
gen double `gammatz' = 0
forvalues s = 1/3 {
replace `gammatz' = `gammatz' + (`gamma`s''*`z`s'')
}
/* DELTATP = (delta' p) */
tempvar deltatp
gen double `deltatp' = 0
forvalues i = 4/10 {
replace `deltatp' = `deltatp' + (`d`i''*`p`i'')
}
/* Sum of B_ij * p_j terms */
tempvar sbp4 sbp5 sbp6 sbp7 sbp8 sbp9 sbp10
forvalues i = 4/10 {
gen double `sbp`i'' = 0
forvalues i = 4/10 {
replace `sbp`i'' = `sbp`i'' + (`b`i'_`j''*`p`j'')
}
}
/* PTBP = (p' B p) */
tempvar ptbp
gen double `ptbp' = 0
forvalues i = 4/10 {
replace `ptbp' = `ptbp' + (`sbp`i''*`p`i'')
}
/*sum of GAMMA_ks * z_s terms */
tempvar sgz1 sgz2 sgz3
forvalues s = 1/3 {
gen double `sgz`s'' = 0
forvalues k = 1/3 {
replace `sgz`s'' = `sgz`s'' + (`g`s'_`k''*`z`k'')
}
}
/* Mixed Utility VM = (VM) */
tempvar N D vm
gen `N'= `y' - `deltatp'
gen `D'=`betatp' + 0.5*(`ptbp'/`atp') - 0.5*(`atp'*`ztgz')
gen `vm' = `N'/`D'
replace `w1'= - ( `atp'*`mu1' + (`atp'*`gamma1' + `atp'*`sgz1' +(`l4_1'*`p4') + (`l5_1'*`p5')+ (`l6_1'*`p6')+(`l7_1'*`p7')+(`l8_1'*`p8')+(`l9_1'* `p9')++(`l10_1'*`p10'))*`vm' )*`z1'/`y' `if'
replace `w2'= - ( `atp'*`mu2' + (`atp'*`gamma2' + `atp'*`sgz2' +(`l4_2'*`p4') + (`l5_2'*`p5')+ (`l6_2'*`p6')+(`l7_2'*`p7')+(`l8_2'*`p8')+(`l9_2'* `p9')++(`l10_2'*`p10'))*`vm' )*`z2'/`y' `if'
replace `w3'= - ( `atp'*`mu3' + (`atp'*`gamma3' + `atp'*`sgz3' +(`l4_3'*`p4') + (`l5_3'*`p5')+(`l6_3'*`p6')+(`l7_3'*`p7')+(`l8_3'* `p8') +(`l9_3'*`p9')+(`l10_3'*`p10'))*`vm' )*`z3'/`y' `if'
replace `w4'= (`d4' + `mutz'*`a4' + (`beta4' + `sbp4'/`atp' + (`l4_1'*`z1')+ (`l4_2'*`z2')+(`l4_3'*`z3') + `a4'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p4'/`y' `if'
replace `w5'= (`d5' + `mutz'*`a5' + (`beta5' + `sbp5'/`atp' + (`l5_1'*`z1')+ (`l5_2'*`z2')+(`l5_3'*`z3') + `a5'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p5'/`y' `if'
replace `w6'= (`d6' + `mutz'*`a6' + (`beta6' + `sbp6'/`atp' + (`l6_1'*`z1')+ (`l6_2'*`z2')+(`l6_3'*`z3') + `a6'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p6'/`y' `if'
replace `w7'= (`d7' + `mutz'*`a7' + (`beta7' + `sbp7'/`atp' + (`l7_1'*`z1')+ (`l7_2'*`z2')+(`l7_3'*`z3') + `a7'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p7'/`y' `if'
replace `w8'= (`d8' + `mutz'*`a8' + (`beta8' + `sbp8'/`atp' + (`l8_1'*`z1')+ (`l8_2'*`z2')+(`l8_3'*`z3') + `a8'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p8'/`y' `if'
replace `w9'= (`d9' + `mutz'*`a9' + (`beta9' + `sbp9'/`atp' + (`l9_1'*`z1')+ (`l9_2'*`z2')+(`l9_3'*`z3') + `a9'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p9'/`y' `if'
replace `w9'= (`d9' + `mutz'*`a9' + (`beta9' + `sbp9'/`atp' + (`l9_1'*`z1')+ (`l9_2'*`z2')+(`l9_3'*`z3') + `a9'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p9'/`y' `if'
*replace `w10'= (`d10' + `mutz'*`a10' + (`beta10' + `sbp10'/`atp' + (`l10_1'*`z1')+ (`l10_2'*`z2')+(`l10_3'*`z3') + `a10'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p10'/`y' `if'
}
end
nlsur sur @ w1 w2 w3 w4 w5 w6 w7 w8 w9 z1 z2 z3 p4 p5 p6 p7 p8 p9 p10 y,/*
*/ parameters (b4_4 b4_5 b4_6 b4_7 b4_8 b4_9 /*
*/ b5_5 b5_6 b5_7 b5_8 b5_9 b6_6 /*
*/ b6_7 b6_8 b6_9 b7_7 b7_8 b7_9 b8_8 b8_9 /*
*/ b9_9 d4 d5 d6 d7 d8 d9 /*
*/ beta4 beta5 beta6 beta7 beta8 beta9 /*
*/ g1_1 g1_2 g1_3 g2_2 g2_3 g3_3 /*
*/ mu1 mu2 mu3 gamma1 gamma2 gamma3 l4_1 l5_1 /*
*/ l6_1 l7_1 l8_1 l9_1 l4_2 l5_2 l6_2 l7_2 l8_2 l9_2 /*
*/ l4_3 l5_3 l6_3 l7_3 l8_3 l9_3 ) neq(9) ifgnls
Any help?
Thanks in advance
I am estimating a mixed demand model using nlsur command.
When I am estimating it with 8 products, 4 rationed and 4 not, I got results. when I am estimating it with 3 rationed and 7 not. I got the following essage and I dont know what is the problem:
nlsursur returned 198
verify that nlsursur is a function evaluator program
Here is my command:
program drop nlsursur
program nlsursur, rclass
version 13
syntax varlist(min=20 max=20) if, at(name)
local w1: word 1 of `varlist'
local w2: word 2 of `varlist'
local w3: word 3 of `varlist'
local w4: word 4 of `varlist'
local w5: word 5 of `varlist'
local w6: word 6 of `varlist'
local w7: word 7 of `varlist'
local w8: word 8 of `varlist'
local w9: word 9 of `varlist'
local p4: word 10 of `varlist'
local p5: word 11 of `varlist'
local p6: word 12 of `varlist'
local p7: word 13 of `varlist'
local p8: word 14 of `varlist'
local p9: word 15 of `varlist'
local p10: word 16 of `varlist'
local z1: word 17 of `varlist'
local z2: word 18 of `varlist'
local z3: word 19 of `varlist'
local y: word 20 of `varlist'
tempname a4 a5 a6 a7 a8 a9 a10
scalar `a4' = NR4
scalar `a5' = NR5
scalar `a6' = NR6
scalar `a7' = NR7
scalar `a8' = NR8
scalar `a9' = NR9
scalar `a10' = NR10
* Symmetry restrictions: bij=bji
tempname b4_4 b4_5 b4_6 b4_7 b4_8 b4_9 b4_10
scalar `b4_4' = `at'[1,1]
scalar `b4_5' = `at'[1,2]
scalar `b4_6' = `at'[1,3]
scalar `b4_7' = `at'[1,4]
scalar `b4_8' = `at'[1,5]
scalar `b4_9' = `at'[1,6]
scalar `b4_10' = 0 -`b4_4'-`b4_5'-`b4_6'-`b4_7'-`b4_8'-`b4_9'
tempname b5_4 b5_5 b5_6 b5_7 b5_8 b5_9 b5_10
scalar `b5_4' = `b4_5'
scalar `b5_5' = `at'[1,7]
scalar `b5_6' = `at'[1,8]
scalar `b5_7' = `at'[1,9]
scalar `b5_8' = `at'[1,10]
scalar `b5_9' = `at'[1,11]
scalar `b5_10' = 0 -`b5_4'-`b5_5'-`b5_6'-`b5_7'-`b5_8'-`b5_9'
tempname b6_4 b6_5 b6_6 b6_7 b6_8 b6_9 b6_10
scalar `b6_4' = `b4_6'
scalar `b6_5' = `b5_6'
scalar `b6_6' = `at'[1,12]
scalar `b6_7' = `at'[1,13]
scalar `b6_8' = `at'[1,14]
scalar `b6_9' = `at'[1,15]
scalar `b6_10' = 0 -`b6_4'-`b6_5'-`b6_6'-`b6_7'-`b6_8'-`b6_9'
tempname b7_4 b7_5 b7_6 b7_7 b7_8 b7_9 b7_10
scalar `b7_4' = `b4_7'
scalar `b7_5' = `b5_7'
scalar `b7_6' = `b6_7'
scalar `b7_7' = `at'[1,16]
scalar `b7_8' = `at'[1,17]
scalar `b7_9' = `at'[1,18]
scalar `b7_10' = 0 -`b7_4'-`b7_5'-`b7_6'-`b7_7'-`b7_8'-`b7_9'
tempname b8_4 b8_5 b8_6 b8_7 b8_8 b8_9 b8_10
scalar `b8_4' = `b4_8'
scalar `b8_5' = `b5_8'
scalar `b8_6' = `b6_8'
scalar `b8_7' = `b7_8'
scalar `b8_8' = `at'[1,19]
scalar `b8_9' = `at'[1,20]
scalar `b8_10' = 0 -`b8_4'-`b8_5'-`b8_6'-`b8_7'-`b8_8'-`b8_9'
tempname b9_4 b9_5 b9_6 b9_7 b9_8 b9_9 b9_10
scalar `b9_4' = `b4_9'
scalar `b9_5' = `b5_9'
scalar `b9_6' = `b6_9'
scalar `b9_7' = `b7_9'
scalar `b9_8' = `b8_9'
scalar `b9_9' = `at'[1,21]
scalar `b9_10' = 0 -`b9_4'-`b9_5'-`b9_6'-`b9_7'-`b9_8'-`b9_9'
tempname b10_4 b10_5 b10_6 b10_7 b10_8 b10_9 b10_10
scalar `b10_4' = `b4_10'
scalar `b10_5' = `b5_10'
scalar `b10_6' = `b6_10'
scalar `b10_7' = `b7_10'
scalar `b10_8' = `b8_10'
scalar `b10_9' = `b9_10'
scalar `b10_10' = 0 -`b10_4'-`b10_5'-`b10_6'-`b10_7'-`b10_8'-`b10_9'
tempname d4 d5 d6 d7 d8 d9 d10
scalar `d4' = `at'[1,22]
scalar `d5' = `at'[1,23]
scalar `d6' = `at'[1,24]
scalar `d7' = `at'[1,25]
scalar `d8' = `at'[1,26]
scalar `d9' = `at'[1,27]
scalar `d10' = 0 -`d4'-`d5'-`d6'-`d7'-`d8'-`d9'
tempname beta4 beta5 beta6 beta7 beta8 beta9 beta10
scalar `beta4' = `at'[1,28]
scalar `beta5' = `at'[1,29]
scalar `beta6' = `at'[1,30]
scalar `beta7' = `at'[1,31]
scalar `beta8' = `at'[1,32]
scalar `beta9' = `at'[1,33]
scalar `beta10' = 0 -`beta4'-`beta5'-`beta6'-`beta7'-`beta8'-`beta9'
* The constraints for the 3 equations of the rations: s=k=1,2,3
tempname g1_1 g1_2 g1_3
scalar `g1_1' = `at'[1,34]
scalar `g1_2' = `at'[1,35]
scalar `g1_3' = `at'[1,36]
tempname g2_1 g2_2 g2_3
scalar `g2_1' = `g1_2'
scalar `g2_2' = `at'[1,37]
scalar `g2_3' = `at'[1,38]
tempname g3_1 g3_2 g3_3
scalar `g3_1' = `g1_3'
scalar `g3_2' = `g2_3'
scalar `g3_3' = `at'[1,39]
tempname mu1 mu2 mu3
scalar `mu1' = `at'[1,40]
scalar `mu2' = `at'[1,41]
scalar `mu3' = `at'[1,42]
tempname gamma1 gamma2 gamma3
scalar `gamma1' = `at'[1,43]
scalar `gamma2' = `at'[1,44]
scalar `gamma3' = `at'[1,45]
* i=4,5,6,7,8,9, 10 and k=1,2,3
tempname l4_1 l5_1 l6_1 l7_1 l8_1 l9_1 l10_1
scalar `l4_1' = `at'[1,46]
scalar `l5_1' = `at'[1,47]
scalar `l6_1' = `at'[1,48]
scalar `l7_1' = `at'[1,49]
scalar `l8_1' = `at'[1,50]
scalar `l9_1' = `at'[1,51]
scalar `l10_1' = 0 - (`l4_1'+`l5_1' + `l6_1' + `l7_1'+`l8_1' + `l9_1')
tempname l4_2 l5_2 l6_2 l7_2 l8_2 l9_2 l10_2
scalar `l4_2' = `at'[1,52]
scalar `l5_2' = `at'[1,53]
scalar `l6_2' = `at'[1,54]
scalar `l7_2' = `at'[1,55]
scalar `l8_2' = `at'[1,56]
scalar `l9_2' = `at'[1,57]
scalar `l10_2' = 0 - (`l4_2'+`l5_2' + `l6_2' + `l7_2'+`l8_2' + `l9_2')
tempname l4_3 l5_3 l6_3 l7_3 l8_3 l9_3 l10_3
scalar `l4_3' = `at'[1,58]
scalar `l5_3' = `at'[1,59]
scalar `l6_3' = `at'[1,60]
scalar `l7_3' = `at'[1,61]
scalar `l8_3' = `at'[1,62]
scalar `l9_3' = `at'[1,63]
scalar `l10_3' = 0 - (`l4_3'+`l5_3' + `l6_3' + `l7_3'+`l8_3' + `l9_3')
quietly {
/* Define main expressions */
/* MUTZ = (mu' z) */
tempvar mutz
gen `mutz' = (`mu1'*`z1') + (`mu2'*`z2') + (`mu3'*`z3')
/* ATP = (a' p) */
tempvar atp
gen `atp' = 0
forvalues i = 4/10 {
replace `atp' = `atp' + (`p`i''*`a`i'')
}
/* ZTGZ = (z' G z) */
tempvar ztgz
gen `ztgz' = 0
forvalues s = 1/3 {
forvalues k = 1/3 {
replace `ztgz' = `ztgz' + (`z`k''* `g`k'_`s'')*`z`s''
}
}
/* BETATP = (beta' p) */
tempvar betatp
gen `betatp' = 0
forvalues i = 4/10 {
replace `betatp' = `betatp' + (`p`i''*`beta`i'')
}
/* GAMMATZ = (gamma' z) */
tempvar gammatz
gen double `gammatz' = 0
forvalues s = 1/3 {
replace `gammatz' = `gammatz' + (`gamma`s''*`z`s'')
}
/* DELTATP = (delta' p) */
tempvar deltatp
gen double `deltatp' = 0
forvalues i = 4/10 {
replace `deltatp' = `deltatp' + (`d`i''*`p`i'')
}
/* Sum of B_ij * p_j terms */
tempvar sbp4 sbp5 sbp6 sbp7 sbp8 sbp9 sbp10
forvalues i = 4/10 {
gen double `sbp`i'' = 0
forvalues i = 4/10 {
replace `sbp`i'' = `sbp`i'' + (`b`i'_`j''*`p`j'')
}
}
/* PTBP = (p' B p) */
tempvar ptbp
gen double `ptbp' = 0
forvalues i = 4/10 {
replace `ptbp' = `ptbp' + (`sbp`i''*`p`i'')
}
/*sum of GAMMA_ks * z_s terms */
tempvar sgz1 sgz2 sgz3
forvalues s = 1/3 {
gen double `sgz`s'' = 0
forvalues k = 1/3 {
replace `sgz`s'' = `sgz`s'' + (`g`s'_`k''*`z`k'')
}
}
/* Mixed Utility VM = (VM) */
tempvar N D vm
gen `N'= `y' - `deltatp'
gen `D'=`betatp' + 0.5*(`ptbp'/`atp') - 0.5*(`atp'*`ztgz')
gen `vm' = `N'/`D'
replace `w1'= - ( `atp'*`mu1' + (`atp'*`gamma1' + `atp'*`sgz1' +(`l4_1'*`p4') + (`l5_1'*`p5')+ (`l6_1'*`p6')+(`l7_1'*`p7')+(`l8_1'*`p8')+(`l9_1'* `p9')++(`l10_1'*`p10'))*`vm' )*`z1'/`y' `if'
replace `w2'= - ( `atp'*`mu2' + (`atp'*`gamma2' + `atp'*`sgz2' +(`l4_2'*`p4') + (`l5_2'*`p5')+ (`l6_2'*`p6')+(`l7_2'*`p7')+(`l8_2'*`p8')+(`l9_2'* `p9')++(`l10_2'*`p10'))*`vm' )*`z2'/`y' `if'
replace `w3'= - ( `atp'*`mu3' + (`atp'*`gamma3' + `atp'*`sgz3' +(`l4_3'*`p4') + (`l5_3'*`p5')+(`l6_3'*`p6')+(`l7_3'*`p7')+(`l8_3'* `p8') +(`l9_3'*`p9')+(`l10_3'*`p10'))*`vm' )*`z3'/`y' `if'
replace `w4'= (`d4' + `mutz'*`a4' + (`beta4' + `sbp4'/`atp' + (`l4_1'*`z1')+ (`l4_2'*`z2')+(`l4_3'*`z3') + `a4'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p4'/`y' `if'
replace `w5'= (`d5' + `mutz'*`a5' + (`beta5' + `sbp5'/`atp' + (`l5_1'*`z1')+ (`l5_2'*`z2')+(`l5_3'*`z3') + `a5'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p5'/`y' `if'
replace `w6'= (`d6' + `mutz'*`a6' + (`beta6' + `sbp6'/`atp' + (`l6_1'*`z1')+ (`l6_2'*`z2')+(`l6_3'*`z3') + `a6'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p6'/`y' `if'
replace `w7'= (`d7' + `mutz'*`a7' + (`beta7' + `sbp7'/`atp' + (`l7_1'*`z1')+ (`l7_2'*`z2')+(`l7_3'*`z3') + `a7'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p7'/`y' `if'
replace `w8'= (`d8' + `mutz'*`a8' + (`beta8' + `sbp8'/`atp' + (`l8_1'*`z1')+ (`l8_2'*`z2')+(`l8_3'*`z3') + `a8'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p8'/`y' `if'
replace `w9'= (`d9' + `mutz'*`a9' + (`beta9' + `sbp9'/`atp' + (`l9_1'*`z1')+ (`l9_2'*`z2')+(`l9_3'*`z3') + `a9'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p9'/`y' `if'
replace `w9'= (`d9' + `mutz'*`a9' + (`beta9' + `sbp9'/`atp' + (`l9_1'*`z1')+ (`l9_2'*`z2')+(`l9_3'*`z3') + `a9'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p9'/`y' `if'
*replace `w10'= (`d10' + `mutz'*`a10' + (`beta10' + `sbp10'/`atp' + (`l10_1'*`z1')+ (`l10_2'*`z2')+(`l10_3'*`z3') + `a10'*(`gammatz' - 0.5*`ptbp'/(`atp'*`atp') + 0.5*`ztgz') )*`vm' )*`p10'/`y' `if'
}
end
nlsur sur @ w1 w2 w3 w4 w5 w6 w7 w8 w9 z1 z2 z3 p4 p5 p6 p7 p8 p9 p10 y,/*
*/ parameters (b4_4 b4_5 b4_6 b4_7 b4_8 b4_9 /*
*/ b5_5 b5_6 b5_7 b5_8 b5_9 b6_6 /*
*/ b6_7 b6_8 b6_9 b7_7 b7_8 b7_9 b8_8 b8_9 /*
*/ b9_9 d4 d5 d6 d7 d8 d9 /*
*/ beta4 beta5 beta6 beta7 beta8 beta9 /*
*/ g1_1 g1_2 g1_3 g2_2 g2_3 g3_3 /*
*/ mu1 mu2 mu3 gamma1 gamma2 gamma3 l4_1 l5_1 /*
*/ l6_1 l7_1 l8_1 l9_1 l4_2 l5_2 l6_2 l7_2 l8_2 l9_2 /*
*/ l4_3 l5_3 l6_3 l7_3 l8_3 l9_3 ) neq(9) ifgnls
Any help?
Thanks in advance