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>