1. Likelihood Sebaran Normal

Fungsi

normal.lik2<-function(theta,y){
  mu<-theta[1]
  sigma2<-theta[2]
  n<-nrow(y)
  logl<- -0.5*n*log(2*pi) -n*log(sqrt(sigma2)) -
    (1/(2*sigma2))*sum((y-mu)**2)
  return(-logl)
}

Penerapan

theta<-c(0.5,1);theta
## [1] 0.5 1.0
y<-matrix(c(0.05,1,2,3,4));y
##      [,1]
## [1,] 0.05
## [2,] 1.00
## [3,] 2.00
## [4,] 3.00
## [5,] 4.00
normal.lik2(theta,y)
## [1] 15.19594

2. Pendugaan Model Regresi

Bangkitkan data

X<-cbind(1,runif(100));head(X)#matriks X
##      [,1]       [,2]
## [1,]    1 0.83005264
## [2,]    1 0.05850593
## [3,]    1 0.30078041
## [4,]    1 0.69407411
## [5,]    1 0.41167048
## [6,]    1 0.10532298
theta.true<-c(2,3,1);theta.true#B0,B1,sigma2
## [1] 2 3 1
y<-X%*%theta.true[1:2] + rnorm(100);head(y)#vektor y
##          [,1]
## [1,] 4.349805
## [2,] 2.206116
## [3,] 3.422500
## [4,] 4.089192
## [5,] 3.131843
## [6,] 2.544897

Likelihood-OLS

ols.lf<-function(theta,y,X){
  n<-nrow(X)
  k<-ncol(X)
  beta<-theta[1:k]
  sigma2<-theta[k+1]
  e<-y-X%*%beta
  logl<- -.5*n*log(2*pi)-.5*n*log(sigma2)-
    ((t(e)%*%e)/(2*sigma2))
  return(-logl)
}

Pendugaan dengan optim()

p<-optim(c(1,1,1),ols.lf,method="BFGS",hessian=T,y=y,X=X);p
## $par
## [1] 1.943245 3.169456 0.823392
## 
## $value
## [1] 132.1771
## 
## $counts
## function gradient 
##       34       14 
## 
## $convergence
## [1] 0
## 
## $message
## NULL
## 
## $hessian
##               [,1]         [,2]          [,3]
## [1,] 121.448838762 6.355896e+01 -8.326850e-04
## [2,]  63.558960925 4.308710e+01  9.576695e-05
## [3,]  -0.000832685 9.576695e-05  7.374800e+01