@@ -22,16 +22,11 @@ program rfrontier_p
2222 local df e(df)
2323 }
2424 if `neffopts' == 0{
25- if " $vdistribution" == " student" {
26- local su e(sigma_u)
27- local df exp(xb(#3))
28- }
2925 local sv exp(xb(#2))
26+ local su exp(xb(#3))
3027 if " $vdistribution" == " student" {
31- local su exp(xb(#4))
32- local df exp(xb(#3))
28+ local df exp(xb(#4))
3329 }
34- else local su exp(xb(#3))
3530 }
3631 local sigma sqrt((`sv')^ 2+ (`su')^ 2)
3732 local lambda (`su')/ (`sv')
@@ -141,10 +136,10 @@ program rfrontier_p
141136 if " `bs'" ! = " " {
142137 quietly {
143138 tempname numerator denominator numeratorvar denominatorvar indices
144- gen double `numerator' = 0
145- gen double `denominator' = 0
146- gen double `numeratorvar' = 0
147- gen double `denominatorvar' = 0
139+ // gen double `numerator' = 0
140+ // gen double `denominator' = 0
141+ // gen double `numeratorvar' = 0
142+ // gen double `denominatorvar' = 0
148143 mata hdraws(`N',`nsimulations',`base',`burn',1," `indices'" )
149144 qui ds
150145 forval i = 1/ `nsimulations'{
@@ -155,7 +150,7 @@ program rfrontier_p
155150 if " $udistribution" == " hnormal" local u_`q' `su'* invnormal(1/ 2* (1+ `f1_`q''))
156151 if " $udistribution" == " exponential" local u_`q' - `su'* ln(`f1_`q'')
157152 if " $udistribution" == " rayleigh" local u_`q' `su'* sqrt(- 2* ln(1- `f1_`q''))
158- local fu exp(- `u_`q'')
153+ local fu ( exp(- `u_`q'')) ^ 2
159154 if " $vdistribution" == " normal" predictnl double `numerator'`q' = 1/ $nsimulations* `fu'/ `sv'* normalden(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
160155 if " $vdistribution" == " normal" predictnl double `denominator'`q' = 1/ $nsimulations* 1/ `sv'* normalden(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
161156 if " $vdistribution" == " student" predictnl double `numerator'`q' = 1/ $nsimulations* `fu'/ `sv'* tden(`df',($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
@@ -168,19 +163,19 @@ program rfrontier_p
168163 egen double `numerator' = rowtotal(`numerator'* )
169164 egen double `denominator' = rowtotal(`denominator'* )
170165 forval q = 1/ `nsimulations' {
171- local `gu' ( exp(- `u_`q'')- `numerator' / `denominator') ^ 2
172- if " $vdistribution" == " normal" predictnl double `numeratorvar'`q' = `gu'/ `sv'* normalden(`df', ($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
173- if " $vdistribution" == " normal" predictnl double `denominatorvar'`q' = 1/ `sv'* normalden(`df', ($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
174- if " $vdistribution" == " student" predictnl double `numeratorvar'`q' = `gu'/ `sv'* tden(`df',($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
175- if " $vdistribution" == " student" predictnl double `denominatorvar'`q' = 1/ `sv'* tden(`df',($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
176- if " $vdistribution" == " cauchy" predictnl double `numeratorvar'`q' = `gu'/ `sv'* tden(1,($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
177- if " $vdistribution" == " cauchy" predictnl double `denominatorvar'`q' = 1/ `sv'* tden(1,($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
178- if " $vdistribution" == " logistic" predictnl double `numeratorvar'`q' = `gu'/ `sv'* (exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))/ (1+ exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))^ 2
179- if " $vdistribution" == " logistic" predictnl double `denominatorvar'`q' = 1/ `sv'* (exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))/ (1+ exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))^ 2
166+ local gu exp(- `u_`q'')
167+ if " $vdistribution" == " normal" predictnl double `numeratorvar'`q' = 1 / $nsimulations * `gu'/ `sv'* normalden(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
168+ if " $vdistribution" == " normal" predictnl double `denominatorvar'`q' = 1/ $nsimulations * 1 / `sv'* normalden(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
169+ if " $vdistribution" == " student" predictnl double `numeratorvar'`q' = 1 / $nsimulations * `gu'/ `sv'* tden(`df',($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
170+ if " $vdistribution" == " student" predictnl double `denominatorvar'`q' = 1 / $nsimulations * 1/ `sv'* tden(`df',($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
171+ if " $vdistribution" == " cauchy" predictnl double `numeratorvar'`q' = 1 / $nsimulations * `gu'/ `sv'* tden(1,($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
172+ if " $vdistribution" == " cauchy" predictnl double `denominatorvar'`q' = 1 / $nsimulations * 1/ `sv'* tden(1,($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv')
173+ if " $vdistribution" == " logistic" predictnl double `numeratorvar'`q' = 1 / $nsimulations * `gu'/ `sv'* (exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))/ (1+ exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))^ 2
174+ if " $vdistribution" == " logistic" predictnl double `denominatorvar'`q' = 1 / $nsimulations * 1/ `sv'* (exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))/ (1+ exp(($ML_y1- `xb_'+ `s'* `u_`q'')/ `sv'))^ 2
180175 }
181176 egen double `numeratorvar' = rowtotal(`numeratorvar'* )
182177 egen double `denominatorvar' = rowtotal(`denominatorvar'* )
183- gen `typlist' `varlist' = ` numeratorvar'/ `denominatorvar'
178+ gen `typlist' `varlist' = (`numerator' / `denominator') - (` numeratorvar'/ `denominatorvar') ^ 2
184179 }
185180 }
186181 if `ninfopts' > 0 {
0 commit comments