diff options
author | Johannes Ranke <jranke@uni-bremen.de> | 2014-04-25 18:43:51 +0200 |
---|---|---|
committer | Johannes Ranke <jranke@uni-bremen.de> | 2014-04-25 18:43:51 +0200 |
commit | 59e2c3b5ce470ace53b93ad5e6e7d9acbfe86f21 (patch) | |
tree | 5490c341f3883dec43553d338c89f4c9818aba3d /R/mkinfit.R | |
parent | a2f772990127891f9596b79771832bc23777a89a (diff) |
McCall 2,4,5-T dataset, lower bound for transform_rates=FALSE
Diffstat (limited to 'R/mkinfit.R')
-rw-r--r-- | R/mkinfit.R | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/R/mkinfit.R b/R/mkinfit.R index a623146e..16b4ff3c 100644 --- a/R/mkinfit.R +++ b/R/mkinfit.R @@ -208,8 +208,17 @@ mkinfit <- function(mkinmod, observed, return(mC)
}
+ lower <- rep(-Inf, length(c(state.ini.optim, parms.optim)))
+ names(lower) <- c(names(state.ini.optim), names(parms.optim))
+ if (!transform_rates) {
+ index_k <- grep("^k_", names(lower))
+ lower[index_k] <- 0
+ other_rate_parms <- intersect(c("alpha", "beta", "k1", "k2"), names(lower))
+ lower[other_rate_parms] <- 0
+ }
+
fit <- modFit(cost, c(state.ini.optim, parms.optim),
- method = method.modFit, control = control.modFit, ...)
+ method = method.modFit, control = control.modFit, lower = lower, ...)
# Reiterate the fit until convergence of the variance components (IRLS)
# if requested by the user
@@ -234,7 +243,7 @@ mkinfit <- function(mkinmod, observed, sigma.old <- sqrt(fit$var_ms_unweighted)
observed[err] <- sqrt(fit$var_ms_unweighted)[as.character(observed$name)]
fit <- modFit(cost, fit$par, method = method.modFit,
- control = control.modFit, ...)
+ control = control.modFit, lower = lower, ...)
reweight.diff = sum((sqrt(fit$var_ms_unweighted) - sigma.old)^2)
if (!quiet) {
cat("Iteration", n.iter, "yields variance estimates:\n")
|