I'd like to model a set of processes. The processes in question are related to human-decision making, so the model will need a measure of input, processing, and then, finally, output. Ideally, the model would be implemented in something like R (which I know quite well) or Python (which I know less well).


  • Where is the best place to start with something like this?
  • What tools are available?
  • What software or language is suited to writing the model in?
  • What method would be suited to testing that model against data I've collected from real humans?
  • 3
    $\begingroup$ Focusing this question on a specific application will help generate helpful answers. In its current state it's almost too vague for a response and is likely to be closed. $\endgroup$
    – whuber
    Apr 22, 2011 at 19:27
  • $\begingroup$ Ah, fair enough. I did wonder if it was too broad, but wasn't sure! So let's start at what the end of the process will be. Say that I have a set of data produced by a computational model, and I want to compare the output to actual data collected from real people. What's the best way to do that, in terms of statistical methods and techniques? $\endgroup$
    – vize
    Apr 22, 2011 at 22:52
  • $\begingroup$ You're getting there. Why don't you edit the question to reflect this refinement and see what responses you get? $\endgroup$
    – whuber
    Apr 22, 2011 at 23:51
  • $\begingroup$ @whuber I think @Jeromy Anglim has done a better job than I ever could! Thanks to you both for the help in getting my question across properly :) $\endgroup$
    – vize
    Apr 23, 2011 at 11:12

2 Answers 2


For models of speeded decision tasks, check out the diffusion model and the linear ballistic accumulator; Donkin et al (2011, pdf) provide a good overview of these models and their different behaviours. There is R code out there for both these models. You might also do a literature search using the keyword "Decision Field Theory", which seems to be a specific instantiation of the principles of diffusion models for high-level decisions like consumer choices, etc (in contrast, the diffusion model proper and linear ballistic accumulator are more typically used for simpler perceptual discrimination tasks). Finally, possibly related are Neural Field models.

For models of semantics, check out BEAGLE. For a related model of memory encoding/retrieval, check out Mehort & Johns (2005, pdf)'s Iterative Resonance Model.

  • $\begingroup$ This is great, thanks Mike! I'll have a read and work out what I can from this stuff. I've heard of diffusion models before in various guises, but not really thought about trying to implement one. Do you know what is the standard? $\endgroup$
    – vize
    Apr 25, 2011 at 20:21
  • 1
    $\begingroup$ I'm not sure what you mean when you ask about a standard, but here is a link to an R implementation of the diffusion model (written by Andrew Heathcote of Newcastle University): gist.github.com/cf6a07d42f70f9c4a6b7 $\endgroup$ Apr 25, 2011 at 21:27
  • $\begingroup$ And here's code for LBA: gist.github.com/941314 $\endgroup$ Apr 25, 2011 at 21:49
  • $\begingroup$ Neat, I just came across this project implementing a hierarchical Bayesian approach to fitting both diffusion and LBA: code.google.com/p/hddm $\endgroup$ Apr 25, 2011 at 21:53
  • $\begingroup$ Whoa, that's awesome - thanks for the code and links! I think it's time to have some fun getting on with modelling my datasets! $\endgroup$
    – vize
    Apr 26, 2011 at 11:56

Have you thought about agent based modeling/social simulation? It's not that clear from your question what exactly you're trying to achieve but ABM may be suitable for your purposes as it does lend itself to modelling human decision making as you can programme agents with different characteristics. It's also very good for spatial problems.

You could either use the data you have already gained on the population under study and use that to programme your agents and then you can forecast into the future and compare to what happens in the real life population. This can be repeatedly tested with different environmental factors say with an economic model on the decision to invest with the environmental effect of different tax rates. Alternatively you could set up a model and compare it to your real life data.

While chapter 26 of The R Book is on Simulation Models you may be better off with Netlogo than with R which is also free and especially designed for agent based modelling.


The Journal of Artificial Societies and Social Simulation is a great open source journal covering this area.


  • $\begingroup$ Wow, great! This is the kind of thing I was looking for. It's time to start reading and learning then - thanks! :) $\endgroup$
    – vize
    Apr 23, 2011 at 16:49
  • 1
    $\begingroup$ Just to play devil's advocate here -- ABMs have a tendency to suffer from a garbage-in-garbage-out problem. ABMs are based on assumptions about how agents make decisions. Through simulation, the modeler can then explore system-level emergent properties of interacting agents. The problem is that the key assumptions about decision-making are rarely tested. And if those assumptions are wrong, then the model conclusions will likely be wrong as well. Bottom line: ABMs let you explore the implications of a given model of decision-making, but they aren't as good at testing the model itself. $\endgroup$
    – Abe
    Apr 23, 2011 at 21:57
  • 1
    $\begingroup$ I agree with the first half of that but I would point out for the second half you can run a simulation as many times as you like, changing assumptions until you find something that reasonably approximates reality. How difficult that is can depend on the complexity of what you're trying to model. $\endgroup$
    – Parbury
    Apr 24, 2011 at 0:04
  • $\begingroup$ Thanks to you both - clearly I'm going to have to be very careful about how I approach the modelling process. As I understand, it's best to make as few assumptions as possible to avoid getting swamped in too many possibilities. $\endgroup$
    – vize
    Apr 25, 2011 at 20:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.