【发布时间】:2010-12-21 20:59:41
【问题描述】:
我正在尝试编写一个函数,该函数使用牛顿法(coefficients+(inverse hessian)*gradient) 来迭代地找到对数线性模型的系数。
我正在使用以下代码:
##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)
当我运行代码时,我收到以下错误:
Error in t(x) %*% hi %*% x : non-conformable arguments
RMate stopped at line 29
鉴于公式是从比尔格林的问题集中得出的,我不认为这是一个公式问题。我认为我在传递函数时做错了。
我该如何解决这个问题?
对此功能的任何帮助将不胜感激。
【问题讨论】:
-
你应该在标签中注明语言。
-
感谢您的评论。 exp 是 r 和 yi 中指数的基线函数,xi 是数据数据矩阵中标题为 dat 的列
-
您的操作维度有误。你能用
dim打印出x和hi的尺寸吗?
标签: r newtons-method