ch12.4.do open
file:script:do
| # | content |
|---|---|
| 1 [+] | * ITSP 12.4 - |
| 3 [+] | !cp mynormal_lf.101.ado mynormal_lf.ado |
| 4 [+] | program drop _all |
| 5 [+] | which mynormal_lf |
| 7 [+] | type mynormal_lf.ado |
| 9 [+] | /* capt program drop mynormal_lf program mynormal_lf version 10.1 args lnf mu lnsigma quietly replace `lnf' = ln(normalden($ML_y1, `mu', exp(`lnsigma'))) end */ |
| 18 [+] | /* capt program drop mynormal Replay Estimate program mynormal version 10.1 if replay() { if ("`e(cmd)'" != "mynormal") error 301 Replay `0' } else Estimate `0' end program Replay syntax [, Level(cilevel) ] ml display, level(`level') end */ |
| 36 [+] | !cp mynormal.101.ado mynormal.ado |
| 37 [+] | program drop _all |
| 38 [+] | which mynormal |
| 40 [+] | type mynormal.ado |
| 42 [+] | /* program Estimate, eclass sortpreserve syntax varlist [if] [in] [, vce(passthru) Level(cilevel) * ] mlopts mlopts, `options' gettoken lhs rhs: varlist marksample touse local diparm diparm(lnsigma, exp label("sigma")) ml model lf mynormal_lf (mu: `lhs' = `rhs') /lnsigma /// if `touse', `vce' `mlopts' maximize `diparm' ereturn local cmd "mynormal" ereturn scalar k_aux = 1 Replay, level(`level') end */ |
| 57 [+] | sysuse auto , |
| 58 [+] | mynormal price mpg weight turn |
| 60 [+] | capt program drop mynormal_lf_d0 |
| 61 [+] | type mynormal_lf_d0.ado |
| 63 [+] | /* program mynormal_lf_d0 version 10.1 args todo b lnf tempvar mu tempname lnsigma mleval `mu' = `b', eq(1) mleval `lnsigma' = `b', eq(2) scalar quietly { mlsum `lnf' = ln(normalden($ML_y1,`mu', exp(`lnsigma'))) } end */ |
| 78 [+] | ml model d0 mynormal_lf_d0 (mu: price = mpg weight turn) /lnsigma , /// maximize nolog diparm(lnsigma, exp label("sigma")) |
| 80 [+] | ml display |
| 82 [+] | // !cp mynormal_lf_d0_c1.100.ado mynormal_lf_d0_c1.ado // program drop _all // which mynormal_lf_d0_c1 |
| 86 [+] | type mynormal_lf_d0_c1.ado |
| 104 [+] | /* program drop mynormal_lf_d0_c1 program mynormal_lf_d0_c1 version 10.1 args todo b lnf tempvar xb mu tempname a lnsigma mleval `a' = `b', eq(1) scalar mleval `xb' = `b', eq(2) mleval `lnsigma' = `b', eq(3) scalar quietly { generate double `mu' = `xb' - exp(`a')* $x1 mlsum `lnf' = ln(normalden($ML_y1,`mu', exp(`lnsigma'))) } end */ |
| 121 [+] | global x1 mpg |
| 122 [+] | qui regress price mpg weight turn |
| 123 [+] | matrix b0 = e(b) , |
| 124 [+] | matrix b0[1,1] = ln(-1*b0[1,1]) |
| 125 [+] | ml model d0 mynormal_lf_d0_c1 (a:) (mu: price = weight turn) /lnsigma , /// maximize nolog diparm(lnsigma, exp label("sigma")) |
| 127 [+] | ml display |
| 129 [+] | nlcom -exp([a]_cons) |
* ITSP 12.4 -
!cp mynormal_lf.101.ado mynormal_lf.ado
program drop _all
which mynormal_lf
type mynormal_lf.ado
/*
capt program drop mynormal_lf
program mynormal_lf
version 10.1
args lnf mu lnsigma
quietly replace `lnf' = ln(normalden($ML_y1, `mu', exp(`lnsigma')))
end
*/
/*
capt program drop mynormal Replay Estimate
program mynormal
version 10.1
if replay() {
if ("`e(cmd)'" != "mynormal") error 301
Replay `0'
}
else Estimate `0'
end
program Replay
syntax [, Level(cilevel) ]
ml display, level(`level')
end
*/
!cp mynormal.101.ado mynormal.ado
program drop _all
which mynormal
type mynormal.ado
/*
program Estimate, eclass sortpreserve
syntax varlist [if] [in] [, vce(passthru) Level(cilevel) * ]
mlopts mlopts, `options'
gettoken lhs rhs: varlist
marksample touse
local diparm diparm(lnsigma, exp label("sigma"))
ml model lf mynormal_lf (mu: `lhs' = `rhs') /lnsigma ///
if `touse', `vce' `mlopts' maximize `diparm'
ereturn local cmd "mynormal"
ereturn scalar k_aux = 1
Replay, level(`level')
end
*/
sysuse auto, clear
mynormal price mpg weight turn
capt program drop mynormal_lf_d0
type mynormal_lf_d0.ado
/*
program mynormal_lf_d0
version 10.1
args todo b lnf
tempvar mu
tempname lnsigma
mleval `mu' = `b', eq(1)
mleval `lnsigma' = `b', eq(2) scalar
quietly {
mlsum `lnf' = ln(normalden($ML_y1,`mu', exp(`lnsigma')))
}
end
*/
ml model d0 mynormal_lf_d0 (mu: price = mpg weight turn) /lnsigma, ///
maximize nolog diparm(lnsigma, exp label("sigma"))
ml display
// !cp mynormal_lf_d0_c1.100.ado mynormal_lf_d0_c1.ado
// program drop _all
// which mynormal_lf_d0_c1
type mynormal_lf_d0_c1.ado
/*
capt program drop mynormal_lf_d0_c1
program mynormal_lf_d0_c1
version 10.1
args todo b lnf
tempvar xb mu
tempname a lnsigma
mleval `a' = `b', eq(1) scalar
mleval `xb' = `b', eq(2)
mleval `lnsigma' = `b', eq(3) scalar
quietly {
generate double `mu' = `xb' + `a'* $x1
mlsum `lnf' = ln(normalden($ML_y1,`mu', exp(`lnsigma')))
}
end
*/
/*
program drop mynormal_lf_d0_c1
program mynormal_lf_d0_c1
version 10.1
args todo b lnf
tempvar xb mu
tempname a lnsigma
mleval `a' = `b', eq(1) scalar
mleval `xb' = `b', eq(2)
mleval `lnsigma' = `b', eq(3) scalar
quietly {
generate double `mu' = `xb' - exp(`a')* $x1
mlsum `lnf' = ln(normalden($ML_y1,`mu', exp(`lnsigma')))
}
end
*/
global x1 mpg
qui regress price mpg weight turn
matrix b0 = e(b), ln(e(rmse))
matrix b0[1,1] = ln(-1*b0[1,1])
ml model d0 mynormal_lf_d0_c1 (a:) (mu: price = weight turn) /lnsigma, ///
maximize nolog diparm(lnsigma, exp label("sigma"))
ml display
nlcom -exp([a]_cons)