Commit b416a402 authored by eckhart's avatar eckhart
Browse files

- - compile.Compiler.compile: None-test can be turned off object variable, not config var needed!

parent 3335167d
......@@ -43,7 +43,7 @@ from DHParser.transform import TransformationFunc
from DHParser.parse import Grammar
from DHParser.error import adjust_error_locations, is_error, Error
from DHParser.log import log_parsing_history, log_ST, is_logging, logfile_basename
from DHParser.toolkit import load_if_file, get_config_value
from DHParser.toolkit import load_if_file
__all__ = ('CompilerError', 'Compiler', 'compile_source', 'visitor_name')
......@@ -111,7 +111,7 @@ class Compiler:
self.source = ''
self.tree = ROOTNODE_PLACEHOLDER # type: RootNode
self.context = [] # type: List[Node]
self._None_check = get_config_value('raise_error_on_None_return')
self._None_check = True # type: bool
self._dirty_flag = False
def __call__(self, root: RootNode, source: str = '') -> Any:
......@@ -173,10 +173,12 @@ class Compiler:
self.context.append(node)
result = compiler(node)
self.context.pop()
if result is None and self._None_check and \
compiler.__annotations__['return'] not in (None, 'None'):
raise CompilerError('Method on_%s returned `None` instead of a '
'valid compilation result!' % elem)
if result is None and self._None_check:
raise CompilerError('Method on_%s returned `None` instead of a valid compilation '
'compilation result! Turn this check of by adding '
'"self._None_check = False" to the _reset()-Method of your'
'compiler class, in case on_%s actually SHOULD return None.'
% elem)
return result
......
......@@ -111,21 +111,6 @@ CONFIG_PRESET['default_serialization'] = SXPRESSION_SERIALIZATION
CONFIG_PRESET['flatten_sxpr_threshold'] = 120
########################################################################
#
# compiler configuration
#
########################################################################
# Turn checks for None-return of compiler-methods (a common mistake) in
# the compile.Compiler class on. This can lead to problems in cases
# where compile functions legitimately return `None` as value. See the
# examples/json for an example. In this case the configuration variable
# 'raise_error_on_None_return' should be set to False.
# Possible values: True, False Default value: True
CONFIG_PRESET['raise_error_on_None_return'] = True
########################################################################
#
# ebnf compiler configuration
......
......@@ -68,7 +68,7 @@ Match test "entry" for parser "entry" failed:
organization = {Wikipedia}
}
6:68: Error (1010): '}' ~ expected, "%E2\%80\%9" found!
6:68: Error (1010): '}' ~ expected, "%E2\%80\%9..." found!
6:69: Error (1040): Parser stopped before end! trying to recover but stopping history recording at this point.
7:1: Error (1020): Parser did not match!
Most advanced: 6, 68: entry->:ZeroOrMore->:Series->content->:Series->text->:Alternative->CONTENT_STRING->:Alternative->:Series->:Lookahead->/(?i)%/; MATCH; "%"
......
......@@ -59,7 +59,7 @@ class EBNFGrammar(Grammar):
r"""Parser for an EBNF source file.
"""
expression = Forward()
source_hash__ = "0a4657b403c537e8305c9ff3d3c90472"
source_hash__ = "9a341fad79f7e8eb46f1a657b553bec7"
static_analysis_pending__ = [True]
parser_initialization__ = ["upon instantiation"]
resume_rules__ = {}
......@@ -70,7 +70,7 @@ class EBNFGrammar(Grammar):
EOF = NegativeLookahead(RegExp('.'))
whitespace = Series(RegExp('~'), dwsp__)
regexp = Series(RegExp('/(?:(?<!\\\\)\\\\(?:/)|[^/])*?/'), dwsp__)
plaintext = Series(RegExp('`(?:(?<!\\\\)\\\\`|[^"])*?`'), dwsp__)
plaintext = Series(RegExp('`(?:(?<!\\\\)\\\\`|[^`])*?`'), dwsp__)
literal = Alternative(Series(RegExp('"(?:(?<!\\\\)\\\\"|[^"])*?"'), dwsp__), Series(RegExp("'(?:(?<!\\\\)\\\\'|[^'])*?'"), dwsp__))
symbol = Series(RegExp('(?!\\d)\\w+'), dwsp__)
option = Series(Series(Token("["), dwsp__), expression, Series(Token("]"), dwsp__), mandatory=1)
......
\documentclass[12pt, english, a4paper]{article}
\documentclass[12pt, a4paper]{article}
\usepackage{microtype}
\usepackage[USenglish]{babel}
% \usepackage[utf8x]{inputenc}
% \usepackage{ucs}
\usepackage[backend=biber, bibencoding=utf8, citestyle=authoryear,
sortlocale=en_US, natbib=true, url=false, doi=true, eprint=false]
{biblatex}
\usepackage{csquotes}
\addbibresource{bibliography.bib}
\usepackage{eurosym}
\usepackage{setspace}
\usepackage{array}
%\usepackage{mathptmx} % selects Times Roman as basic font
%\usepackage{helvet} % selects Helvetica as sans-serif font
%\usepackage{courier} % selects Courier as typewriter font
%\usepackage{type1cm} % activate if the above 3 fonts are
% not available on your system
%\usepackage{makeidx}
%\usepackage{setspace}
\usepackage{ifpdf}
\ifpdf
\usepackage{xmpincl}
\usepackage[pdftex]{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black,
unicode=true,
bookmarksopen=true, % Gliederung öffnen im AR
bookmarksnumbered=true, % Kapitel-Nummerierung im Inhaltsverzeichniss anzeigen
bookmarksopenlevel=1, % Tiefe der geöffneten Gliederung für den AR
pdfstartview=FitV, % Fit, FitH=breite, FitV=hoehe, FitBH
pdfpagemode=UseOutlines, % FullScreen, UseNone, UseOutlines, UseThumbs
}
%\includexmp{Arnold_2017_Validation_from_a_Kuhnian_Perspective}
\pdfinfo{
/Author (Eckhart Arnold)
/Title (Simulation-Validation from a Kuhnian Perspective)
/Subject (Discussion of the thesis that the validation of computer simulations constitutes a new pardigm of scientific validation)
/Keywords (Computer Simulations, Validation of Simulations)
}
\fi
\begin{document}
\title{What's wrong with social simulations?}
\title{Validation of Computer Simulations from a Kuhnian Perspective}
\author{Eckhart Arnold, Bavarian Academy of Sciences and Humanities}
\date{August 2018}
\date{September 2013; last revision: March 2016}
\maketitle
\sloppy
\begin{center}
{\em erscheint in: Beisbart, C. \& Saam, N. J. (eds.), Computer
Simulation Validation - Fundamental Concepts, Methodological
Frameworks, and Philosophical Perspectives, Cham: Springer 2019.}
\end{center}
\begin{abstract}
This paper tries to answer the question why the epistemic value of so
many social simulations is questionable. I consider the epistemic
value of a social simulation as questionable if it contributes neither
directly nor indirectly to the understanding of empirical reality. In
order to justify this allegation I rely mostly but not entirely on the
survey by \citet{heath-et-al:2009} according to which 2/3 of all
agent-based-simulations are not properly empirically validated. In
order to understand the reasons why so many social simulations are of
questionable epistemic value, two classical social simulations are
analyzed with respect to their possible epistemic justification:
Schelling’s neighborhood segregation model \citep{schelling:1971} and
Axelrod’s reiterated Prisoner’s Dilemma simulations of the evolution
of cooperation \citep{axelrod:1984}. It is argued that Schelling’s
simulation is useful, because it can be related to empirical reality,
while Axelrod’s simulations and those of his followers cannot be
related to empirical reality and therefore their scientific value
remains doubtful. Finally, I critically discuss some of the typical
epistemological background beliefs of modelers as expressed in Joshua
Epsteins’s keynote address ``Why model?''
\citep{epstein:2008}. Underestimating the importance of empirical
validation is identified as one major cause of failure for social
simulations.
\singlespacing
While Thomas Kuhn's theory of scientific revolutions does not
specifically deal with validation, the validation of simulations can
be related in various ways to Kuhn's theory: 1) Computer simulations
are sometimes depicted as located between experiments and theoretical
reasoning, thus potentially blurring the line between theory and
empirical research. Does this require a new kind of research logic
that is different from the classical paradigm which clearly
distinguishes between theory and empirical observation? I argue that
this is not the case. 2) Another typical feature of computer
simulations is their being ``motley'' \citep{winsberg:2003} with
respect to the various premises that enter into simulations. A
possible consequence is that in case of failure it can become
difficult to tell which of the premises is to blame. Could this issue
be understood as fostering Kuhn's mild relativism with respect to
theory choice? I argue that there is no need to worry about relativism
with respect to computer simulations, in particular. 3) The field of
social simulations, in particular, still lacks a common understanding
concerning the requirements of empirical validation of simulations.
Does this mean that social simulations are still in a pre-scientific
state in the sense of Kuhn? My conclusion is that despite ongoing
efforts to promote quality standards in this field, lack of proper
validation is still a problem of many published simulation studies and
that, at least large parts of social simulations must be considered as
pre-scientific.
\begin{flushleft}
{\bf Keywords}: Computer Simulations, Validation of Simulations,
Scientific Paradigms
\end{flushleft}
\end{abstract}
\newpage
\tableofcontents
\onehalfspacing
\section{Introduction}
In this paper I will try to answer the question: Why is the epistemic
value of so many social simulations questionable? Under social
simulations I understand computer simulations of human interaction as
it is studied in the social sciences. The reason why I consider the
epistemic value of many social simulations as questionable is that
many simulation studies cannot give an answer to the most salient
question that any scientific study should be ready to answer: “How do
we know it’s true?” or, if specifically directed to simulation
studies: “How do we know that the simulation simulates the phenomenon
correctly that it simulates?” Answering this question requires some
kind of empirical validation of the simulation. The requirement of
empirical validation is in line with the widely accepted notion that
science is demarcated from non-science by its empirical testability or
falsifiability. Many simulation studies, however, do not offer any
suggestion how they could possibly be validated empirically.
A frequent reply by simulation scientists is that no simulation of
empirical phenomena was intended, but that the simulation only serves
a “theoretical” purpose. Then, however, another equally salient
question should be answered: “Why should we care about the results?”
It is my strong impression that many social simulation studies cannot
answer either this or the first question. This is not to say that the
use of computer programs for answering purely theoretical questions is
generally or necessarily devoid of value. The computer assisted proofs
of the four color theorem \citep{wilson:2002} are an important
counterexample. But in the social sciences it is hard to find
similarly useful examples of the use of computers for purely
theoretical purposes. In any case, the social sciences are empirical
sciences. Therefore, social simulations should contribute either
directly or indirectly to our understanding of social phenomena in the
empirical world.
There exist many different types of simulations but I will restrict
myself to agent-based and game theoretical simulations. I do not make
a sharp difference between models and simulations. For the purpose of
this paper I identify computer simulations just with programmed
models. Most of my criticism of the practice of these simulation types
can probably be generalized to other types of simulations or models in
the social sciences and maybe also to some instances of the simulation
practice in the natural sciences. It would lead too far afield to
examine these connections here, but it should be easy to determine in
other cases whether the particulars of bad simulation practice against
which my criticism is directed are present or not.
In order to bring my point home, I rely on the survey by
\citet{heath-et-al:2009} on agent-based modeling practice for a
general overview and on two example cases that I examine in detail. I
start by discussing the survey which reveals that in an important
sub-field of social simulations, namely, agent based simulations,
empirical validation is commonly lacking. After that I first discuss
Thomas Schelling’s well-known neighborhood segregation model. This is
a model that I do not consider as being devoid of epistemic
value. For, unlike most social simulations, it can be empirically
falsified. The discussion of the particular features that make this
model scientifically valuable will help us to understand why the
simulation models discussed in the following fail to be so.
The simulation models that I discuss in the following are simulations
in the tradition of Robert Axelrod’s “Evolution of Cooperation”
\citep{axelrod:1984}. Although the modeling tradition initiated by
Axelrod has delivered hardly any tenable and empirically applicable
results, it still continues to thrive today. By some, Axelrod’s
approach is still taken as a role model
\citep[208-209]{rendell-et-al:2010a}, although there has been severe
criticism by others \citep{arnold:2008, binmore:1994, binmore:1998}.
Finally, the question remains why scientists continue to produce such
an abundance of simulation studies that fail to be empirically
applicable. Leaving possible sociological explanations like the
momentum of scientific traditions, the cohesion of peer groups, the
necessity of justifying the investment in acquiring particular skills
(e.g. math and programming) aside, I confine myself to the ideological
background of simulation scientists. In my opinion the failure to
produce useful results has a lot to do with the positivist attitude
prevailing in this field of the social sciences. This attitude
includes the dogmatic belief in the superiority of the methods of
natural sciences like physics in any area of science. Therefore,
despite frequent failure, many scientists continue to believe that
formal modeling is just the right method for the social sciences. The
attitude is well described in \citet{shapiro:2005}. Such attitudes are
less often expressed explicitly in the scientific papers. Rather they
form a background of shared convictions that, if not simply taken for
granted as “unspoken assumptions”, find their expression in informal
texts, conversations, blogs, keynote speeches. I discuss Joshua
Epstein’s keynote lecture “Why Model?” \citep{epstein:2008} as an
example.
\section{Simulation without validation in agent-based models}
In this section I give my interpretation of a survey by
\citet{heath-et-al:2009} on agent-based-simulations. I do so with the
intention of substantiating my claim that many social simulations are
indeed useless. This is neither the aim nor the precise conclusion
that \citet{heath-et-al:2009} draw, but their study does reveal that
two thirds of the surveyed simulation studies are not completely
validated and the authors of the study consider this state of affairs
as ``not acceptable'' \citep[4.11]{heath-et-al:2009}. Thus my reading
does not run counter the results of the survey. And it follows as a
natural conclusion, if one accepts that a) an unvalidated simulation
is - in most of the cases - a useless one and b) agent-based
simulations make up a substantial part of social simulations.
The survey by \citet{heath-et-al:2009} examines agent-based mode- ling
practices between 1998 and 2008. It encompasses “279 articles from 92
unique publication outlets in which the authors had constructed and
analyzed an agent-based model” (Heath, Hill and Ciarallo, 2009,
abstract). The articles stem from different fields of the social
sciences including, business, economics, public policy, social
science, traffic, military and also biology. The authors are not only
interested in verification and validation practices, but the results
concerning these are the results that I am interested in
here. Verification and validation concern two separate aspects of
securing the correctness of a simulation model. Verification,
as the term is used in the social simualtions community, roughly
concerns the question whether the simulation software is bug-free and
correctly implements the intended simulation model. Validation
concerns the question whether the simulation model represents the
simulated empirical target system adequately (for the intended
purpose).
Regarding verification, Heath, Hill and Ciarallo notice that ``Only 44
(15.8\%) of the articles surveyed gave a reference for the reader to
access or replicate the model. This indicates that the majority of the
authors, publication outlets and reviewers did not deem it necessary
to allow independent access to the models. This trend appears
consistently over the last 10 years''
\citep[3.6]{heath-et-al:2009}. This astonishingly low figure can in
part be explained by the fact that as long as the model is described
with sufficient detail in the paper, it can also be replicated by
re-programming it from the model description. It must not be forgotten
that the replication of computer simulation results does not have the
same epistemological importance as the replication of experimental
results. While the replication of experiments adds additional
inductive support to the experimental results, the replication of
simulation results is merely a means for checking the simulation
software for programming errors (“bugs”). Hence the possibility of
precise replication is not an advantage that simulations enjoy over
material experiments, as for example \citet[248]{reiss:2011}
argues. Obviously, if the same simulation software is run in the same
system environment the same results will be produced, no matter
whether this is done by a different team of researchers at a different
time and place with different computers. Even if the model is
re-implemented the results must necessarily be the same provided that
both the model and the system environment are fully specified and no
programming errors have been made in the original implementation or
the re-implementation.\footnote{A possible exception concerns the
frequent use of random numbers. As long as only pseudo random
numbers with the same random number generator and the same “seed”
are used, the simulation is still completely deterministic. This not
to say that sticking to the same “seeds” is good practice other than
for debugging.} Replication or reimplementation can, however, help
to reveal such errors.\footnote{I am indebted to Paul Humphreys for
pointing this out to me.} It can therefore be considered as one of
several possible means for the verification (but not validation) of a
computer simulation. Error detection becomes much more laborious if no
reference to the source code is provided. And it does happen that
simulation models are not specified with sufficient detail to
replicate them \citep{will-hegselmann:2008}. Therefore, the rather low
proportion of articles that provide a reference to access or replicate
the simulation is worrisome.
More important than the results concerning verification is what Heath,
Hill and Ciarallo find out about validation or, rather, the lack of
validation:
\begin{quote}
Without validation a model cannot be said to be representative of
anything real. However, 65\% of the surveyed articles were not
completely validated. This is a practice that is not acceptable in
other sciences and should no longer be acceptable in ABM practice
and in publications associated with
ABM. \citep[4.11]{heath-et-al:2009}
\end{quote}
This conclusion needs a little further commentary. The figure of 65\%
of not completely validated simulations is an average value over the
whole period of study. In the earlier years that are covered by the
survey hardly any simulation was completely validated. Later this
figure decreases, but a ratio of less than 45\% of completely
validated simulation studies remains constant during the last 4 yours
of the period covered \citep[3.10]{heath-et-al:2009}.
Furthermore it needs to be qualified what Heath, Hill and Ciarallo
mean when they speak of complete validation. The authors make a
distinction between conceptual validation and operational validation.
Conceptual validation concerns the question whether the mechanisms
built into the model represent the mechanisms that drive the modeled
real system. An “invalid conceptual model indicates the model may not
be an appropriate representation of reality.” Operational validation
then “validates results of the simulation against results from the
real system.” \citep[2.13]{heath-et-al:2009}. The demand for complete
validation is well motivated: “If a model is only conceptually
validated, then it [is] unknown if that model will produce correct
output results.” \citep[4.12]{heath-et-al:2009}. For even if the
driving mechanisms of the real system are represented in the model, it
remains – without operational validation – unclear whether the
representation is good enough to produce correct output results. On
the other hand, a model that has been operationally validated only,
may be based on a false or unrealistic mechanism and thus fail to
explain the simulated phenomenon, even if the data matches. Heath,
Hill and Ciarallo do not go into much detail concerning how exactly
conceptual and operational validation are done in practice and under
what conditions a validation attempt is to be considered as successful
or as a failure.
But do really all simulations need to be validated both conceptually
and operationally as Heath, Hill and Ciarallo demand? After all, some
simulations may – just like thought experiments – have been intended
to merely prove conceptual possibilities. One would usually not
demand an empirical (i.e. operational) validation from a thought
experiment. Heath, Hill and Ciarallo themselves make a distinction
between the generator, mediator and predictor role of a simulation
\citep[2.16]{heath-et-al:2009}. In the generator role simulations are
merely meant to generate hypotheses. Simulations in the mediator role
“capture certain behaviors of the system and [..] characterize how the
system may behave under certain scenarios” (3.4) and only simulations
in the predictor role are actually calculating a real system. All of
the surveyed studies fall into the first two categories. Obviously,
the authors require complete validation even from these types of
simulations.
Thomas \citet{kuhn:1976} famously introduced the term {\em paradigm}
to characterize the set of background beliefs and attitudes shared by
all scientists of a particular discipline. According to Kuhn these
beliefs and attitudes are mostly centered around {\em exemplars} of
good scientific practice as presented in the textbook literature, but
classical texts, specific methodological convictions or even
ontological commitments can also become important for defining a
paradigm. Furthermore, paradigms comprise shared convictions as well
as unspoken assumptions of the group of researchers
\citep[postscript]{kuhn:1976}. An important function of paradigms is
that they both define and limit what counts as relevant question and
legitimate problem within a scientific discipline.
Kuhn's concept of a paradigm is closely connected with his view of how
science develops. According to Kuhn phases of {\em normal science}
where science progresses within the confinements of a ruling paradigm
are followed by {\em scientific revolutions} which, in a process of
creative destruction, lead to a paradigm-shift. Scientific revolutions
are triggered by the accumulation of problems that are unsolvable
within the ruling paradigm (so called {\em anomalies}). With an
increasing number of anomalies scientists grow unsatisfied with the
current paradigm and start to look for alternatives -- a state of
affairs that \citet[ch. 7/8]{kuhn:1976} describes as the {\em crisis}
of the ruling paradigm. Then, a paradigm-shift can occur that consists
in a thoroughgoing conceptual reorganization of a scientific
discipline or, as the case may be, the genesis of a new
sub-discipline. Unless there is a crisis, the search for alternative
paradigms is usually suppressed by the scientific community.
This theory could be relevant for computer simulations and their
validation. Because computer simulations are sometimes characterized
as a revolutionary new tool that blurs the distinction between model
and experiment, the question can be asked if this tool brings about or
requires new paradigms of validation. Under {\em validation} I
understand a process which allows to test whether the results of a
scientific procedure adequately capture that part of reality which
they are meant to explain or to enable us to understand. It is widely
accepted that for theories or theoretical models, the process of
validation consists in the empirical testing of their consequences by
experiment or observation, which in this context is also often
described as {\em verification} or {\em falsification} or, more
generally, as {\em confirmation}.\footnote{In the realm of computer
simulations the term {\em verification} is, somewhat confusingly,
reserved for checking wether the simulation software is free from
programming errors (so called ``bugs'') and whether it is faithful to
the mathematical model or theory on which it is based. The term {\em
validation} is used for the empirical testing of the simulation's
results. See also Chapter 4 \citep{murray-smith:2019} in this volume.}
The question then is, if the same still holds for computer
simulations, that is, if computer simulations also require some form
of empirical validation before they can be assumed to inform us about
reality.
This can be disputed. As stated in the introduction, in order to be
useful, a simulation study should make a contribution to answering
some relevant question of empirical science. This contribution can be
direct or indirect. The contribution is direct if the model can be
applied to some empirical process and if it can be tested empirically
whether the model is correct. The model’s contribution is indirect, if
the model cannot be applied empirically, but if we can learn something
from the model which helps us to answer an empirical question, the
answer to which we would not have known otherwise. The latter kind of
simulations can be said to function as thought experiments. It would
be asking too much to demand complete empirical validation from a
thought experiment.
But does this mean that the figures from Heath, Hill and Ciarallo
concerning the validation of simulations need to be interpreted
differently by taking into account that some simulations may not
require complete validation in the first place? This objection would
miss the point, because the scenario just discussed is the exception
rather than the rule. Classical thought experiments like Schrödinger’s
cat usually touch upon important theoretical disputes. However, as
will become apparent from the discussion of simulations of the
evolution of cooperation, below, computer simulation studies all too
easily lose the contact to relevant scientific questions. We just do
not need all those digital thought experiments on conceivable variants
of one and the same game theoretical model of cooperation. And the
same surely applies to many other traditions of social modeling as
well. But if this is true, then the figure of 65\% of not completely
validated simulation studies in the field of agent-based simulations
is alarming indeed.\footnote{For a detailed discussion of the cases in
which even unvalidated simulations can be considered as useful, see
\citet{arnold:2013}. There are such cases, but the conditions under
which this is possible appear to be quite restrictive.}
Given how important empirical validation is, “because it is the only
means that provides some evidence that a model can be used for a
particular purpose.” \citep[4.11]{heath-et-al:2009}, it is surprising
how little discussion this important topic finds in the textbook
literature on social simulations. \citet{gilbert-troitzsch:2005}
mention validation as an important part of the activity of conducting
computer simulations in the social sciences, but then they dedicate
only a few pages to it (22-25). \citet[98]{salamon:2011} also mentions
it as an important question without giving any satisfactory answer to
this question and without providing readers with so much as a hint
concerning how simulations must be constructed so that their validity
can be empirically tested. \citet{railsback-grimm:2011} dedicate many
pages to describing the ODD-protocol, a protocol that is meant to
standardize agent-based simulations and thus to facilitate the
construction, comparison and evaluation of agent-based simulations.
Arguably the most important topic, empirical validation of agent-based
simulations, is not an explicit part of this protocol. One could
argue that this is simply a different matter, but then, given the
importance of this topic it is slightly disappointing that Railsback
and Grimm do not treat it more explicitly in their book.
Summing it up, the survey by Heath, Hill and Ciarallo shows that an
increasingly important sub-discipline of social simulations, namely
the field of agent-based simulations faces the serious problem that a
large part of its scientific literature consists of unvalidated and
therefore most probably useless computer simulations. Moreover,
considering the textbook literature on agent-based simulations one can
get the impression that the scientific community is not at all
sufficiently aware of this problem.
\section{How a model works that works: Schelling’s neighborhood segregation model}
Moving from the general finding to particular examples, I now turn to
the discussion of Thomas Schelling’s neighborhood segregation
model. Schelling’s neighborhood segregation model
\citep{schelling:1971} is widely known and has been amply discussed
not only among economists but also among philosophers of science as a
role model for linking micro-motifs with macro-outcomes. I will
therefore say little about the model itself, but concentrate on the
questions if and, if so, how it fulfills my criteria for epistemically
valuable simulations.
Schelling’s model was meant to investigate the role of individual
choice in bringing about the segregation of neighborhoods that are
either predominantly inhabited by blacks or by whites. Schelling
considered the role of preference based individual choice as one of
many possible causes of this phenomenon – and probably not even the
most important, at least not in comparison to organized action and
economic factors as two other possible causes
\citep[144]{schelling:1971}.
In order to investigate the phenomenon, Schelling used a checkerboard
model where the fields of the checkerboard would represent houses. The
skin color of the inhabitants can be represented for example by
pennies that are turned either heads or tails.\footnote{Schelling’s
article was published before personal computers existed. Today one
would of course use a computer. A simple version of Schelling’s
model can be found in the netlogo models library
\citep{Wilensky1999}.} Schelling assumed a certain tolerance
threshold concerning the number of differently colored inhabitants in
the neighborhood, before a household would move to another place. A
result that was relatively stable among the different variants of the
model he examined was that segregated neighborhoods would emerge –
even if the threshold preference for equally colored neighbors was far
below 50\%, which means that segregation emerged even if the
inhabitants would have been perfectly happy to live in an integrated
environment with a mixed population. As \citet{aydinonat:2007}
reports, the robustness of this result has been confirmed by many
subsequent studies that employed variants of Schelling’s model. At the
end of his paper Schelling discusses “tipping” that occurs when the
entrance of a new minority starts to cause the evacuation of an area
by its former inhabitants. In this connection Schelling also mentions
an alternative hypothesis according to which inhabitants do not react
to the frequency of similar or differently colored neighbors but on
their on expectation about the future ratio of differently colored
inhabitants. He assumes that this would aggravate the segregation
process, but he does not investigate this hypothesis further
\citep[185-186]{schelling:1971} and his model is built on the
assumption that individuals react to the actual and not the future
ratio of skin colors.
Is this model scientifically valuable? Can we draw conclusions from
this model with respect to empirical reality and can we check whether
these conclusions are true? Concerning these questions the following
features of this model are important:
For the purpose of this paper, I understand empirical validation in a
somewhat wider sense that does not require strict falsification, but
merely any form of matching theoretical assumptions with empirical
findings. In this sense, a historian checking an interpretation
against the historical sources can also be said to validate that
interpretation. However, I assume that proper validation always
includes an empirical component and I therefore use the terms
``validation'' and ``empirical validation'' interchangeably in the
following.
In the following, I first summarize Kuhn's philosophy of science
(Sec.~\ref{sec:kuhn}). Then I list some of the dramatic changes that
computer simulations have brought about in science and -- in order to