Regresja Liniowa-Funkcja Wiarygodno Ci Gradient O Hesjan Heteroskedastyczno
cap pr drop myreg5
program define myreg5
version 8 args todo b lnf g negH tempvar theta tempname lnsigma mleval `theta' = `b', eq(1) mleval `lnsigma' = `b', eq(2) mlsum `lnf' = -($ML_y1-`theta')^2/(2*exp(`lnsigma')^2)-`lnsigma' if (`todo' ==0 | `lnf' ==.) exit tempvar fb fs mlvecsum `lnf' `fb' = ($ML_y1-`theta')/exp(`lnsigma')^2, eq(1) mlvecsum `lnf' `fs' = ($ML_y1-`theta')^2/(exp(`lnsigma')^2)-1, eq(2) matrix `g' = (`fb',`fs') if (`todo'==1 | `lnf'==.) exit tempvar fbb fbs fss mlmatsum `lnf' `fbb' = -1/exp(`lnsigma')^2, eq(1) mlmatsum `lnf' `fbs' = -2*($ML_y1-`theta')/(exp(`lnsigma')^2), eq(1,2) mlmatsum `lnf' `fss' = -2*($ML_y1-`theta')^2/(exp(`lnsigma'^2)), eq(2) matrix `negH' = (`fbb',`fbs' \ `fbs'',`fss')
end
ml model d2 myreg5 (reg:y=x1 x2) (lnsigma: x1)
ml maximize, //grad hess