使用R語言做極大似然估計
阿新 • • 發佈:2019-02-20
Roadmap
因為常用語言為python,所以在要做最大似然估計的時候第一直覺先去找python的介面,很遺憾沒找到。就花了一天時間“速成“了R語言,寫了一些基本函式。向做統計的同學問到了R語言的Maxlik庫,直接呼叫其介面。
實現步驟
1st、 先確定要估計的引數,並對其命名
2nd、將似然函式表示成關於待估計引數的表示式
3rd、給待估計引數賦初值
4th、直接呼叫maxlik介面
library("maxLik")
y = read.csv("data.csv", header = F)
logLikFun<-function(param) {
#設定待估計引數
Lambda<-array(param[1:39], c(13,3))
Phi<-array(param[40:48], c(3,3))
H<-array(param[49:217], c(13,13))
Q<-array(param[218:226], c(3,3))
mu<-array(param[227:239], c(13,1))
LnL<-LnL-n/2*log(2*pi)-log(det(Vt))/2-t(vt)%*%solve(Vt)%*%vt/2
return(LnL)
}
#初始化引數
Lambda<-array (1:39, c(13,3))
Phi<-array(1:9, c(3,3))
H<-array(1:169, c(13,13))
Q<-array(1:9, c(3,3))
mu<-array(1:13, c(13,1))
MLE<-maxLik(logLik=logLikFun,start=c(Lambda,Phi,H,Q,mu))
summary(MLE)