Tomasz Berezowski
2011-Nov-22 13:58 UTC
[R] SE for parameters estimated by optim() - problem with constraints
Dear all, I have a problem with calculation of SE of parameters with a fisher matrix. the fisher matrix is calculated from the hessian matrix which is an output from optim(). However, can I calculate it this way if the optimisation criterion was to minimise RMSE? Maybe it works only with a log-likelihood optimisation? The more important problem is that I need to put constarints on my parameters, that: all parameters are between 0 and 1 and their sum 1. I use following transformation: nSpec = length(pars) pars = exp(pars) / (1 + sum(exp(pars[1:nSspec]))) pars[nSspec] = 1 - sum(pars[1:(nSspec-1)]) where, pars is a vector of parameters supplied by optim() In this case I am calculating SE for untransformed parameters which is obviously not what I need. What sould I do to calculate SE for transformed parameters? My full optimization function: opt = function(pars) { pars=exp(pars)/(1+sum(exp(pars[1:nSspec]))) pars[nSspec]=1-sum(pars[1:(nSspec-1)]) for(i in 1:nSspec) est = est + pars[i] * selSpec[,i] sum(abs(est-spec)) } where: nSspec is a number of parameters spec is the vector to which I want to fit the vector est selSpec is a constant matrix with nSspec columns and length(spec) rows I hope you can help me. Best regards, Tomasz