Hi, My name is Laura. I'm a PhD student at Queen's University Belfast and have just started learning R. I was wondering if somebody could help me to see where I am going wrong in my code for estimating the parameters [mu1, mu2, lambda1] of a 2-phase Coxian Distribution. cox2.lik<-function(theta, y){ mu1<-theta[1] mu2<-theta[2] lambda1<-theta[3] p<-Matrix(c(1, 0), nrow=1, ncol=2) Q<-Matrix(c(-(lambda1 + mu1), 0, lambda1, -mu2), nrow=2, ncol=2) q<-Matrix(c(mu1, mu2), nrow=2, ncol=1) for (i in 1:length(y)){ loglik<-log(p %*% expm(Q * y(i)) %*% q) return(loglik)} sumloglik<-sum(loglik) return(-sumloglik) } I have installed the Matrix package. y is a vector of 240 survival times. In the R console I typed> source("/private/var/automount/users/lhill07/Desktop/cox2.lik.R")> optim(c(0.5, 0.5, 0.5), cox2.lik, y=y, method="BFGS")Error: could not find function "y" Error in expm(Q * y(i)) : error in evaluating the argument 'x' in selecting a method for function 'expm' Error in log(p %*% expm(Q * y(i)) %*% q) : error in evaluating the argument 'x' in selecting a method for function 'log' I'm sorry if I have missed something really obvious and I would appreciate any help that is offered. Hopefully I have given enough information. Many thanks in advance, Laura
Hi, My name is Laura. I'm a PhD student at Queen's University Belfast and have just started learning R. I was wondering if somebody could help me to see where I am going wrong in my code for estimating the parameters [mu1, mu2, lambda1] of a 2-phase Coxian Distribution. cox2.lik<-function(theta, y){ mu1<-theta[1] mu2<-theta[2] lambda1<-theta[3] p<-Matrix(c(1, 0), nrow=1, ncol=2) Q<-Matrix(c(-(lambda1 + mu1), 0, lambda1, -mu2), nrow=2, ncol=2) q<-Matrix(c(mu1, mu2), nrow=2, ncol=1) for (i in 1:length(y)){ loglik<-log(p %*% expm(Q * y(i)) %*% q) return(loglik)} sumloglik<-sum(loglik) return(-sumloglik) } I have installed the Matrix package. y is a vector of 240 survival times. In the R console I typed> source("/private/var/automount/users/lhill07/Desktop/cox2.lik.R")> optim(c(0.5, 0.5, 0.5), cox2.lik, y=y, method="BFGS")Error: could not find function "y" Error in expm(Q * y(i)) : error in evaluating the argument 'x' in selecting a method for function 'expm' Error in log(p %*% expm(Q * y(i)) %*% q) : error in evaluating the argument 'x' in selecting a method for function 'log' I'm sorry if I have missed something really obvious and I would appreciate any help that is offered. Hopefully I have given enough information. Many thanks in advance, Laura
Hi There, Perhaps the problem is the line loglik<-log(p %*% expm(Q * y(i)) %*% q) You mention that y is a vector but here you're treating it as a function. Maybe try loglik<-log(p %*% expm(Q * y[i]) %*% q) ? Don't have a clue about the correctness of the contents of cox2.lik... Andy On 6 Mar 2007, at 08:54, Laura Hill wrote:> Hi, > > My name is Laura. I'm a PhD student at Queen's University Belfast > and have > just started learning R. I was wondering if somebody could help me > to see > where I am going wrong in my code for estimating the parameters > [mu1, mu2, > lambda1] of a 2-phase Coxian Distribution. > > cox2.lik<-function(theta, y){ > mu1<-theta[1] > > mu2<-theta[2] > > lambda1<-theta[3] > > p<-Matrix(c(1, 0), nrow=1, ncol=2) > > Q<-Matrix(c(-(lambda1 + mu1), 0, lambda1, -mu2), nrow=2, ncol=2) > > q<-Matrix(c(mu1, mu2), nrow=2, ncol=1) > > for (i in 1:length(y)){ > loglik<-log(p %*% expm(Q * y(i)) %*% q) > return(loglik)} > > sumloglik<-sum(loglik) > > return(-sumloglik) > } > > I have installed the Matrix package. y is a vector of 240 survival > times. In > the R console I typed > >> source("/private/var/automount/users/lhill07/Desktop/cox2.lik.R") > >> optim(c(0.5, 0.5, 0.5), cox2.lik, y=y, method="BFGS") > > Error: could not find function "y" > > Error in expm(Q * y(i)) : error in evaluating the argument 'x' in > selecting > a method for function 'expm' > > Error in log(p %*% expm(Q * y(i)) %*% q) : > error in evaluating the argument 'x' in selecting a method for > function > 'log' > > > I'm sorry if I have missed something really obvious and I would > appreciate > any help that is offered. Hopefully I have given enough information. > > Many thanks in advance, > > Laura > > ______________________________________________ > 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 > and provide commented, minimal, self-contained, reproducible code.-- Andy Fugard, Postgraduate Research Student Psychology (Room F15), The University of Edinburgh, 7 George Square, Edinburgh EH8 9JZ, UK Mobile: +44 (0)78 123 87190 http://www.possibly.me.uk