我在用R做一个MLE, 写的code是> test<-function(theta,da){
+ c1<-theta[1]
+ c2<-theta[2]
+ c3<-theta[3]
+ k<-nrow(da)
+ logl<- -.5*k*log(2*pi)-0.5*sum((c1*da[,1]+c2*da[,2]+c3*da[,3])**2)
+ return(-logl)
+ }
> optim(theta <- c(0,1,2), test,da, hessian=TRUE)
但是显示的错误是
错误于nrow(da) : 缺少参数"da",也没有缺省值
注:da是一个矩阵,类似于
| 1 | 0 | -1 |
| 0 | 1 | -1 |
| 1 | 0 | 1 |
| 1 | -1 | 0 |
| 1 | -1 | 0 |
| -1 | 1 | 0 |
| 1 | -1 | 0 |
| 1 | -1 | 0 |
| 1 | 0 | -1 |
| 1 | 0 | -1 |
| 1 | 0 | -1 |
| 1 | 0 | 1 |
| 0 | 1 | -1 |
| 0 | 1 | -1 |
| 0 | -1 | 1 |
| 0 | -1 | 1 |
| 0 | -1 | 1 |
| 0 | 1 | -1 |
求大神指点,究竟是哪里写错了?
如果要估计的参数从3个扩展到300个,有没有更好的写法,求给一个loop!
谢各位大神!