Chapter 3 The behavior change toolbox

Some behaviors are easy to change, some are hard to change. Behavior change interventions are generally only required for the behaviors that are hard to change. Therefore, usually, those processes are complicated. It is easy, common even, to be overwhelmed by the multitude of things that need to be carefully mapped out in order to optimize the probability of an intervention being effective.

Therefore, a number of tools have been developed to support this process. Because of the complexity of the task, many of these tools are conceptual tools, that help to keep track of all the information that needs to be collected and organised. Other tools are more operational, providing an interface to conceptual tools or to analyses. In this chapter, we will discuss a number of tools, specifically the following tools:

  • Core processes help leveraging theory and organising empirical evidence and expertise
  • DCTs and the repository at help with consistent definitions and use of (sub-)determinants;
  • COMPLECS specifications help with the needs assessment;
  • MAP specifications help listing all potentially relevant aspects and organising them into sub-determinants;
  • CIBER plots and Determinant Selection Tables help selecting determinants and sub-determinants
  • ABCDs help securing causal-structural chains

3.1 Core processes

3.2 The causal-structural chain

The causal-structural chain is a conceptual tool that expresses one potential partial avenue to behavior change. Recall that all human behavior is caused elsewhere in the brain (Chapter 1), and changes in a brain in response to stimuli in one’s environment are called learning (Chapter 2).

The causal-structural chain expresses the assumptions about which parts of the brain cause the behavior, and what can be done to influence those parts of the brain. In other words, it expresses the causal (what influences what) and structural (what consists of what) assumptions underlying a bit of an intervention. These assumptions are divided into three sections that together contain the seven links of the chain. These sections are behavior, psychology, and change.

The behavior section contains two links. The ultimate link is the target behavior of a given intervention. Target behaviors are generally formulated on a very general level, such as “exercise” or “condom use”. As such, they consist of sub-behaviors. These sub-behaviors can be, for example, for exercise, “registering at a gym” and “scheduling gym visits”, or for condom use, “buying condoms” and “negotiating condom use”. These are distinguished from the overarching target behavior because the relevant determinants of these sub-behaviors can be different: for example, the reasons why people do or do not buy condoms can be very different from the reasons why they do or do not carry condoms or why they do or do not negotiate condom use with a sexual partner. These two links form the ‘behavior’ section of the causal-structural chain, and because the sub-behaviors together form the target behavior, their relationship is structural.

As discussed in Chapter 1, all (sub-)behavior is necessarily caused by people’s psychology. The psychology section, therefore, captures the causes of behavior: psychology is causally linked to behavior. This section has two links as well: sub-determinants and determinants. These represent two more or less arbitrary levels of specificity that can be used to describe parts of the human psychology. Not entirely arbitrary, though. Sub-determinants are defined as aspects of the human psychology that are sufficiently specific to clearly verbalize or visualize them. They capture specific representations of the world that a person may have, or specific stimulus-response associations, or specific implicit associations. Sub-determinants can be clustered into clusters that contain sub-determinants that are similar (for example, all representations about risks) or or functionally similar (for example, all aspects of a person’s psychology involved in self-monitoring). As such, sub-determinants together form determinants, and so, their relationship is structural.

As discussed in Chapter 2, all psychological changes in response to stimuli are learning. The change section, therefore, captures the causes of learning: change is causally linked to psychology. The change section consists of three links in the causal-structural chain, but the middle link is a bit different in that it represents conditions for the first link. This first link is a behavior change principle (BCP; see Chapter 2) that can change the sub-determinant in the fourth link. BCPs are general descriptions of procedures that can be followed to engage one or more evolutionary learning processes (ELPs; again, see Chapter 2). Successfully engaging those ELPs is not easy, and doing so required meeting a number of conditions. These conditions for effectiveness are included in the second link. The third link is the specific application of the BCP: the concrete, more or less tangible intervention product that the target population members will interact with. So, the BCP in the first link is applied in the application in the third link, in a way that satisfied the conditions for effectiveness in the second link.

A visual representation of the causal-structural chain.

Figure 3.1: A visual representation of the causal-structural chain.

