Skip to content

Commit 5e84c9b

Browse files
authored
Merge pull request #9 from AlexStead/rfrontier-v.1.1.2
Rfrontier v.1.1.2
2 parents 981e4e8 + 5249b27 commit 5e84c9b

File tree

2 files changed

+18
-23
lines changed

2 files changed

+18
-23
lines changed

src/r/rfrontier.sthlp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
{synoptline}
2727
{syntab:Model}
2828
{synopt:{opt nocons:tant}}suppress constant term{p_end}
29-
{synopt :{cmdab:v:distribution(}{opt s:tudent)}Student's t distribution for the noise term, the default{p_end}
29+
{synopt :{cmdab:v:distribution(}{opt s:tudent)}}Student's t distribution for the noise term, the default{p_end}
3030
{synopt :{cmdab:v:distribution(}{opt c:auchy)}}Cauchy distribution for the noise term{p_end}
3131
{synopt :{cmdab:v:distribution(}{opt l:ogistic)}}logistic distribution for the noise term{p_end}
3232
{synopt :{cmdab:u:distribution(}{opt h:normal)}}half normal distribution for the inefficiency term, the default{p_end}

src/r/rfrontier_p.ado

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)