NetLogo banner

 Contact Us

 Modeling Commons

 User Manuals:


NetLogo User Community Models

(back to the NetLogo User Community Models)


by Michael Samuels (Submitted: 05/20/2009)

[screen shot]

Download innovation
If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".

(You can also run this model in your browser, but we don't recommend it; details here.)


This is a model of the DIFFUSION OF INNOVATIONS, one segment of the entire INNOVATION
PROCESS that includes (1) invention, (2) R&D, (3) production of innovations, (4) dissemination of these innovations, and (5) various stages of a product's life cycle such as obsolescence and eventual retirement. It focuses on the diffusion and adoption of new technologies based on "internal influences" (e.g., word-of-mouth) and "external influences" (e.g., mass media). Individuals are divided into three groups: "Potentials" who have not yet adopted any new technologies, "Adopters" who are using a new technology and "Disrupters" who are using an even newer technology than "Adopters."

Individuals move through the state space, where they meet and interact with other individuals. If a "Potential" interacts with an "Adopter," he or she may become an "Adopter" based on probabilities set by the modeler. The same holds true for "Potentials" interacting with "Disrupters." There are also parameters for "Adopters" to "renege" and return to "Potentials" or to accept the even newer "Disrupter" technology and discard their "Adopter" innovation. Similar parameters are available for "Disrupters."

Mass media impacts may also be studied. The impact of mass media is based on the length of time a user spends in a particular region (using different colors to represent "strength" of the influence, as well as differences between "Adopter" technologies and "Disrupter" technologies.)

Toggle switches are provided to control each simulation so that a study may focus on internal or external influences of one technology in isolation. Note that interactions between individuals will not occur inside a "mass media" region.


(1) Demography

The population size is set by the modeler and does not change during each run. What changes are the percentages of each type of user:

(a) "Tech2" super-geeks who must have the latest of everything
(b) "Tech1" geeks, or "Innovators" in the typical parlance of innovation theory
(c) "Early Adopters" who will decide to adopt if the idea or technology sounds good
(d) "Early Majority" who are a little hesitant and wait to see what others are doing
(e) "Late Majority" who are very hesitant
(f) "Laggards" who basically wait until the technology is no longer considered innovative
(g) "Hopeless" who will never adopt the technology or idea.

Note that (b) through (f) correspond to the categories commonly seen in the literature; I have added a new category on either end for more flexibility. These people will be created by pressing the SETUP button and will move around the display interacting with other folks ("internal diffusion") or examining mass media or other general forms of information about the innovation ("external diffusion").

(2) Individual Behavior

Individuals who are not currently in a "conversation" will perform a number of steps:

(a) Think about their current status, possibly changing their mind after accepting a new technology: they may return to a "Potential," whereby they are subject to the influences of internal or external factors. If they are a technologist ("Adopter" or "Disrupter"), they may become a "Disrupter" if they are currently an "Adopter" or an "Adopter" if currently a "Disrupter." Note that these changes are based on "personal reflection" rather than due to external or internal influences. These changes are based on slider values "prob-tech1-to-potential," "prob-tech1-to-tech2," "prob-tech2-to-potential" and "prob-tech2-to-tech1."

(b) Move a little based on the "movement" slider set in the interface.

(c) Check to see if they are on a "media center" patch, in which case they may accept a new technology after hearing a "mass media presentation."

(d) Finally, they check to see if someone is around to talk to about technologies. The "movement" parameter" and "prob-conversation" sliders help determine how often conversations occur - just meeting someone does not guarantee that a conversation about technology occurs. If a conversation does occur, one individual is the initiator and the other the recipient of information.

If an individual is already paired, he or she will update his or her status. Whether to accept the new technology is based on the slider probability for each technology. This is only checked at the end of the conversation, not once per time unit. These sliders are "tech1-coefficient-acceptance" and "tech2-coefficient-acceptance." However, each of these values is divided by a factor set for each individual's type (see Demographic Parameters below). For example, an "Innovator" may accept the new technology at the general "coefficient-acceptance" level, where as a "laggard" may be given a high resistance factor, say 10, meaning that acceptance is 1/10th of the general "coefficient-acceptance" level.

(3) Statistics

Output graphs provide a number of summaries for the modeler's use. In addition, debugging statements are printed to the screen. These may be saved in other tools (e.g., Excel) for later analysis.


This section describes the model in a little more detail, highlighting each of the buttons and sliders.

(1) Demographic Parameters

These are set by sliders located below the runtime display. The modeler sets the total population (which remains fixed in size throughout the model run). This population is divided into 7 categories, with a cumulative distribution used to determine the number in each group. For example, "cumulative-prob-tech2" are the "super-geeks" or "Disrupters" who absolutely have to have the latest technology. The slider is set to 0 if there aren't any of these folks in the model. If it is set to some percentage, say 5%, then 5% of the total population will be "super-geeks."

The next segment, "cumulative-prob-tech1" are the Adopters. If the first group is set to 5, and the modeler wants 8% of the population to be Adopters, then set this slider to 13%. Similarly, set all of the cumulative probabilities so that the last category desired is set to 100%. If there are no "hopeless" members of the population, then both the laggard and hopeless sliders will be at 100%. Note that Rogers and others identify 5 categories of people - Innovators, Early Adopters, Early Majority, Late Majority and Laggards. In this model, these five categories are supplemented by new categories on either end of the spectrum - the "tech2" super-geeks on one side and "hopeless" on the other.

Next to the "cumulative-prob-*" sliders are sliders for each category indicating a factor that affects the acceptance of a new idea or technology when meeting with other individuals. There are acceptance factors for internal diffusion called "tech1-coefficient-acceptance" and "tech2-coefficient-acceptance" for Adopter and Disrupter technologies, respectively. This value will be divided by the factor for each individual user type, so that a "1" means accept the technology at the general "tech1" or "tech2" rate, whereas a user value of 5 means only accept the technology at 1/5th of the general rate.

(2) Internal Influence Parameters

(a) prob-conversation - Just because individuals meet, it doesn't mean they will exchange information. The combination of this parameter (a percentage) and the movement parameter (see Runtime Setup below) can be used to calibrate the model against analytical or system dynamics models of diffusion.
(b) conversation-length - This parameter decides how long people are "tied up" in a conversation, but it does not affect the probability of accepting a new technology. It basically just adds a delay factor to the model since the acceptance/rejection of a technology or idea doesn't occur until the end of the conversation.
(c) tech1-switch and tech2-switch - these determine if any internal diffusion will occur in a given model run. The recommendation is to stick to only one innovation ("tech1") until the inner workings of the model are well understood.
(d) tech1-coefficient-acceptance and tech2-coefficient-acceptance - this is a generic number for accepting the innovation at the end of a conversation, with values from 0 to 100. However, this number is divided by a factor for each demographic category. The higher the demographic category number, the lower the chance of accepting the innovation.
(e) prob-tech1-to-poential and prob-tech2-to-potential - a "renege" factor
(f) prob-tech1-to-tech2 and prob-tech2-to-tech1 - probability of switching from one technology to the other
(g) tech1-agent and tech2-agent - not yet incorporated into model

(3) External Influence Parameters

(a) Smoothness - this parameter is used to create the background for external diffusion of tech1 and tech2 innovations.
(b) listening-time - how long the user stays inside the mass media area. Again, this is just a delay factor since acceptance/rejection of the innovation is determined at the end of the period of time the user remains in the area.
(c) prob-to-adopt-tech1-external and prob-to-adopt-tech2-external - acceptance factors
(d) External-Tech1? and External-Tech2? - turn external diffusion on and off
(e) x-adopt, y-adopt, s-adopt and x-disrupt, y-disrupt, s-disrupt - used to set the bounds for the region of mass media. (x,y) places the center of the region, while (s) builds an area from (x-s,y-s),(x+s,y-s),(x+s,y+s),(x-s,y+s).

(4) Outputs

(a) Simulated Time - keeps track of time steps
(b) Populations - total number of individuals of each type (7 types of individuals plus potentials vs adopters/disrupters, as well as total)
(c) Adopter Type - histogram of types of users
(d) Meetings - histogram of two-person conversations (with counters for the number of contacts made in a time period, how many started in that time period, how many ended, and number of active conversations.
(e) Acquaintance Level (and counter) - measure of familiarity of the individuals in a conversation.

(5) Setup

(a) Setup - initializes model based on the parameters described above
(b) Step - increment model one step at a time
(c) Step N - move model N steps forward
(d) On/Off - run model until clicked again
(e) Seed - random number seed for each run
(f) Movement - how far individuals move in each step

(6) Movie

Use slider to set number of frames to collect. Then press movie button to create a movie. This does not work in the Applet form of the model.


Best idea is to run one technology at a time ("Adopter") in word-of-mouth mode, followed by external mode, followed by a mixed mode. These results can be compared to analytical models discussed in the REFERENCES section below. It is recommended that the "tech2" innovation not be used until the modeler is well versed on the behavior of simpler cases.


Note change in rate of technology adoption based on parameters. The "expected" behavior is a logistic curve for a single technology introduced by word-of-mouth. A strictly "mass media" introduction will spread more rapidly, shooting up to the maximum after a small delay (depending upon parameter settings). To see this, turn on "tech1" internal diffusion while turning off "tech2" and all "external diffusion" switches. Run the model for a set length of time with the Step 50 button. Then turn off "tech1" internal diffusion, turn on "tech1" external diffusion with the entire screen representing mass media (x and y parameters set to 0, s parameter set to 100). Run for the same period of time and note the differences in the shape of the population graphs.

Adding a second technology after a short delay leads to all sorts of interesting behavior. In some cases, the newer technology will not be able to gain a foothold. If reneging is added, or if "Adopters" can switch to the "Disrupter" technology, the technology curves become quite complex. According to theory, at least, a "Disrupter" technology often needs to hit a specific niche in order to gain a foothold once an "Adopter" technology has saturated the market (e.g., "WII" vs Playstation 3 vs. Xbox 360 marketing strategies).


(1) Change agents - Rogers (see references) talks about the importance of change agents to facilitate adoption of new technologies or ideas. In the current model, two individuals will meet; adoption is based on parameters such as length of time of the conversation. However, some users could be initialized as change agents, in which case they might require much less time to convince certain categories of users.

(2) Internet - The classic diffusion models differentiate individual contacts from mass media. The Internet, however, is really a combination of the two, providing "intimate" conversations with a single user, but marketing to a wide audience.


Early versions of the model set the "adoption category" of individuals directly in code. The technique was suggested to me on the Community Web Pages, and so I have included it here because I thought it was an interesting programming construct. (It is actually not used for this purpose any more, so the code segment below has not been updated to the latest version of Netlogo.)

The idea is that some folks are "innovators" and will try anything new. Some will never adopt anything new, and others are spread out into other groups. Rogers (see references below) discusses a normal distribution with 5 categories such as 1 & 2 (the early adopters) = 5 (adopt with a lot of resistance) and two middle categories, 3 & 4. This is referred to as the "kind-structure" in the model. Category 1 is set by the number of "adopters" + "disrupters" - those who already have the new innovation at the start of the simulation. To determine the rest of the population, an array is set up in the initialization part of the model:

set kind-structure [ [ 2 12 ] [ 3 47 ] [ 4 81 ] [ 5 100 ] ]
The first entry is the category type; the second is a probability. This is used in the following reporter routine:
to-report determine-kind [ probability-index ]
let this_kind first ( first ( filter [ last ? >= probability-index ] kind-structure ) )
print this_kind+":"+probability-index+":"+filter [last ? >= probability-index] kind-structure
report (this_kind)
The "let" statement was graciously explained to me through the community web pages. It took awhile to convince myself it was working, but it is a very useful structure for this and similar demographic modeling in which the inputs are often categories assigned probabilities. This routine is called during setup in this model to determine the kind of adopter:
to setup-people
cct-people initial-potentials [
set total-population initial-potentials + total-population
set kind determine-kind ( random 100 )

A good use of the "kind" attribute is to assign different adoption rates based on the kind of person under consideration.


Some thoughts on future versions:

(1) As noted above, change agents that impact several colleagues simultaneously. Sliders are provided for change agents, but the behavior has not yet been added to the model.
(2) Making use of memory - acceptance changes with familiarity of partner. A familiarity graph is included in the model, but the behavioral changes due to familiarity have not been added.
(3) Mixed mode diffusion - e.g., web-based diffusion seems like a mixture of internal and external diffusion models.
(4) Social Network Analysis - how fast innovations spread depends on network structure and dynamics ("6 degrees of separation" idea).
(5) Mathematical models of diffusion - idea here is to be able to correlate parameters in various math models of diffusion to the parameters in this simulation.


(1) Other Models

The framework for this model is based on two great models on the Netlogo web site:

(a) AIDS - Copyright 1997 Uri Wilensky. All rights reserved. This provided the basic idea of pairing individuals on the same patch.

(b) Fitness Landscape - Copyright 2006 David McAvity. This model, from the Community Models section of the Netlogo web site, was created at the Evergeen State College, in Olympia Washington as part of a series of applets to illustrate principles in physics and biology.

(2) References

This model is actually a small portion of an ongoing effort to understand the "Innovation Process" from the invention of ideas and technologies to their development, diffusion, use and obsolescence. The overall model is being developed through System Dynamics, but agent-based modeling has been very helpful in clarifying ideas concerning the competition and spread of technologies. The background for this work comes from three sources:

(a) Mahajan, Vijay and Robert A. Peterson, "MODELS FOR INNOVATION DIFFUSION," Quantitative Applications in the Social Sciences, Sage Publications, 88 pages.

(b) Bass, F. M. (1969). "A NEW PRODUCT GROWTH MODEL FOR CONSUMER DURABLES," Management Science, 15, 215-227.

(c) Rogers, Everett M., DIFFUSION OF INNOVATIONS, 5th Edition, Free Press, 512 pp.


Copyright 2009 The MITRE Corporation. All rights reserved.

Approved for Public Release: Distribution Unlimited (Tracking #09-1575)

"The author's affiliation with The MITRE Corporation is provided for identification purposes only, and is not intended to convey or imply MITRE's concurrence with, or support for, the positions, opinions or viewpoints expressed by the author."

The model may be freely used, modified and redistributed provided the copyright and Public Release statements are included and the resulting models are not used for profit. Contact Michael Samuels at if you have questions or comments.

Last updated: 05/19/2009

(back to the NetLogo User Community Models)