Hi
I have the following problem; my code generates only one value and the rest 999 is just a dot. My code is
program drop _all
set seed 12345
gen x1 =.
gen ind =.
gen pd2mc = .
gen ead2mc = .
gen fm2mc=.
gen sumead2mc = .
program define monte
replace x1 = runiform()
replace ind = 1 if pr1 > x1
replace disincome = 102.04*4.348 if ind ==1
replace fm2mc = disincome +dl20001 + hb23001 + hi01001+ hi02101 +h50
replace pd2mc = 0 if (fm2mc)>=0
replace pd2mc = 0 if (abs(fm2mc)*33) <= (dl30001)
replace pd2mc = (1 - (dl30001)/(abs(fm2mc)*33)) if ((fm2mc)<0) & (abs(fm2mc)*33) > (dl30001)
replace ead2mc = (pd2mc * dl1000)
replace sumead2mc = sum(ead2mc)
summarize sumead2mc
scalar m1 = r(sum)
generate ratio1 = r(sum)/sumdl1000
end
simulate mean=r(mean) ratio1 = ratio1 , reps(1000) nodots: monte
summarize
Thanks
Ilias
I have the following problem; my code generates only one value and the rest 999 is just a dot. My code is
program drop _all
set seed 12345
gen x1 =.
gen ind =.
gen pd2mc = .
gen ead2mc = .
gen fm2mc=.
gen sumead2mc = .
program define monte
replace x1 = runiform()
replace ind = 1 if pr1 > x1
replace disincome = 102.04*4.348 if ind ==1
replace fm2mc = disincome +dl20001 + hb23001 + hi01001+ hi02101 +h50
replace pd2mc = 0 if (fm2mc)>=0
replace pd2mc = 0 if (abs(fm2mc)*33) <= (dl30001)
replace pd2mc = (1 - (dl30001)/(abs(fm2mc)*33)) if ((fm2mc)<0) & (abs(fm2mc)*33) > (dl30001)
replace ead2mc = (pd2mc * dl1000)
replace sumead2mc = sum(ead2mc)
summarize sumead2mc
scalar m1 = r(sum)
generate ratio1 = r(sum)/sumdl1000
end
simulate mean=r(mean) ratio1 = ratio1 , reps(1000) nodots: monte
summarize
Thanks
Ilias
Comment