# ActionModels

## Welcome to the ActionModels.jl package!

ActionModels.jl is a powerfull and novel package for computational modelling of behavior and cognition. The package is developed with a intention to make computaitonal modelling intuitive, fast and easily adaptive to your experimental and simulation needs.

With ActionModels.jl you can define a fully customizable behavioral model and easily fit them to experimental data and used for computational modelling.

we provide a consice introduction to this framework for computational modelling of behvior and cognition and its accompanying terminology.

After this introduction, you will be presented with a detailed step-by-step guide on how to use ActionModels.jl to make your computational model runway-ready.

## Getting started

Defning a premade agent

```
using ActionModels
```

Find premade agent, and define agent with default parameters

```
premade_agent("help")
agent = premade_agent("premade_binary_rescorla_wagner_softmax")
```

Set inputs and give inputs to agent

```
inputs = [1,0,0,0,1,1,1,1,0,1,0,1,0,1,1]
actions = give_inputs!(agent,inputs)
using StatsPlots
plot_trajectory(agent, "action_probability")
```

Fit learning rate. Start by setting prior

```
using Distributions
priors = Dict("learning_rate" => Normal(0.5, 0.5))
```

Run model

```
chains = fit_model(agent, priors, inputs, actions, n_chains = 1, n_iterations = 10)
```

Plot prior and posterior

```
plot_parameter_distribution(chains,priors)
```

Get posteriors from chains

```
get_posteriors(chains)
```