1. 程式人生 > >使用R語言做極大似然估計

使用R語言做極大似然估計

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)