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