[R] how to use mle?

Peter Dalgaard p.dalgaard at biostat.ku.dk
Thu Feb 2 19:55:43 CET 2006


ronggui <ronggui.huang at gmail.com> writes:

> >Y
>       [,1] [,2] [,3]
>  [1,]    0    1    0
>  [2,]    0    1    0
>  [3,]    0    0    1
>  [4,]    1    0    0
>  [5,]    0    0    1
>  [6,]    0    0    1
>  [7,]    1    0    0
>  [8,]    1    0    0
>  [9,]    0    0    1
> [10,]    1    0    0
> 
> >X
>    pri82 pan82
> 1      0     0
> 2      0     0
> 3      1     0
> 4      1     0
> 5      0     1
> 6      0     0
> 7      1     0
> 8      1     0
> 9      0     0
> 10     0     0
> 
> >K=2
> >J=3
> 
> 
> LL <- function(b=rep(0,(J-1)*K)){
> B=matrix(c(b,rep(0,K)),ncol=J,nrow=K)
> fit <- X%*%B
> p<-exp(fit)/rowSums(exp(fit))
> sum(Y*log(p))
> }
> 
> grad<- function(b=rep(0,(J-1)*K)){
> B=matrix(c(b,rep(0,K)),ncol=J,nrow=K)
> fit <- X%*%B
> p<-exp(fit)/rowSums(exp(fit))
> Yp <- Y-p
> Yp<-matrix(rep(t(Yp),each=K),ncol=K*J,by=T)
> X <- matrix(rep(X,J) ,ncol=K*J)
> apply(Yp*X,2,sum)
> }
> 
> library(stats4)
> mle(LL)
> Error in validObject(.Object) : invalid class "mle" object: invalid
> object for slot "fullcoef" in class "mle": got class "list", should be
> or extend class "numeric"

It is a bit strange that it gets dicovered so late (when the mle
object is printed), but the issue is that the negative log likelihood
has to be a function of a number of *scalar* parameters.

Vector parameters are not allowed (yet? this is not the
first case where people have expected or desired that they were
allowed).

 
> mle(LL,gr=grad)
> Error in optim(start, f, method = method, hessian = TRUE, ...) :
>         gradient in optim evaluated to length 6 not 0
> 
> what is wrong with my code?I try to fix it myself but fails,anyone
> helps me ?Thank you!
> 
> --
> Deparment of Sociology
> Fudan University
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907




More information about the R-help mailing list