一元函数的似然估计

原创
2017/03/17 10:51
阅读数 50
#估计的是一元函y=ax+b a,b为参数 y-ax-b~N(0,sigma^2)
#定义log-likelihood函数
 LL<-function(params,data)
 {#参数"params"是一个向量,依次包含了两个个参数:a,b.
#参数"data",是观测数据
 data=cars$dist-params[1]*cars$speed-params[2]## 是y-ax-b
 f<-dnorm(data,0,sum(data^2)/48)  
 #dnorm是求密度函数值 data是y值的向量,0是均值,sum..是方差=SSE/(n-2),SSE=(y-ax-b)^2
 ll<-sum(log(f))
 #log-likelihood函数
 return(-ll)
 #nlminb()函数是最小化一个函数的值,但我们是要最大化log-
 #likeilhood函数,所以需要在“ll”前加个“-”号。
 }
cars.res<-nlminb(c(1,1),LL,data=cars,
lower=c(-Inf,-Inf),upper=c(Inf,Inf))
cars.res$par

#下面程序是用最小二乘得到的回归结果,可以对比一下
lm(cars$dist~cars$speed)

 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部