[Pomp-commits] r1189 - pkg/pomp pkg/pomp/R pkg/pomp/src pkg/pomp/tests www/vignettes

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Fri Jun 5 20:33:13 CEST 2015


Author: kingaa
Date: 2015-06-05 20:33:12 +0200 (Fri, 05 Jun 2015)
New Revision: 1189

Added:
   pkg/pomp/src/mif2.c
Modified:
   pkg/pomp/DESCRIPTION
   pkg/pomp/NAMESPACE
   pkg/pomp/R/mif2.R
   pkg/pomp/tests/getting_started.Rout.save
   pkg/pomp/tests/ou2-mif2.Rout.save
   www/vignettes/mif2.html
Log:
- put some expensive mif2 computations into C for speed

Modified: pkg/pomp/DESCRIPTION
===================================================================
--- pkg/pomp/DESCRIPTION	2015-06-05 16:10:30 UTC (rev 1188)
+++ pkg/pomp/DESCRIPTION	2015-06-05 18:33:12 UTC (rev 1189)
@@ -1,7 +1,7 @@
 Package: pomp
 Type: Package
 Title: Statistical Inference for Partially Observed Markov Processes
-Version: 0.66-5
+Version: 0.66-6
 Date: 2015-06-05
 Authors at R: c(person(given=c("Aaron","A."),family="King",
 		role=c("aut","cre"),email="kingaa at umich.edu"),

Modified: pkg/pomp/NAMESPACE
===================================================================
--- pkg/pomp/NAMESPACE	2015-06-05 16:10:30 UTC (rev 1188)
+++ pkg/pomp/NAMESPACE	2015-06-05 18:33:12 UTC (rev 1189)
@@ -11,6 +11,7 @@
           SSA_simulator,
           R_Euler_Multinom,D_Euler_Multinom,R_GammaWN,
           mif_update,
+          mif2_computations,
           pfilter_computations,
           simulation_computations,
           iterate_map,traj_transp_and_copy,

Modified: pkg/pomp/R/mif2.R
===================================================================
--- pkg/pomp/R/mif2.R	2015-06-05 16:10:30 UTC (rev 1188)
+++ pkg/pomp/R/mif2.R	2015-06-05 18:33:12 UTC (rev 1189)
@@ -71,8 +71,7 @@
 
     ## perturb parameters
     pmag <- cooling.fn(nt,mifiter)$alpha*rw.sd[,nt]
-    params[rwnames,] <- rnorm(n=length(rwnames)*ncol(params),
-                              mean=params[rwnames,],sd=pmag)
+    params <- .Call(mif2_computations,params,pmag)
 
     if (transform)
       tparams <- partrans(object,params,dir="fromEstimationScale",

Added: pkg/pomp/src/mif2.c
===================================================================
--- pkg/pomp/src/mif2.c	                        (rev 0)
+++ pkg/pomp/src/mif2.c	2015-06-05 18:33:12 UTC (rev 1189)
@@ -0,0 +1,41 @@
+// -*- C++ -*-
+
+#include "pomp_internal.h"
+#include <Rdefines.h>
+
+SEXP mif2_computations (SEXP params, SEXP rw_sd)
+{
+  int nprotect = 0;
+  double *xp = 0, *rw, *xrw, *xs;
+  SEXP Pnames, rwnames, pindex;
+  int *dim, *pidx;
+  int nrw = 0, npars, nreps;
+  int j, k;
+
+  // unpack parameter matrix
+  PROTECT(params = duplicate(params)); nprotect++;
+  xp = REAL(params);
+  dim = INTEGER(GET_DIM(params)); npars = dim[0]; nreps = dim[1];
+  PROTECT(Pnames = GET_ROWNAMES(GET_DIMNAMES(params))); nprotect++;
+
+  // names of parameters undergoing random walk
+  PROTECT(rwnames = GET_NAMES(rw_sd)); nprotect++; 
+  nrw = LENGTH(rwnames); rw = REAL(rw_sd);
+
+  // indices of parameters undergoing random walk
+  PROTECT(pindex = matchnames(Pnames,rwnames,"parameters")); nprotect++; 
+  pidx = INTEGER(pindex);
+
+  GetRNGstate();
+
+  for (j = 0, xrw = rw; j < nrw; j++, pidx++, xrw++) {
+    for (k = 0, xs = xp+(*pidx); k < nreps; k++, xs += npars) {
+      *xs += rnorm(0,*xrw); 
+    }
+  }
+
+  PutRNGstate();
+
+  UNPROTECT(nprotect);
+  return(params);
+}

Modified: pkg/pomp/tests/getting_started.Rout.save
===================================================================
--- pkg/pomp/tests/getting_started.Rout.save	2015-06-05 16:10:30 UTC (rev 1188)
+++ pkg/pomp/tests/getting_started.Rout.save	2015-06-05 18:33:12 UTC (rev 1189)
@@ -180,12 +180,12 @@
 > mf <- mif2(mf)
 > mle <- coef(mf); mle
           r           K         phi         N.0       sigma 
-  4.3268371 219.8355772   1.0220978 200.0000000   0.6898461 
+  4.2778799 513.3313256   0.4662866 200.0000000   0.6687420 
 > logmeanexp(replicate(5,logLik(pfilter(mf))),se=TRUE)
-                     se 
--144.743699    0.301315 
+                       se 
+-147.8597938    0.2437791 
 > sim2 <- simulate(mf,nsim=10,as.data.frame=TRUE,include.data=TRUE)
 > 
 > proc.time()
    user  system elapsed 
- 77.812   0.492  80.066 
+ 77.892   0.420  80.054 

Modified: pkg/pomp/tests/ou2-mif2.Rout.save
===================================================================
--- pkg/pomp/tests/ou2-mif2.Rout.save	2015-06-05 16:10:30 UTC (rev 1188)
+++ pkg/pomp/tests/ou2-mif2.Rout.save	2015-06-05 18:33:12 UTC (rev 1189)
@@ -156,14 +156,14 @@
 > rbind(mle1=c(coef(m1),loglik=logLik(pfilter(m1,Np=1000))),
 +       mle2=c(coef(m2),loglik=logLik(pfilter(m1,Np=1000))),
 +       truth=c(coef(ou2),loglik=logLik(pfilter(m1,Np=1000))))
-      alpha.1    alpha.2   alpha.3 alpha.4 sigma.1 sigma.2 sigma.3 tau
-mle1      0.8 -0.4489983 0.3184109     0.9       3    -0.5       2   1
-mle2      0.8 -0.5080060 0.2439865     0.9       3    -0.5       2   1
-truth     0.8 -0.5000000 0.3000000     0.9       3    -0.5       2   1
-           x1.0     x2.0    loglik
-mle1  -1.442418 1.585629 -481.6106
-mle2  -2.696841 3.157511 -482.3154
-truth -3.000000 4.000000 -481.9939
+      alpha.1    alpha.2  alpha.3 alpha.4 sigma.1 sigma.2 sigma.3 tau      x1.0
+mle1      0.8 -0.5340410 0.253315     0.9       3    -0.5       2   1 -2.205438
+mle2      0.8 -0.5023659 0.222089     0.9       3    -0.5       2   1 -2.127518
+truth     0.8 -0.5000000 0.300000     0.9       3    -0.5       2   1 -3.000000
+           x2.0    loglik
+mle1  0.8962661 -481.2306
+mle2  4.4259163 -482.6415
+truth 4.0000000 -481.0150
 > 
 > m3 <- mif2(ou2,Nmif=3,start=guess1,Np=200,
 +            cooling.fraction=0.2,
@@ -182,4 +182,4 @@
 > 
 > proc.time()
    user  system elapsed 
- 68.756   0.088  69.231 
+ 65.808   0.092  66.257 

Modified: www/vignettes/mif2.html
===================================================================
--- www/vignettes/mif2.html	2015-06-05 16:10:30 UTC (rev 1188)
+++ www/vignettes/mif2.html	2015-06-05 18:33:12 UTC (rev 1189)
@@ -67,7 +67,7 @@
 
 
 <p>Licensed under the <a href="http://creativecommons.org/licenses/by-nc/3.0">Creative Commons attribution-noncommercial license</a>. Please share and remix noncommercially, mentioning its origin.<br /><img src="data:image/png;base64,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" alt="CC-BY_NC" /></p>
-<p>This document was produced using <code>pomp</code> version 0.66.3.</p>
+<p>This document was produced using <code>pomp</code> version 0.66.6.</p>
 <p>Iterated filtering is a technique for maximizing the likelihood obtained by filtering. In <code>pomp</code>, it is the particle filter that is iterated. The iterated filtering of <span class="citation">Ionides et al. (2006)</span> is implemented in the <code>mif</code> function. <span class="citation">Ionides et al. (2015)</span> describe an improvement on the original <span class="citation">(Ionides et al. 2006)</span> algorithm. This “IF2” algorithm is implemented in the <code>mif2</code> function.</p>
 <p>The following constructs the Gompertz example that is provided with <code>pomp</code> (see <code>?gompertz</code>) and extracts the parameters at which the data were generated.</p>
 <pre class="r"><code>require(pomp)
@@ -125,10 +125,10 @@
   truth=c(signif(theta.true[estpars],3),loglik=round(loglik.true,2))
   ) -> results.table</code></pre>
 <p>Convergence plots can be used to help diagnose convergence of the iterated filtering algorithm. Something like the following can be obtained by executing <code>plot(mf)</code>.</p>
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/pomp -r 1189


More information about the pomp-commits mailing list