The causal-structural chain is shown in Figure 3.1. If any of the links of the causal-structural chain is broken, it is very unlikely that the target behavior in the final link will change. Specifically:

  • If the behavior change principle (BCP) does not engage one or more evolutionary learning principles (ELPs), no learning can occur. This means that no aspects of the target population’s psychology can change, which means behavior will stay the same.
  • If a BCP’s conditions for effectiveness are not met, it will not successfully engage the underlying ELPs, which will diminish or eliminate its effectiveness.
  • Because applications are the specific, tangible intervention components that make up the actual intervention, if an application does not contain a BCP, it cannot change any aspects of the target population’s psychology.
  • If an application successfully changes a sub-determinant, but that sub-determinant is not relevant, the targeted behavior will not change.
  • Given that determinants consist of sub-determinants, the same holds for determinants: for changes in determinants to contribute to behavior change, they must be relevant to the targeted behavior.
  • If a sub-determinant changes, and therefore, the overarching determinant changes, and therefore, the associated behavior changes, that change only contributes to change in the ultimate target behavior if that behavior is indeed a sub-behavior of the target behavior.
  • If the entire chain is intact, ultimately, the target behavior changes.

The causal-structural chain itself is hardly controversial. In fact, it does not do much more than provide a structure for a number of trivial facts. Still, it can be a very useful tool to organise the structural and causal assumptions underlying an intervention. It forms the basis of the Acyclic Behavior Change Diagram (ABCD) matrix and the ABCD itself, that will be discussed in Chapter 9.

3.2.1 A note about Intervention Mapping vocabulary

For those familiar with the Intervention Mapping framework for intervention development, the causal-structural chain will be familiar. In steps 2 and 3 of IM, the same elements are covered. The vocabulary is slightly different, though. In Intervention Mapping, sub-behaviors are called performance objectives. Sub-determinants are usually formulated according specific rules (i.e. using action verbs) and then called change objectives. Behavior change principles are called methods for behavior change.

3.3 Operational tools: software

A number of software solutions exist that support the development of behavior change interventions. Two of these will be discussed here, and both are Free/Libre Open Source Software (FLOSS) solutions. This means that they are free to download and install in perpetuity.

The first, Jamovi, is a very userfriendly general-purpose graphical user interface that can be used for a variety of analyses, unlocked through its ecosystem of modules. One of these modules, behaviorchange, contains a set of tools for behavior change researchers and intervention professionals. This module offers a way to access the basic functionality of a more powerful underlying package. This more powerful package is an R package called behaviorchange.

R is the second software solution. It was originally a statistical programming language, but it is not only open source, but also has a flexible infastructure allowing easy extension with user-contributed packages. Therefore, R is quickly becoming a multipurpose scientific toolkit, and one of its tools is the behaviorchange package.

When using R, most people use RStudio, a so-called integrated development environment. It has many features that make using R much more userfriendly and efficient. In this book, where we refer to using R, we actually mean using R through RStudio. Like Jamovi and R, RStudio is also FLOSS.

3.3.1 Jamovi

Jamovi logo.

Figure 3.2: Jamovi logo.

You can download jamovi from To use the behaviorchange module, you will require at least version 1.1. Once jamovi is installed, start it and click the button with the big plus to browse the jamovi Library (see Figure 3.3).

Jamovi after having clicked the big plus.

Figure 3.3: Jamovi after having clicked the big plus.

Look for the behaviorchange module and install it as shown in Figure 3.4.

Jamovi after having clicked the big plus.

Figure 3.4: Jamovi after having clicked the big plus. Supplied behaviorchange datasets

The behaviorchange module comes with a number of datasets, which you can access through jamovi’s data library. This is accessed by first clicking the hamburger menu (three horizontal lines) in the top-left of the jamovi screen. This opens up a menu where you can click ‘open’ and then ‘Data library’ (see Figure 3.5).

Opening jamovi's data library.

Figure 3.5: Opening jamovi’s data library.

You can then open the behaviorchange directory as shown in Figure 3.6.

Opening the behaviorchange directory in jamovi's data library.

Figure 3.6: Opening the behaviorchange directory in jamovi’s data library.

You then see an overview of the provided datasets (see 3.7; some datasets are ABCD matrices, see Chapter 9, and some are determinant studies, Chapter 6).

An overview of the behaviorchange datasets in jamovi's data library.

