Hi Paul,
Thankyou for your reply, you raise some interesting points. Siena does indeed look like a powerful package for social network modelling and simulation, although probably not what we need as our project has no network component. Using R + C for a model prototype is actually a good idea, although I'm not sure if this could be so easily turned into a standalone application with a simple GUI for end users, and in large simulations of several 100,000 we have found R to be a lot slower than general purpose languages such as Java.
Regards,
Oliver
-----Original Message-----
From: Paul Johnson [mailto:[log in to unmask]]
Sent: Saturday, 27 June 2009 8:11 a.m.
To: Oliver Mannion; [log in to unmask]
Subject: Re: [SIMSOC] Microsimulation Software Selection
Oliver Mannion wrote:
> Hi there,
>
> We would be grateful for any responses to the following questions:
>
> 1) Has anyone used Ascape for microsimulation? Is it widely used? Was it a
> good fit for your project?
> 2) What tool kits, if any, have you used for microsimulation? Or have you
> written your microsimulation without the use of a 3rd party tool kit/package?
> 3) If you have used Repast for microsimulation, what has been your
> experience with it?
>
> Thanks and regards,
>
> Oliver Mannion
>
>
Interesting question.
You should consider choosing a language and framework for longevity.
I've used Swarm, a pre-Ascape simulation library in Objective C.
Objective C has been revitalized somewhat by Apple in the last 5 years
or so, but it is not growing so much as other languages. Swarm can be
accessed from models in Java as well, but if you want Java you should
look at Ascape, RePast, and Mason. Mason is newer, presumably it
learns from the experience of others, but perhaps it is not as widely used.
I'm not sure any of these will integrate well with actual longitudinal
data, but I've recently learned about a program called Siena, which is
for social network modeling and simulation. It is able to simulate the
behavior of lots of interacting agents and it forces "real data" into
the simulation. It has some pretty complicated possibiltiies for
"embedding" parameters into the behavior of the agents and then
estimating the parameters from data. It is designed for a very specific
kind of modeling--a closed set of agents all of whom know each other.
You don't need network modeling, perhaps, but you might study how they
introduce the covariates and conduct estimation, then follow that
approach. Siena 3 has been widely used, and a new version of Siena for
R is almost ready now, and that opens up tons of possibility for you.
http://stat.gamma.rug.nl/siena.html
As you observe, using a commercial package will limit your options and
tie you down badly.
If you have a mathematical model you want to test with your
microsimulation data, I'd consider using R as the organizing framework
and then write the model components in C++ or C. You have to specify an
individual behavior model at the core of your project, and you have not
told us what kind of model that might be. The extent of the
interactions among agents and the way you 'schedule' them will be a big
factor. Also, you need to tell us a bit about what kinds of estimates
you want in the end. If you have some complicated model that needs some
parameter estimates that are based on a non-standard approach, you
should lean toward something written in R because that's become the
lingua franca of statistics.
If you have to hire a programmer, you might as well get something clever
out of it.
pj
--
Paul E. Johnson email: [log in to unmask]
Professor, Political Science http://pj.freefaculty.org
1541 Lilac Lane, Rm 504
University of Kansas Office: (785) 864-9086
Lawrence, Kansas 66044-3177 FAX: (785) 864-5700
|