R 牛顿的问题';求系数的s法和Hessian法
我正在尝试编写一个函数,它使用牛顿的方法R 牛顿的问题';求系数的s法和Hessian法,r,newtons-method,R,Newtons Method,我正在尝试编写一个函数,它使用牛顿的方法(系数+(逆黑森)*梯度)迭代地找到对数线性模型的系数 我正在使用以下代码: ##reading in the data dat<-read.csv('hw8.csv') summary(dat) # data file containing yi and xi attach(dat) ##Creating column of x's x<-cbind(1,xi) mle<-fu
(系数+(逆黑森)*梯度)
迭代地找到对数线性模型的系数
我正在使用以下代码:
##reading in the data
dat<-read.csv('hw8.csv')
summary(dat)
# data file containing yi and xi
attach(dat)
##Creating column of x's
x<-cbind(1,xi)
mle<-function(c){
gi<- 1-yi*exp(c[1]+c[2]*xi)
hi<- gi-1
H<- -1*(t(x)%*%hi%*%x)
g<-t(x)%*%gi
c<-c+solve(H)%*%g
return(c)
}
optim(c(0,1),mle,hessian=TRUE)
考虑到这个公式是从比尔·格林的问题集中得出的,我认为这不是一个公式问题。我认为我在传递我的函数时做错了什么
我如何解决这个问题?非常感谢您对该功能的任何帮助。正如Jonathan在评论中所说,您需要适当的尺寸:
R> X <- matrix(1:4, ncol=2)
R> t(X) %*% X
[,1] [,2]
[1,] 5 11
[2,] 11 25
R>
R>xt(X)%*%X
[,1] [,2]
[1,] 5 11
[2,] 11 25
R>
但是您也应该使用适当的工具,因此可以查看
stats
包中的loglin
函数和/或MASS
包中的loglm
函数。默认情况下,这两者都将随R安装一起安装 您应该在标签中注明语言。谢谢您的评论。EXP是R中的指数函数,而YI和席是数据数据矩阵中的一个列,标题为DATA。您能用dim
打印出x
和hi
的尺寸吗?
R> X <- matrix(1:4, ncol=2)
R> t(X) %*% X
[,1] [,2]
[1,] 5 11
[2,] 11 25
R>