Figure 3.7: An overview of the behaviorchange datasets in jamovi’s data library.

3.3.2 R and RStudio

Because RStudio makes using R considerably more userfriendly (and pretty), in this book, we will always use R through RStudio. Therefore, throughout this book, when we refer to R, we actually mean using R through RStudio.

R can be downloaded from click the “Download R for …” link that matches your operating system, and follow the instructions to download the right version. You don’t have to start R - it just needs to be installed on your system. RStudio will normally find it on its own.

RStudio can be downloaded from Once it is installed, you can start it, in which case you should see something similar to what is shown in Figure 3.8.2

The RStudio integrated development interface (IDE).

Figure 3.8: The RStudio integrated development interface (IDE).

R itself lives in the bottom-left pane, the console. Here, you can interact directly with R. You can open R scripts in the top-left pane: these are text files with the commands you want R to execute. The top-right pane contains the Environment tab, which shows all loaded datasets and variables; the History tab, which shows the commands you used; and the Connections and Build tabs, which you will not need. The bottom-right pane contains a Files tab, showing files on your computer; a Plots tab, which shows plots you created; a Packages tab, which shows the packages you have installed; a Help tab, which shows help ages about specific functions; and a Viewer tab, which can show HTML content that was generated in R.

The first thing to do is to install the behaviorchange package. To do this, go to the console (bottom-left tab) and type:


This will connect to the Comprehensive R Archive Network (CRAN) and download and install the behaviorchange package. If you feel adventureous, you can also install the so-called development version (‘dev version’ for short) of behaviorchange. This is the most recent version, which will generally contain all the latest features, but may be less stable (i.e. contain more bugs). To conveniently install the dev version, another package exists called remotes. So if you want the dev version, execute these two commands:


You can test whether you successfully installed the behaviorchange package by running functions that do not require data, such as the function to compute the Numbers Needed for Change (NNC) or to convert a Meaningful Change Definition to a Cohen’s \(d\) value. For example, to compute the Cohen’s \(d\) required to achieve a change of 5% in a variable with a control event rate (base rate) of 25% of the target populations already performing that desired behavior, you could use the following code:

behaviorchange::dMCD(cer = .25,
                     mcd = .05);

Running those code returns two things. First, the requested value of Cohen’s \(d\); and second, by default, a plot is returned that shows that Cohen’s \(d\) value as a function of the base rate (control event rate) in the population. RStudio will normally print the Cohen’s \(d\) value in the console itself, and show the plot in the bottom-right pane, in the Plots tab. Your results should look like this:

##       mcd
## cer         0.05
##   0.25 0.1500892

As you see, you specify what you want the function to do in between the parentheses that follow the function name. There so-called arguments or parameters provide the function with its input and tweak its behavior, for example by activating or deactivating its output. Those familiar with SPSS will recognize this behavior: in SPSS, the syntax commands also receive arguments, although their syntax is a bit different (i.e. the arguments to SPSS functions are placed directly following the function name, omitting the parentheses, and instead using forward slashes to indicate the argument names).

For example, to use a red line instead of a blue line in the plot, we can use:

behaviorchange::dMCD(cer = .25,
                     mcd = .05,
                     resultValueLineColor = "red");
##       mcd
## cer         0.05
##   0.25 0.1500892

RStudio can show the manual (help) page for any function in the right-most pane (in the Help tab). To request the help page for a function, type the function name directly preceded by a question mark into the console. For example:

?behaviorchange::dMCD; Supplied behaviorchange datasets

The behaviorchange package comes with a number of datasets, which you can access in a similar way to how you access functions. Simply decide what name you would like to use to access the datasets and then assign the dataset using R’s assignment operator <-. For example, to take the Party Panel 15.1 datasets and store it in a data.frame called dat (a name that is somewhat of a convention as a default):

dat <- behaviorchange::BBC_pp15.1;

Like for functions, you can get a bit of information about the dataset using R’s help function, the question mark:


In addition to these determinant studies, other datasets that are available are examples of ABCD matrices. You can get an overview of those using:


  1. Yes, that page looks a bit outdated↩︎

  2. It is easy to change RStudio’s appearance; simply open the options dialog by opening the Tools menu and then selecting the Global Options; in section Appearance, the theme can be selected.↩︎