<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Making Connections</title>
	
	<link>http://blog.iseesystems.com</link>
	<description>isee systems blog</description>
	<lastBuildDate>Fri, 12 Mar 2010 14:40:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/iseesystems/KOIx" /><feedburner:info uri="iseesystems/koix" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>iseesystems/KOIx</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>What are “Mental Models”?</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/h33xW5vhdFE/</link>
		<comments>http://blog.iseesystems.com/systems-thinking/what-are-mental-models/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 14:00:16 +0000</pubDate>
		<dc:creator>Jeremy Merritt</dc:creator>
				<category><![CDATA[Systems Thinking]]></category>
		<category><![CDATA[crisis]]></category>
		<category><![CDATA[market dynamics]]></category>
		<category><![CDATA[mental model]]></category>
		<category><![CDATA[price]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2690</guid>
		<description><![CDATA[Editor&#8217;s note: This is part one of a two part series on Systems Thinking and mental models
In writing and teaching people about Systems Thinking, we often refer to “mental models”.  For some people, this comes as a bit of a surprise, because the context usually involves building models with the iThink or STELLA software.  They [...]]]></description>
			<content:encoded><![CDATA[<p><em>Editor&#8217;s note: This is part one of a two part series on Systems Thinking and mental models</em></p>
<p>In writing and teaching people about Systems Thinking, we often refer to “mental models”.  For some people, this comes as a bit of a surprise, because the context usually involves building models with the <em>iThink</em> or STELLA software.  They don’t expect us to start talking metaphysically about thinking.  “Is this about philosophy or modeling software?” they may wonder.  The software is actually a tool to help construct, simulate and communicate mental models.</p>
<p>Let’s define the term <em>model</em>: A model is an abstraction or simplification of a system.  Models can assume many different forms – from a model volcano in a high school science fair to a sophisticated astrophysical model simulated using a supercomputer.  Models are simplified representations of a part of reality that we want to learn more about.  <a href="http://en.wikiquote.org/wiki/George_E._P._Box" target="_blank">George Box stated</a>: &#8220;Essentially, all models are wrong, but some are useful”.  They are <em>wrong</em> because they are simplifications and they can be <em>useful</em> because we can learn from them.</p>
<p>So, what is a “mental model&#8221;?  A mental model is a model that is constructed and simulated within a conscious mind.  To be “conscious” is to be <em>aware</em> of the world around you and yourself in relation to the world.  Let’s take a moment to think about how this process works operationally.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="Thinking about trees" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000010896467XSmall.jpg" border="0" alt="Thinking about trees" width="427" height="284" /></p>
<p>Imagine that you are standing outside, looking at a tree.  What happens?  The lenses in your eyes focus light photons onto the retinas.  The photosensitive cells in your retinas respond by sending neural impulses to your brain.  Your brain processes these signals and forms an image of the tree inside your mind.</p>
<p>So at this point, we’ve only addressed the mechanisms by which you perceive the tree.  We have not addressed <em>understanding</em> what a tree is or considered changes over time.   We are dealing with visual information only.  There is nothing within this information that tells you what a tree actually <em>is</em>.</p>
<p>What makes the image of a tree in your minds click as an <em>actual</em> tree that exists right there in front of you?  This is where mental models kick in and you start to <em>think</em> about the tree.  The tree is actually a <em>concept</em> of something that exists in physical reality.  The “tree concept” is a model.  <em>Understanding</em> the concept of a tree requires more information than is available through sensory experience alone.  It’s built on past experiences and knowledge.</p>
<p>A tree is a plant.  It is a living thing that grows and changes appearance over time, often with the seasons.  Trees have root systems.  Trees use leaves for photosynthesis.  Wood comes from trees.  I can state these facts confidently because I have memories and knowledge of trees contained within my mental models.  Mental models contain knowledge and help us create new knowledge.</p>
<p><span id="more-2690"></span></p>
<p>Take a look at these images for a few moments and then think about what is happening inside your mind as you look at them.</p>
<table style="width: 624px;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="184" valign="top">
<p><img style="display: inline; border-width: 0px;" title="Boy catching a ball" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000006460951XSmall.jpg" border="0" alt="Boy catching a ball" width="162" height="242" /></p>
</td>
<td width="227"><img style="display: inline; border-width: 0px;" title="Blocks" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000010372205XSmall.jpg" border="0" alt="Blocks" width="200" height="133" /></td>
<td width="211" valign="top">
<p><img style="display: inline; border-width: 0px;" title="Toddler reaching for a hot stove" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000005079030XSmall.jpg" border="0" alt="Toddler reaching for a hot stove" width="189" height="242" /></p>
</td>
</tr>
</tbody>
</table>
<p>My guess is that with each image you thought about what happens next.  If so, you were actually simulating a mental model forward in time.  The images don’t show you what happened next, but you can probably make a pretty good guess.  This guess is the result of simulating a mental model of what is depicted.  And, you can simulate <em>different</em> outcomes.  In the image on the right, I like to simulate a parent rushing into the scene and scooping up the child before he gets burned.</p>
<p>When we think about the boy catching the ball, the blocks knocking one another over, worrying about the toddler getting burned, we are applying knowledge that we hold in our minds to help simulate a mental model of what is depicted in the image.  This is all going on subconsciously, so we’re really not aware of it as it is happening.</p>
<p><strong>Thinking About Systems</strong></p>
<p>The human mind is very good at simulating mental models of our immediate physical reality.  Things get harder when we start thinking about abstract systems.</p>
<p>A market is a good example of an abstract system.  In a market system, price acts as a signal of aggregate demand for a commodity.  You can’t “see” a market like you can “see” a tree in front of you.  A market does not exists in a particular physical location.  A market is an abstract concept that exists in the collective minds of all who participate in it.  Even though a market does not exist physically, markets have an enormous impact on our lives nonetheless.</p>
<p>When the global economic crisis hit in late 2008, retailers began to struggle financially because consumer purchases declined rapidly.  People were worried about the economy and started saving money instead of spending it.  This started happening just before the holiday shopping season – a make-or-break period for many retailers.  So, in an effort to boost demand, retailers began dropping prices.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="consumer perspective" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/consumerperspective.png" border="0" alt="consumer perspective" width="359" height="196" /></p>
<p>This led to <a href="http://online.wsj.com/article/SB123981349936221635.html" target="_blank">price deflation</a> because consumers saw prices dropping rapidly and began delaying purchases as a result.  The outcome of simulating their mental model of the market informed their decision making: “I should wait to buy this because the price keeps dropping”.</p>
<p>This mental model paints a pretty picture for consumers over the short-term:  low prices in a down economy.  As the deflationary dynamics play out over the long term, the picture becomes bleak.  As prices spin downward, profits decline and businesses are forced to layoff workers or close up shop entirely.  As unemployment increases, consumers perception of the stability of the economy decreases and they spend even less.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="Expanded perspective" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/biggerperspective.png" border="0" alt="Expanded perspective" width="372" height="277" /></p>
<p>Economists and policy makers use sophisticated computer models to help them understand markets.  On the other hand, consumers use simple mental models when making purchasing decisions.  The more sophisticated models inform policy makers of the long term consequences of consumers cutting spending, so they react by trying to jump-start spending with stimulus programs.  In the US we’ve seen a few of these programs during 2009: the “Cash for Clunkers” rebate program, the First-Time Home Buyer Tax Credit, and the Social Security payroll tax cut.</p>
<p>Often, it is hard for us to define the optimal boundaries for a mental model.  We tend to have a narrow focus and act on short-term dynamics within our mental models.  For example, in the model above, our understanding changes when we expand the boundaries to include profits and layoffs.</p>
<p>However, we are not generally very good at mentally simulating complex systems with interdependencies, lots of variables, and delays.  This is where software steps in.  Using Systems Thinking software, we can transform our mental models into operational models that we can simulate more reliably using a computer.  This not only helps us create new knowledge and understanding, but helps us construct better mental models in the future.</p>
<p>We’ll explore the role of software in constructing, simulating and communicating mental models in part two of this series.</p>
<p><br class="spacer_" /></p>
<p><em>For more on using modeling and simulation to understand the economic crisis, see the <a href="http://www.iseesystems.com/store/UnderstandingEconomicCrisis/default.aspx">“Understanding the Economic Crisis” video presentation</a>.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=h33xW5vhdFE:cGG8t8ZF47U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=h33xW5vhdFE:cGG8t8ZF47U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=h33xW5vhdFE:cGG8t8ZF47U:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/h33xW5vhdFE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/systems-thinking/what-are-mental-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/systems-thinking/what-are-mental-models/</feedburner:origLink></item>
		<item>
		<title>Modeling the Economic Crisis</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/fICcFq5YRJU/</link>
		<comments>http://blog.iseesystems.com/systems-thinking/modeling-the-economic-crisis/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:10:43 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[Systems Thinking]]></category>
		<category><![CDATA[crisis]]></category>
		<category><![CDATA[economics]]></category>
		<category><![CDATA[housing]]></category>
		<category><![CDATA[paradox of thrift]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2632</guid>
		<description><![CDATA[I’m often asked by customers that are new to Systems Thinking, “How can this approach add value to conceptualizing and understanding common, everyday issues?”  The issues range from business design to environmental concerns to macroeconomic dynamics.  In response to this question, I can tell you from my personal experience, nothing beats seeing a skilled practitioner use [...]]]></description>
			<content:encoded><![CDATA[<p>I’m often asked by customers that are new to Systems Thinking, “How can this approach add value to conceptualizing and understanding common, everyday issues?”  The issues range from business design to environmental concerns to macroeconomic dynamics.  In response to this question, I can tell you from my personal experience, nothing beats seeing a skilled practitioner use our software tools and the Systems Thinking methodology to make sense out of a complex problem.</p>
<p>With this in mind, we collaborated with our consulting and training partner, <a title="Lexidyne LLC" href="http://www.lexidyne.com" target="_blank">Lexidyne LLC</a>, to create a new series of video-based presentations focused on common but often misunderstood problems that can be conceptualized, expanded, and then explored using Systems Thinking.  We recently released<em> </em>the first video in this series — <a href="http://www.iseesystems.com/store/UnderstandingEconomicCrisis/default.aspx" target="_blank"><em>Understanding the Economic Crisis</em></a> presented by Dr. Mark Paich.</p>
<p>Judging from its title, you might think <em>Understanding the Economic Crisis</em> presents a huge complex model of the macro economy.  To the contrary, dynamic modeling expert, Mark Paich, begins with a very simple model of something we <em>all</em> can relate to — the individual consumer.</p>
<div id="attachment_2639" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2639 " title="Individual Consumer Balance Sheet" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/BalanceSheet1.png" alt="" width="500" height="269" /><p class="wp-caption-text">Stock and flow map of an individual consumer&#39;s balance sheet</p></div>
<p>Mark expands upon the model and shows how a sudden drop in housing prices affects individual consumption.   As you might expect, when <em>Total Net Worth</em> falls, the individual responds by spending less.  When housing prices fall, home equity loans no longer provide the purchasing power for big ticket items like cars, vacation homes and big screen TVs.</p>
<p>The real surprise however, comes when Mark further expands the individual consumer model to include the economy as a whole.  When <em>everyone’s</em> net worth decreases at the same time a phenomena known as the “Paradox of Thrift” occurs. The paradox states that if everyone tries to save money during times of recession, total savings for the overall economy may fall.  The dynamics generated by adding elements of the macro economy to the model are indeed surprising.</p>
<p>Mark’s easily understood model leads to some real insights concerning the policy implications for an economic recovery.   It also provides a great example of how Systems Thinking can be used to deepen your understanding of a complex issue in order to make better decisions.  If you haven’t seen the video, I highly recommend it.  The following trailer highlights some of the key points in Mark’s presentation and will give you a taste of the full presentation.</p>
<p><span style="font-size: small;"><em>(If you cannot see the video below in your RSS reader, please <a href="http://blog.iseesystems.com/systems-thinking/modeling-the-economic-crisis/">visit the post page</a>)</em></span></p>
<p>
<object id="player1" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="player1" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="flashvars" value="config=http://blog.iseesystems.com/wp-content/uploads/2010/03/config.xml" /><param name="src" value="http://blog.iseesystems.com/wp-content/plugins/player/player-licensed.swf" /><embed id="player1" type="application/x-shockwave-flash" width="600" height="360" src="http://blog.iseesystems.com/wp-content/plugins/player/player-licensed.swf" flashvars="config=http://blog.iseesystems.com/wp-content/uploads/2010/03/config.xml" allowscriptaccess="always" allowfullscreen="true" name="player1"></embed></object>
</p>
<p>For more information or to purchase <em>Understanding the Economic crisis</em>, click <a title="Understanding the Economic Crisis" href="http://www.iseesystems.com/store/UnderstandingEconomicCrisis/default.aspx" target="_blank">here</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=fICcFq5YRJU:kZwy6ZcyW44:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=fICcFq5YRJU:kZwy6ZcyW44:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=fICcFq5YRJU:kZwy6ZcyW44:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/fICcFq5YRJU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/systems-thinking/modeling-the-economic-crisis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/systems-thinking/modeling-the-economic-crisis/</feedburner:origLink></item>
		<item>
		<title>Modeling Bass Diffusion with Rivalry</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/1O9tkdjOgNw/</link>
		<comments>http://blog.iseesystems.com/stella-ithink/bass-diffusion-with-rivalry/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:00:10 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[STELLA & iThink]]></category>
		<category><![CDATA[archetypes]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[Bass diffusion]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[market dynamics]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2608</guid>
		<description><![CDATA[This is the last of a three-part series on the Limits to Growth Archetype.  The first part can be accessed here and the second part here.
Last time, we explored the effects of Type 1 rivalry (rivalry between different companies in a developing market) on the Bass diffusion model by replicating the model structure.  This part [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the last of a three-part series on the Limits to Growth Archetype.  The first part can be accessed <a href="http://blog.iseesystems.com/stella-ithink/limits-to-growth/">here</a> and the second part <a href="http://blog.iseesystems.com/stella-ithink/bass-diffusion-model/">here</a>.</em></p>
<p>Last time, we explored the effects of Type 1 rivalry (rivalry between different companies in a developing market) on the Bass diffusion model by replicating the model structure.  This part will generalize this structure and add Type 2 rivalry (customers switching between brands).</p>
<p><strong>Bass Diffusion with Type 1 Rivalry</strong></p>
<p>To model the general case of an emerging market with multiple competitors, we can return to the original single company case and use arrays to add additional companies.  In this case, everything except <em>Potential Customers</em> needs to be arrayed, as shown below (and available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/02/developing-with-type-1-rivalry.itm">here</a>).</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb.png" border="0" alt="image" width="350" height="281" /></p>
<p>For this example, three companies will be competing for the pool of <em>Potential Customers</em>.  Each array has one-dimension, named <em>Company</em>, and that dimension has three elements, named <em>A</em>, <em>B</em>, and <em>C</em>, one for each company.  Although each different parameter, <em>wom multiplier</em>, <em>fraction gained per $K</em>, and <em>marketing spend in $K</em>, can be separately specified for each company, all three companies use the same values initially.  All three companies, however, do not enter the market at the same time.  Company <em>A</em> enters the market at the start of the simulation, company <em>B</em> enters six months later, and company <em>C</em> enters six months after that.</p>
<p>Recall that the marketing spend is the trigger for a company to start gaining customers.  Thus, the staggered market entrance can be modeled with the following equation for <em>marketing spend in $K</em>:</p>
<p style="padding-left: 30px;">STEP(10, STARTTIME + (ARRAYIDX() &#8211; 1)*6)</p>
<p>The <em>STEP</em> function is used to start the marketing spend for each company at the desired time.  The <em>ARRAYIDX</em> function returns the integer index of the array element, so it will be 1 for company <em>A</em>, 2 for company <em>B</em>, and 3 for company <em>C</em>.  Thus, the offsets from the start of the simulation for the launch of each company’s marketing campaign are 0, 6, and 12, respectively.</p>
<p>This leads to the following behavior:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb1.png" border="0" alt="image" width="473" height="263" /></p>
<p>Note that under these circumstances, the first company to enter the market retains a leadership position.  However, companies <em>B</em> and <em>C</em> could anticipate this and market more strongly.  What if company <em>B</em> spent 50% more and company <em>C</em> spent 100% more than company <em>A</em> on marketing that is similarly effective?  This could be modeling by once again changing the equation for <em>marketing spend in $K</em>, this time to:</p>
<p style="padding-left: 30px;">STEP(10 + (ARRAYIDX() &#8211; 1)*5, STARTTIME + (ARRAYIDX() &#8211; 1)*6)</p>
<p><span id="more-2608"></span>The effect in this case is quite different.  All three companies end up with approximately equal market shares.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb2.png" border="0" alt="image" width="473" height="263" /></p>
<p><strong>Bass Diffusion with Type 1 and Type 2 Rivalry</strong></p>
<p>Once a market is established, companies will also make an effort to win competitor’s customers away.  A previous <a href="http://blog.iseesystems.com/modeling-tips/array-methods-4/">post</a> showed how to model switching between brands using arrays.  Adding that structure to this model gives a model (available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/02/developing-with-types-1-2-rivalry.itm">here</a>) that implements both type 1 and type 2 rivalry.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb3.png" border="0" alt="image" width="472" height="306" /></p>
<p>The specific mechanism that convinces customers to switch brands is not explicitly modeled here so that the structure matches that in the earlier post.  Instead, this model uses constant switching rates; the earliest entrant, company <em>A</em> is given the most favorable values.  However, to make the model more dynamic and also useful, there should be factors that influence the relative attractiveness of the two brands, for example, marketing spend, product quality, product features, and customer service.</p>
<p>Giving an advantage to the early entrant to the market has the expected effect of boosting their customer base at the expense of the others.  This another example of <a href="http://blog.iseesystems.com/stella-ithink/success-to-the-successful/">Success to the Successful</a>.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb4.png" border="0" alt="image" width="473" height="263" /></p>
<p>Note the scale of this graph had to be changed relative to the earlier graphs to show all of company <em>A’</em>s customers.  The effect of the customer switching is so strong that even increasing marketing for company’s <em>B</em> and <em>C</em> does not change the end result.  Of course, the switching factors in this model are constant and increased marketing should indeed change them.</p>
<p>This does, however, show that it is important to intervene in the correct place to reach your desired outcome.  Once the market is mature, the dynamics are dominated by the switching effects, not the process of gaining customers.  Thus, efforts to change market share by changing the rate of gaining customers are ineffective.  Energy should instead be focused on reducing the number of customers who switch to other brands and increasing the number of customers gained from other brands.</p>
<p>This model does not model the decline of the market, through customer loss, since we are mostly concerned with growth and maturation.  If desired, the loss would be modeled with an outflow from <em>Customers</em> as shown in the earlier brand switching post.</p>
<p>Finally, this model assumes that <em>Customers</em> belong to one company alone, i.e., no one uses the product from more than one company at one time.  Sharing customers is known as type 3 rivalry and is beyond the scope of this post.</p>
<p><strong>A Note About Revenues</strong></p>
<p>Gaining customers is, of course, not the entire story.  The purpose of gaining customers is to create revenue for your business.  There are two opportunities to generate revenue in this model:</p>
<ol>
<li>From your existing customer base.  This <em>stock</em>-driven revenue stream is typical for manufacturers of non-durable goods such as bleach and razors, or for subscription-based or service businesses, such as magazines, cable TV, or beauty salons.  If your customer base is large, your revenues will be high.  The Bass diffusion model shows a growing customer base and therefore a growing revenue stream (see curve 1 below).</li>
<li>When a person is converted from a <em>Potential Customer</em> to a <em>Customer</em> or a customer switches from one brand to another.  This <em>flow</em>-driven revenue stream is the only source of revenue for manufacturers of durable goods, such as cars, computers, and refrigerators.  However, it often also applies to software companies.  Since the flow rate determines the revenue stream, if the rate at which you gain customers is large, your revenue will be high.  Note, however, that the Bass diffusion model shows us this rate falls sharply as the market matures, as the number of <em>Customers</em> saturates (see curve 2 below).  To keep revenues high in a mature market for this kind of business, it is necessary to entice customers away from competitors, build in product obsolescence (so your customers have to buy again), or enter new markets.</li>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb5.png" border="0" alt="image" width="455" height="252" /></p>
</ol>
<p><strong>A Final Aside on the Bass Diffusion Model</strong></p>
<p>In his excellent book <span style="text-decoration: underline;">Strategic Modelling and Business Dynamics</span>, John Morecroft explains (on page 173) that the effect of marketing in the Bass diffusion model has a stronger purpose than just to start the ball rolling.  Without the marketing effect, market growth through word-of-mouth alone is much slower than any business would desire, or typically experience.  The following graph compares the growth with and without the marketing effect (<em>Customers</em> is initialized to one in both cases).</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb6.png" border="0" alt="image" width="455" height="252" /></p>
<p>Without the marketing expenditure, the conversion of <em>Potential Customers</em> to <em>Customers</em> does not peak until the month 91, whereas, with marketing expenditure, it peaks in month 50, in almost half the time.  This is also reflected in the time it takes the market to mature:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/02/image_thumb7.png" border="0" alt="image" width="455" height="252" /></p>
<div id="_mcePaste" style="position: absolute; width: 1px; height: 1px; overflow: hidden; top: 1286px; left: -10000px;">available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/02/developing-with-types-1-2-rivalry.itm">here</a>)</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=1O9tkdjOgNw:smLDG2sT3Fs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=1O9tkdjOgNw:smLDG2sT3Fs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=1O9tkdjOgNw:smLDG2sT3Fs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/1O9tkdjOgNw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/stella-ithink/bass-diffusion-with-rivalry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/stella-ithink/bass-diffusion-with-rivalry/</feedburner:origLink></item>
		<item>
		<title>Modeling Real World Challenges Inspires Students</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/_QVhDRpcX3k/</link>
		<comments>http://blog.iseesystems.com/education/new-site-features-models-of-real-world-challenges/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 18:00:50 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[21st century skills]]></category>
		<category><![CDATA[diana fisher]]></category>
		<category><![CDATA[national standards]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2508</guid>
		<description><![CDATA[Last summer I had the opportunity to see students from Diana Fisher&#8217;s dynamic modeling class at Wilson High School in Portland, Oregon present their modeling projects to participants of the International System Dynamics Society Conference in Albuquerque. The parallel session was filled with educators and professionals from different fields, many of whom are renowned system dynamicists.
I think it is safe to [...]]]></description>
			<content:encoded><![CDATA[<p>Last summer I had the opportunity to see students from Diana Fisher&#8217;s dynamic modeling class at Wilson High School in Portland, Oregon present their modeling projects to participants of the International System Dynamics Society Conference in Albuquerque. The parallel session was filled with educators and professionals from different fields, many of whom are renowned system dynamicists.</p>
<p>I think it is safe to say that we <em>all</em> were very impressed by the quality of the students&#8217; work and how well they understood the dynamics associated with the issues they were presenting.  Perhaps more striking however, was seeing how empowering modeling real-world issues is for young people and the enthusiasm they share for their work.</p>
<p><a href="http://www.ccmodelingsystems.com/index.html" target="_blank"><img class="alignright size-medium wp-image-2509" style="margin-top: 5px; margin-bottom: 5px;" title="CC Modeling Systems" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/ccmodelingsys-logo-280x119.jpg" alt="CC Modeling Systems" width="224" height="95" /></a>Now <em>everyone</em> can see the effect that modeling real-world issues has on students at the <a href="http://www.ccmodelingsystems.com/student-projects-highlights.html" target="_blank">CC Modeling Systems </a>web site. Dedicated to helping educators bring dynamic modeling into the classroom, the web site features videos of students presenting their work as compelling evidence to the value of incorporating System Thinking and system dynamics into curriculum.</p>
<p>You&#8217;ll be amazed to see what 14-18 year olds are capable of and the excitement they exuberate when addressing challenges such as:</p>
<ul>
<li><em><a href="http://www.ccmodelingsystems.com/student-projects-highlights.html" target="_blank">How much do carbon emissions need to be reduced in order to stop global warming?</a></em></li>
<li><em><a href="http://www.ccmodelingsystems.com/student-projects-highlights.html" target="_blank">Can automakers cope with the increasing demand for hybrid gasoline-electric vehicles?</a> </em></li>
<li><em><a href="http://www.ccmodelingsystems.com/student-projects-highlights.html" target="_blank">What is the impact of introducing an invasive species into an ecosystem? </a></em></li>
<li><em><a href="http://www.ccmodelingsystems.com/student-projects-videos.html" target="_blank">Will China have sufficient water resources to sustain population and agricultural growth?</a></em></li>
<li><em><a href="http://www.ccmodelingsystems.com/student-projects-videos.html" target="_blank">How can we improve the blood donation process in the United States?</a></em></li>
</ul>
<blockquote><p>Students are eager to understand the world better and are more than capable of building and understanding relatively sophisticated models in their attempts to understand the dynamics of real-world systems.</p>
<p>—Diana Fisher</p>
</blockquote>
<p>Educators and administrators considering dynamic modeling curricula typically face challenges. No matter how compelling the evidence that Systems Thinking and the system dynamics methodology engages students and takes them to a higher level of reasoning, it is still difficult to justify without tying it to National Standards.</p>
<p>The CC Modeling Systems web site devotes an entire section to detailing very specific 21st Century Skills and National Standards addressed by curriculum that incorporates building system dynamics models.   Much of the homework has been done aligning this type of work to standards in the following subject areas:</p>
<ul>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-21st.html" target="_blank">21st Century Skills</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-econ.html" target="_blank">Economics</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-health.html" target="_blank">Health</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-math.html" target="_blank">Math</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-science.html" target="_blank">Science</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-socstudies.html" target="_blank">Social Studies</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-sustain.html" target="_blank">Sustainability</a></li>
<li><a href="http://www.ccmodelingsystems.com/res-stds-skills-tech.html" target="_blank">Technology</a></li>
</ul>
<p>Many thanks to Diana Fisher for sharing her students and her experiences teaching dynamic modeling with all of us!</p>
<p><em>To learn more about the modeling course that Diana teaches, I recommend the following links: <br />
</em><a href="http://www.iseesystems.com/community/WebSeminars/ModelingDynamicSystems.aspx" target="_blank"><em>Recorded webinar presentation by Diana Fisher</em></a><br />
<a href="http://www.iseesystems.com/store/ModelingBook/default.aspx" target="_blank"><em>Modeling Dyamic Systems: Lessons for a First Course</em></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=_QVhDRpcX3k:rqvotiwQgrY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=_QVhDRpcX3k:rqvotiwQgrY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=_QVhDRpcX3k:rqvotiwQgrY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/_QVhDRpcX3k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/education/new-site-features-models-of-real-world-challenges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/education/new-site-features-models-of-real-world-challenges/</feedburner:origLink></item>
		<item>
		<title>Developing a Market Using the Bass Diffusion Model</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/_qgUkg17clg/</link>
		<comments>http://blog.iseesystems.com/stella-ithink/bass-diffusion-model/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 17:08:21 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[STELLA & iThink]]></category>
		<category><![CDATA[archetypes]]></category>
		<category><![CDATA[Bass diffusion]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[market dynamics]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2495</guid>
		<description><![CDATA[This is part two of a three part series on Limits to Growth.  Part one can be accessed here and part three can be accessed here.

In part one of this series, I explained the Limits to Growth archetype and gave examples in epidemiology and ecology. This part introduces the Bass diffusion model, an effective way [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is part two of a three part series on Limits to Growth.  Part one can be accessed <a href="http://blog.iseesystems.com/stella-ithink/limits-to-growth/">here</a> and part three can be accessed <a href="http://blog.iseesystems.com/stella-ithink/bass-diffusion-with-rivalry/">here</a>.<br />
</em></p>
<p>In part one of this series, I explained the Limits to Growth archetype and gave examples in epidemiology and ecology. This part introduces the Bass diffusion model, an effective way to implement the capture of customers in a developing market. This is also used to implement what Kim Warren calls Type 1 rivalry in his book <span style="text-decoration: underline;">Strategy Management Dynamics</span>, that is, rivalry between multiple companies in an emerging market.</p>
<p><strong>The Bass Diffusion Model</strong></p>
<p>The Bass diffusion model is very similar to the <a href="http://blog.iseesystems.com/stella-ithink/limits-to-growth/#more-2385">SIR model</a> shown in part one. Since we do not usually track customers who have “recovered” from using our product, the model only has two stocks, corresponding loosely to the <em>Susceptible</em> and <em>Infected</em> stocks. New customers are acquired through contact with existing customers, just as an infection spreads, but in this context this is called <em>word of mouth</em> (<em>wom</em>). This is, however, not sufficient to spread the news of a good product, so the Bass diffusion model also includes a constant rate of customer acquisition through advertising. This is shown below (and can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/01/developing.itm">here</a>).</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb.png" border="0" alt="image" width="289" height="235" /></p>
<p>The feedback loops <em>B1</em> and <em>R</em> are the same as the balancing and reinforcing loops between <em>Susceptible</em> and <em>Infected</em> in the SIR model. Instead of an infection rate, there is a <em>wom multiplier</em> which is the product of the Bass diffusion model’s contact rate and the adoption rate. If you are examining policies related to these variables, it would be important to separate them out in the model.</p>
<p>The additional feedback loop, <em>B2</em>, starts the ball rolling and helps a steady stream of customers come in the door. If you examine the SIR model closely, you will see that the initial value of <em>Infected</em> is one. If no one is infected, the disease cannot spread. Likewise, if no one is a customer, there is no one to tell others how great the product is so they want to become customers also. By advertising, awareness of the product is created in the market and some people will become customers without having encountered other customers who are happy with the product.</p>
<p>The behavior of this model is shown below. Note it is not different in character from the SIR model or the simple population model.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb1.png" border="0" alt="image" width="455" height="252" /><span id="more-2495"></span></p>
<p><strong>Implicit Type 1 Rivalry</strong></p>
<p>In the face of competition for an emerging market, multiple companies will be fighting for these same potential customers. Ostensibly, they all follow the Bass diffusion model. However, if the exact dynamics of the competition is not important to the purpose of the model, it is possible to simply model the reverse pressure the competition is placing on your company’s growth.</p>
<p><br class="spacer_" /></p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb2.png" border="0" alt="image" width="397" height="289" /></p>
<p>In this version of the model (which can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/01/developing-with-competition.itm">here</a>), both the <em>wom multiplier</em> and the marketing effectiveness (<em>fraction gained per $K</em>) are restricted by competitive pressure. The variable <em>competitive pressure</em> is an S-shaped graphical function meant to mimic the behavior of competitors in a developing market. In the beginning, there is no competition. As the market grows, more and more competitors enter the market until it becomes saturated. It is a simple time-series function, as shown below, but could instead be tied to the success of your company.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="clip_image002" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="311" height="264" /></p>
<p>The variable <em>competition</em> is just 1 – <em>competitive_pressure</em>, i.e., it is a multiplier that reduces the effectiveness of wom and marketing spending as competitive pressure grows. Finally, a switch called <em>competition switch</em> has been added. When this is set to zero (the default), the model behaves as it did previously, i.e., without competition. When it is set to one, competition is active and the behavior changes to that shown below.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb3.png" border="0" alt="image" width="456" height="253" /></p>
<p><strong>Explicit Type 1 Rivalry</strong></p>
<p>Finally, another competitor can be explicitly modeled by replicating the structure (or by using arrays). This model is shown below (and can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/01/developing-with-rivalry.itm">here</a>).</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb4.png" border="0" alt="image" width="257" height="436" /></p>
<p>In this structure, each competitor can be given their own explicit parameters, which can also vary as the simulation progresses based on market share or product attractiveness. When the rival spends half as much on marketing as your company does, your company wins more market share:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb5.png" border="0" alt="image" width="455" height="252" /></p>
<p>In this simulation, the rival enters the market at the same time as your company. This is usually not the case in the real world. If all parameters are the same for both companies, but the rival company enters the market one year later, the end result is identical to that shown above. The transient response, however, is necessarily different:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/image_thumb6.png" border="0" alt="image" width="455" height="252" /></p>
<p>This model does not include the process of developing a market for a product nor does it model persons leaving the market. I.e., it is assumed that the total market size is predefined and never changes. For a completely new product, the potential market will likely grow, so we may want to include this effect. However, when modeling a developing market, it is unlikely we are interested in the shrinking of the market that occurs after maturation.</p>
<p>The model also does not model losing customers to competitors (Type 2 rivalry) or customers who use products from multiple competitors (Type 3 rivalry). An example of modeling Type 2 rivalry is shown in a previous <a href="http://blog.iseesystems.com/modeling-tips/array-methods-3/">post</a>.</p>
<p>My next post in this series will expand the above model to include Type 2 rivalry and to use arrays.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=_qgUkg17clg:T1Q0xpH99Pk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=_qgUkg17clg:T1Q0xpH99Pk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=_qgUkg17clg:T1Q0xpH99Pk:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/_qgUkg17clg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/stella-ithink/bass-diffusion-model/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/stella-ithink/bass-diffusion-model/</feedburner:origLink></item>
		<item>
		<title>Humanities Major Attempts Dynamic Modeling and Survives!</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/KYrJUprKj4U/</link>
		<comments>http://blog.iseesystems.com/training/humanities-major-attempts-systems-thinking-and-survives/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 21:00:19 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[Training]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2441</guid>
		<description><![CDATA[This post is written by Rolf Olsen, a participant in our Introduction to Dynamic Modeling with iThink and STELLA workshop held last month in Colorado Springs.  We thought Rolf&#8217;s perspective would offer insights for those of you who are new to Systems Thinking or curious about applying dynamic modeling to real-world issues.

I was very excited about a last-minute chance to attend [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post is written by Rolf Olsen, a participant in our </em><a href="http://www.iseesystems.com/store/Training/IntroDynamicModelingIthink.aspx" target="_blank"><em>Introduction to Dynamic Modeling with iThink and STELLA</em></a><em> workshop held last month in Colorado Springs.  We thought Rolf&#8217;s perspective would offer insights for those of you who are new to Systems Thinking or curious about applying dynamic modeling to real-world issues.</em></p>
<div id="attachment_2452" class="wp-caption alignleft" style="width: 117px"><img class="size-medium wp-image-2452 " title="Rolf Olsen" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/Rolf-248x300.jpg" alt="" width="107" height="130" /><p class="wp-caption-text">Rolf Olsen, Workshop Participant</p></div>
<p>I was very excited about a last-minute chance to attend the introductory <em>iThink</em>/STELLA workshop, but to be honest, on the flight to Colorado Springs, I started to become apprehensive.  Who was I trying to kid?  Sure, I’d heard the terms “stock” and “flow” and I understood their roles as the nouns and verbs of the software.  I’d even read a few chapters in Barry Richmond’s <em>Introduction to Systems Thinking</em>.  But the first time I started up the software and stared at that blank workspace, I had no clue where to begin!  Adding to my anguish, I was quite certain there would be others there who were much smarter than me and really <em>knew</em> what they were doing.</p>
<p>In college I spent most of my time and energy studying English and French, language, literature, cinema, art history, and so forth. I managed to avoid all higher math like the plague (although I did reasonably well in basic statistics).  My engineer father often reminded me that my degree in Humanities prepared me for almost nothing.  After college, I stumbled into a career in marketing – quite fertile territory for exploring system dynamics and modeling, as it turns out.  I spent a few formative years in an ad agency and at a regional banking system, before finding my stride marketing and managing nonprofit arts and culture organizations. Today I work in marketing and communication in a large academic medical center.</p>
<p>For years I’ve used spreadsheets to model various ‘what if’ scenarios.  In the arts, I used spreadsheets to create budgets and set ticket prices, always seeking ways to better predict revenue from ticket sales at different prices, for different types of performances (e.g., modern dance, string quartet, jazz ensemble), or on different days of the week.</p>
<p>Preparing for the <em>iThink</em>/STELLA workshop, I decided I’d like to try to model demand in a market area for laser vision correction surgery, popularly known as LASIK or PRK.  That seemed simple enough.  I might be able to bluff my way through this workshop after all!</p>
<p><span id="more-2441"></span></p>
<p>In the end, all my concerns and fears of inadequacy were for naught.  Corey Peck is a remarkable teacher.  Within the first hour of the first day, he’d already explained that almost everybody who starts <em>iThink</em> for the first time takes a deep gulp at the sight of that blank workspace, wondering how to begin.  That was comforting, to say the least.</p>
<p>Others in this workshop included a nurse from Nigeria, two men from a large consulting firm that counts the military among its principal clients, three people with separate interests in systems used to deliver electrical energy, two from the IS planning department of a large national insurance company, a woman from an Oregon health care system, and two women from Hong Kong who teach English at a university there.  And there was me, the health care marketing geek.</p>
<p>Despite the diversity of our backgrounds and fields of endeavor, somehow, over two and a half days of workshop, Corey always managed to guide and instruct us, as a group and individually, in a way that was neither too complex and esoteric nor too simple.  He obviously comprehends dynamic systems so well, and knows the software so thoroughly, that no matter what type of model one of us presented, Corey could quickly offer clear and helpful guidance.  I never felt lost, and I always found myself learning something as I eavesdropped on Corey’s conversations with others in the class.</p>
<p>Our other instructor, Mark Paich, was a protégé and colleague of some of the pioneers of Systems Thinking, including Barry Richmond and Peter Senge.  Mark’s tales from years of consulting work with clients, such as General Motors, were fascinating and, for me, they helped place the concepts we were exploring within a much larger context.  Although the scope and complexity of some of the projects Mark described were daunting, these stories helped me appreciate more clearly what is possible when you begin to view almost any situation you encounter as a dynamic system.  And the stories were fascinating and fun, providing an excellent “brain break” from the rigors of our lessons with Corey!</p>
<p>By the end of the first day, we’d all constructed our first working models, and begun to sketch out the models we hoped to build.  As I mentioned, I wanted to try to create a simple model to explore dynamic demand, based on several variable factors, for LASIK vision correction surgery.  I’d start with the population of our market area and then determine the number of people who wear glasses or contacts.</p>
<ul>
<li>Of those people, how many are aware that our hospital offers LASIK surgery? </li>
<li>How many of the “aware” group might be willing to attend a free information session and preliminary evaluation? </li>
<li>Of all qualified candidates, how many would be willing and able to actually go through with the surgery? </li>
<li>Then, after successful LASIK surgery, how many people would tell their friends, neighbors or colleagues how happy they were, thus spreading awareness and influencing a new group of candidates to have LASIK surgery?</li>
<li>And what might be the impact on surgery volume of marketing efforts at various levels of expenditure?  How about a discount or referral incentive?</li>
</ul>
<p style="text-align: center;"><img class="size-full wp-image-2474 aligncenter" title="LASIK_Model" src="http://blog.iseesystems.com/wp-content/uploads/2010/01/LASIK_Model.png" alt="" width="580" height="218" /><br class="spacer_" /></p>
<p>I started out pretty simply because, as Corey reminded us often, “There’s plenty of time to make it more complex later.”  That proved to be great advice.  And in the end, I went home with a rudimentary model that seemed to work.  Well, mostly.  It needs more work and I need more practice.  And when I mentioned to Corey that I hoped to figure out how to factor in the “word of mouth” effect into my model, he promised to send me information about the “Bass Diffusion Model” that addresses that very topic.  And sure enough, an email arrived a few days after I’d returned home.</p>
<p>In all, my experience at the introductory <em>iThink</em>/STELLA workshop was excellent, even transformative.  I now often find myself thinking in terms of stocks, flows, converters and connectors. I don’t literally model every situation I encounter, of course, but I see applications all around me. I know I have an enormous amount yet to learn, the introductory course covered just the basics for me. But now I have more confidence and I feel inspired to move forward, because I’ve had a tantalizing glimpse of what’s possible with a proper grasp of key concepts, the right software tool – and remarkable teachers.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=KYrJUprKj4U:FTLtwoS5f9M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=KYrJUprKj4U:FTLtwoS5f9M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=KYrJUprKj4U:FTLtwoS5f9M:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/KYrJUprKj4U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/training/humanities-major-attempts-systems-thinking-and-survives/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/training/humanities-major-attempts-systems-thinking-and-survives/</feedburner:origLink></item>
		<item>
		<title>Top Blog Posts of 2009</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/n4c5_VVJvtA/</link>
		<comments>http://blog.iseesystems.com/news-announcements/top-blog-posts-of-2009/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 16:00:30 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[News & Announcements]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2416</guid>
		<description><![CDATA[In 2009, the isee systems blog, “Making Connections” was created as a forum for sharing ideas and experiences with the Systems Thinking community. Blog topics cover subjects ranging from a systems perspective of current news events to modeling tips for advanced STELLA and iThink users.
As the first anniversary of the isee Blog approaches, we thought [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-452 alignright" style="margin-left: 10px; margin-right: 10px;" title="Making Connections isee Blog" src="http://blog.iseesystems.com/wp-content/uploads/2009/02/isee_blog_icon_128.png" alt="isee_blog_icon_128" width="128" height="128" />In 2009, the isee systems blog, “Making Connections” was created as a forum for sharing ideas and experiences with the Systems Thinking community. Blog topics cover subjects ranging from a systems perspective of current news events to modeling tips for advanced STELLA and <em>iThink</em> users.</p>
<p>As the first anniversary of the isee Blog approaches, we thought it would be interesting for folks to see the list of our most popular blog posts.</p>
<p><br class="spacer_" /></p>
<p><strong>Top Ten Posts of 2009</strong></p>
<ol>
<li><a href="http://blog.iseesystems.com/stella-ithink/modeling-h1n1-flu-outbreak/">Modeling H1N1 Flu Outbreak</a></li>
<li><a href="http://blog.iseesystems.com/modeling-tips/array-methods-3/">Modeling Customers Switching Between Brands</a></li>
<li><a href="http://blog.iseesystems.com/modeling-tips/array-methods-2/">Modeling a Watershed with Arrays</a></li>
<li><a href="http://blog.iseesystems.com/modeling-tips/matrix-arithmetic/">Matrix Arithmetic</a></li>
<li><a href="http://blog.iseesystems.com/modeling-tips/spatial-modeling-map/">Spatial Modeling with isee Spatial Map</a></li>
<li><a href="http://blog.iseesystems.com/training/thinking-in-systems-inspires-online-course/">“Thinking in Systems” book inspires online course</a></li>
<li><a href="http://blog.iseesystems.com/education/physics-flexbook/">Physics Textbook 2.0</a></li>
<li><a href="http://blog.iseesystems.com/stella-ithink/insight-based-model-investigates-the-housing-crisis/">Insight-based Model Investigates the Housing Crisis</a></li>
<li><a href="http://blog.iseesystems.com/stories-from-the-field/building-health-care-model-hierarchically/">Building a Health Care Model Hierarchically</a></li>
<li><a href="http://blog.iseesystems.com/news-announcements/c02-in-the-atmosphere-behaves-like-a-bathtub/">C02 in the Atmosphere Behaves Like a Bathtub</a></li>
</ol>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=n4c5_VVJvtA:SSSEnb3K810:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=n4c5_VVJvtA:SSSEnb3K810:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=n4c5_VVJvtA:SSSEnb3K810:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/n4c5_VVJvtA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/news-announcements/top-blog-posts-of-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/news-announcements/top-blog-posts-of-2009/</feedburner:origLink></item>
		<item>
		<title>Limits to Growth</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/wPhGEcxXE5I/</link>
		<comments>http://blog.iseesystems.com/stella-ithink/limits-to-growth/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 15:00:55 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[STELLA & iThink]]></category>
		<category><![CDATA[archetypes]]></category>
		<category><![CDATA[Causal Loop]]></category>
		<category><![CDATA[CLD]]></category>
		<category><![CDATA[h1n1]]></category>
		<category><![CDATA[population dynamics]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2385</guid>
		<description><![CDATA[This is the first of a three-part series on the Limits to Growth Archetype.  The second part can be accessed here and the third part  here.
The Limits to Growth Systems Archetype, also known as Limits to Success, combines growth with an exogenous or endogenous limit.  This Systems Archetype was formally identified in Appendix 2 [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the first of a three-part series on the Limits to Growth Archetype.  The second part can be accessed </em><a href="../stella-ithink/limits-to-growth/"><em><a href="../stella-ithink/bass-diffusion-model/">here</a></em></a><em><a href="../stella-ithink/limits-to-growth/"></a> and the third part </em><a href="../stella-ithink/limits-to-growth/"><em> </em></a><em></em><em><a href="http://blog.iseesystems.com/stella-ithink/bass-diffusion-with-rivalry/">here</a></em><em><a href="../stella-ithink/bass-diffusion-model/"></a>.</em></p>
<p>The Limits to Growth Systems Archetype, also known as Limits to Success, combines growth with an exogenous or endogenous limit.  This Systems Archetype was formally identified in Appendix 2 of <span style="text-decoration: underline;">The Fifth Discipline</span> by Peter Senge (1990), but made its first prominent appearance in <span style="text-decoration: underline;">World Dynamics</span> by Jay Forrester (1971) and then <span style="text-decoration: underline;">The Limits to Growth</span> by Meadows, Meadows, Randers, and Behrens (1972).  The Causal Loop Diagram (CLD) is shown below.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb8.png" border="0" alt="image" width="401" height="171" /></p>
<p>Real growth processes have inherent limits to growth.  Identifying these limits can help avoid problems in the future, whether the problem is overpopulation, increasing demand for a product that cannot be met, or growing a business in a mature market.  When growth is desired, but limited, it is always better to find ways to increase the limit before pushing for more growth.  Excessive growth in the face of a limit often leads to collapse.  Driving the system to the point of collapse can erode the ability to continue after the collapse, for example, by reducing the production capability of a piece of farmland or destroying the reputation of a company.</p>
<p>Classic examples of limits to growth include:</p>
<ul>
<li>The collapse of the deer population on the Kaibab plateau and on St. Matthew Island due to overpopulation and the attendant overgrazing of their habitat </li>
<li>The overshoot and collapse of the human population on Easter Island </li>
<li>Overgrazing in the Sahel region of Africa by cattle herders </li>
<li>Overfishing of the oceans by fishermen </li>
<li>The collapse of People Express due to sharp customer growth combined with slow personnel growth </li>
<li>The sharp exodus of America Online subscribers after an intense marketing campaign increased the number of subscribers far beyond their capacity </li>
<li>The contraction of the world economy in 2008 due to limiting oil supplies </li>
<li>The productivity of staff deteriorating as a company grows, due to increased interactions and reporting overhead </li>
<li>Business growth limited by the size of the potential market </li>
<li>Yeast cells in the fermentation process, who suffer from both the loss of exogenously supplied sugar and the increase of endogenously produced pollution </li>
</ul>
<p><span id="more-2385"></span></p>
<p><strong>Exploring Limits to Growth with the SIR Model</strong></p>
<p>The SIR (Susceptible-Infected-Recovered) model, also known as the Kermack-McKendrick model, is used to predict the spread of an infectious disease.  The disease is ultimately limited by the number of potential hosts.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb1.png" border="0" alt="image" width="435" height="163" /></p>
<p>In this model (available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/12/SIR.stm">here</a>), the <em>Susceptible</em> population becomes infected based on their rate of contact with an <em>Infected</em> population and the probability of being infected (<em>infection rate</em> combines these parameters).  After some amount of time (1/<em>recovery rate</em>), the disease runs its course and people either recover or die, moving into the <em>Recovered</em> population.</p>
<p>The infection feeds on susceptible people.  As the number of susceptible people falls, the number who can become infected also falls.  Since infected people eventually recover, the number of infected people will ultimately fall.  This behavior is reflected in the graph below.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0pt;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb2.png" border="0" alt="image" width="458" height="254" /></p>
<p>The sharp increase in <em>Infected</em>, followed by a dramatic drop is known as <em>overshoot and collapse</em>.  It is a characteristic behavior of the Limits to Growth Archetype.  The stock of <em>Recovered</em> people is also limited – by the total population.  It exhibits a different characteristic behavior of Limits to Growth:  <em>S-shaped growth</em>, so called because the graph of this growth pattern looks like the letter <em>S</em>.  This is also known as <em>logistic growth</em>.  In the beginning, growth is very rapid, but as the limit is approached, growth slows and then stops.  In feedback terms (refer back to the CLD), the rapid growth on the left side of the <em>S</em> occurs because the reinforcing loop dominates while the right side slowdown occurs because the balancing loop dominates.</p>
<p>There are two separate limits to growth:  one on the sustainable level of the <em>condition of interest</em> and one on its rate of growth.  The former is defined by a system’s <em>carrying capacity</em> (named <em>limiting condition</em> in the CLD).  As Khalid Saeed, Professor of Social Science and Policy Studies at <a href="http://www.wpi.edu/academics/Depts/SSPS/People/kqs.html" target="_blank">Worcestor Polytechnic Institute</a>, recently reminded me, the carrying capacity of a system is always a <em>flow</em>.  Any system that requires something, either energy or mass, to persist cannot exist beyond the level at which that something can be provided.  The second limit, that on the rate of growth, is defined by the system <em>slack</em>, which is always a <em>stock</em>.</p>
<p>In the SIR model, the infectious disease feeds off of the susceptible people.  The stock of <em>Susceptible</em> people is therefore the slack in the system.  The growth of the disease is limited by the contents of this stock.  However, the carrying capacity of the system is zero, as there is no inflow to <em>Susceptible</em> to provide an endless supply of victims for the disease.  The net result is that eventually, and after a sharp rate of growth, the number of infected people will also drop to zero.</p>
<p>In either a closed or a quarantined community, this may be true.  However, ease of travel creates an inflow to <em>Susceptible</em>, i.e., a carrying capacity, and thus the disease can persist.  The graph below shows what happens when an inflow is added <em>Susceptible</em> and set to 10 people per day (10% of the initial population).</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0pt;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb3.png" border="0" alt="image" width="459" height="254" /></p>
<p>Rather than going to zero, both <em>Susceptible</em> and <em>Infected</em> wind up at non-zero steady-state values that reflect the new carrying capacity (10).  Note in particular that this value is <em>not</em> 10 for either stock; it is about 50.  Note also that the <em>Infected</em> peak has risen from roughly 17 to 90 due to the inflow of susceptible people.</p>
<p>For more information about the spread of infectious disease, read our blog post on <a href="http://blog.iseesystems.com/stella-ithink/modeling-h1n1-flu-outbreak/">Modeling H1N1 Flu Outbreak</a>.</p>
<p><strong>Exploring Limits to Growth in Population Dynamics</strong></p>
<p>Another example occurs in population dynamics.  The simple example shown below demonstrates the impact of a limit (click <a href="http://blog.iseesystems.com/wp-content/uploads/2009/12/population-simple.stm">here</a> to download this model).</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0pt;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb4.png" border="0" alt="image" width="375" height="203" /></p>
<p>The food available is a simple linear relationship that reduces available food as population increases.  The death rate increases as the available food per member of the population falls.  The behavior of this model is shown below.</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0pt;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb5.png" border="0" alt="image" width="456" height="253" /></p>
<p>While this shows the desired behavior, an exogenous limit (food available) enforced as the population grows, this model has no slack and no explicit carrying capacity.  The lack of an explicit stock to model the slack in the system will result in an incorrect <em>transient response</em> (i.e., the system&#8217;s response to a change in its variables) when something happens that might require that slack, for example, a drought or a surge in the population due to immigration.</p>
<p>A more accurate and useful, though more complex, model appears below (and is available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/12/population-replenish.stm">here</a>).</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0pt;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb6.png" border="0" alt="image" width="459" height="316" /></p>
<p>Both the carrying capacity (<em>replenishment</em>) and the slack (<em>Food Available</em>) are explicitly modeled.  The behavior is quite different:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/12/image_thumb7.png" border="0" alt="image" width="459" height="254" /></p>
<p><br class="spacer_" /></p>
<p>There is now a proper transient response to an increase in the birth rate.  The slack, <em>Food Available</em>, fuels growth in the <em>Population</em> until the slack is exhausted (relative to the carrying capacity), at which point the population collapses to its approximate equilibrium value – the value supported by the carrying capacity.</p>
<p>Next time, I will explore limits to growth in the context of business development models.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=wPhGEcxXE5I:WAdoudAFhtQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=wPhGEcxXE5I:WAdoudAFhtQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=wPhGEcxXE5I:WAdoudAFhtQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/wPhGEcxXE5I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/stella-ithink/limits-to-growth/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/stella-ithink/limits-to-growth/</feedburner:origLink></item>
		<item>
		<title>Incorporating STELLA into STEM Education</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/CWGEX75SWWg/</link>
		<comments>http://blog.iseesystems.com/education/incorporating-stella-into-stem-education/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:00:47 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Algebra]]></category>
		<category><![CDATA[h1n1]]></category>
		<category><![CDATA[inquiry-based]]></category>
		<category><![CDATA[lessons]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[MODSIM]]></category>
		<category><![CDATA[pandemic]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[STEM]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2298</guid>
		<description><![CDATA[Jeremy and I recently attended the MODSIM 2009 Conference in Virginia Beach where we facilitated a pre-conference workshop with the help of Mark Clemente, a local high school science teacher.
We’ve been working with Mark over the past year to incorporate dynamic modeling and computer-based simulation into the STEM curriculum at Ocean Lakes High School in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-2302" title="MODSIM 2009" src="http://blog.iseesystems.com/wp-content/uploads/2009/11/MODSIM-2009-280x103.jpg" alt="MODSIM 2009" width="280" height="103" />Jeremy and I recently attended the MODSIM 2009 Conference in Virginia Beach where we facilitated a pre-conference workshop with the help of Mark Clemente, a local high school science teacher.</p>
<p>We’ve been working with Mark over the past year to incorporate dynamic modeling and computer-based simulation into the STEM curriculum at Ocean Lakes High School in Virginia Beach.  Ocean Lakes is serving as a demonstration school for a broader initiative in Virginia to use Modeling and Simulation (MODSIM) as an engine for 21st Century workforce development.</p>
<p>One of our goals for the pre-conference workshop was to provide participants with STELLA models and lessons that they could use immediately in their classrooms.  To attain this we put together a packet of sample lessons that would cover the spectrum of STEM education courses—Science, Technology, Engineering and Mathematics.</p>
<p><strong><strong>Science: Exploring an H1N1 flu outbreak model</strong></strong></p>
<p>Educators at all levels have found that physical activities or games can often be a good way to introduce students to STELLA models. Activities can be a lot of fun and provide a physical model for kids to make the connection with the more abstract computer-based simulation.</p>
<p>In our workshop, we decided to introduce a STELLA model of the H1N1 flu outbreak by first engaging the class in a <a title="Cups Exercise" href="http://www.iseesystems.com/community/WebSeminars/Infectious_Disease_Activity.pdf" target="_blank">simple exercise</a> that demonstrates the spread of infectious disease using cups of water.  Each student was given a cup of water and a pipette.  One cup of water however, was contaminated with sodium hydroxide.   We then began the process of walking around and dropping a pipette filled with liquid from our own cup into the cups of fellow students.  At the end of several rounds, Mark (our teacher) put a drop of phenolphthalein solution into everyone&#8217;s cup.  If the liquid turned pink, we were infected.</p>
<p>With a new understanding of how quickly infection can spread, the class was ready to be introduced to a STELLA model of the H1N1 flu outbreak.  The core structure of the model is based on the same model that epidemiologists use to track a population through the various stages of infection including Susceptible, Exposed, Infected and Recovered (SEIR).</p>
<p>The simulation provided several controls for students to experiment with different policy options for controlling the spread of the virus.   Along with the model, we provided a sample lesson with a set of questions to help guide students through their exploration.  To download the H1N1 model and sample lesson, <a href="http://blog.iseesystems.com/wp-content/uploads/2009/11/H1N1_Lesson.zip">click here</a>.</p>
<p><strong>Technology: Inquiry-based learning with STELLA simulations</strong></p>
<p>It was fascinating to watch how each student in our workshop experimented differently with the model and began asking their own set of questions.  STELLA simulations and computer technology provide the perfect platform for students to learn using an inquiry-based approach.  Rather than being told how something works, students can discover for themselves by exploring &#8220;what-if&#8221; scenarios and finding out what happens. For teachers, this can mean shifting from a traditional teacher role to that of a facilitator or coach, guiding students in their inquiry without knowing in advance the path they&#8217;ll choose.</p>
<p><strong>Engineering/Physics: The Pendulum Story</strong></p>
<p><img class="alignright size-full wp-image-2364" title="pendulum" src="http://blog.iseesystems.com/wp-content/uploads/2009/11/pendulum.jpg" alt="pendulum" width="212" height="156" />Another STELLA model that we introduced to workshop participants was one that Mark and I modified for the <a href="http://blog.iseesystems.com/education/physics-flexbook/">Physics Flexbook</a> project earlier this year.  The original version was developed by Diana Fisher in her book <em><a title="Lessons in Mathematics" href="http://www.iseesystems.com/store/college_university/MathBook.aspx" target="_blank">Lessons in Mathematics: A Dynamic Approach</a></em>. The model provides a practice field for learning how the variables of simple harmonic motion are related.  Controls in the simulation allow you to explore what effect, if any, string length, initial displacement, and pendulum ball mass have on the amplitude, period, and frequency of the pendulum’s motion.  To download the pendulum model and sample lesson, <a href="http://blog.iseesystems.com/wp-content/uploads/2009/11/Pendulum_Lesson.zip">click here</a>.</p>
<p><strong>Mathematics: Algebra Word Problems</strong></p>
<p>You may remember from your own experience in math class that word problems typically give students a lot of trouble!  It is especially difficult to understand what is important in the problem and how to translate words into mathematical equations.  STELLA can help by allowing students to create a visual representation of the problem and making it easier to understand the symbolic representation.</p>
<p>For the workshop, we used the following word problem as an example of a typical Algebra I assignment:</p>
<blockquote><p>Imagine your class is going to try to raise $400 by making school T-shirts. There is a $150 set-up charge for the T-shirt design that you have designed. Once the design is set, it costs $4 for each T-shirt. You feel it is possible to charge $10 for each T-shirt. How many T-shirts do you have to sell before you break even, i.e., make enough money to cover your costs?</p>
</blockquote>
<p>Together we created a STELLA model that provided a visual representation of the word problem and gave everyone some hands-on experience building models from scratch.  It also inspired some participants to think about ways they could expand or change the model to answer additional questions that weren&#8217;t part of their immediate assignment. <br class="spacer_" /></p>
<p><img class="aligncenter size-full wp-image-2372" title="Tshirt" src="http://blog.iseesystems.com/wp-content/uploads/2009/11/Tshirt.jpg" alt="Tshirt" width="513" height="272" /></p>
<p>To download the T-shirt model and lesson, <a href="http://blog.iseesystems.com/wp-content/uploads/2009/11/Word_Problem_Lesson.zip">click here</a>.</p>
<p>We&#8217;d love to expand our library of <a href="http://www.iseesystems.com/community/downloads/tutorials/stella_sample_lessons.aspx" target="_blank">STELLA lessons</a> and models so that we can share them with teachers.  If you&#8217;ve got any ideas of things you&#8217;d like to try in your classroom, please feel free to contact us &#8211; we&#8217;re here to help!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=CWGEX75SWWg:dJbhRM7q_GA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=CWGEX75SWWg:dJbhRM7q_GA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=CWGEX75SWWg:dJbhRM7q_GA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/CWGEX75SWWg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/education/incorporating-stella-into-stem-education/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/education/incorporating-stella-into-stem-education/</feedburner:origLink></item>
		<item>
		<title>Modeling H1N1 Flu Outbreak</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/Ig1xAbq5KVY/</link>
		<comments>http://blog.iseesystems.com/stella-ithink/modeling-h1n1-flu-outbreak/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 21:37:05 +0000</pubDate>
		<dc:creator>Jeremy Merritt</dc:creator>
				<category><![CDATA[STELLA & iThink]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[epidemic]]></category>
		<category><![CDATA[flu]]></category>
		<category><![CDATA[h1n1]]></category>
		<category><![CDATA[infection]]></category>
		<category><![CDATA[netsim]]></category>
		<category><![CDATA[seir]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2328</guid>
		<description><![CDATA[ It seems like everyone has been talking about H1N1 (swine flu) the last couple of months.  If you have children in school, then you are probably very aware of how fast the virus is spreading.  Schools are the perfect environment for a virus to spread.  To help understand why, we created a STELLA model [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="H1N1 Virus" src="http://blog.iseesystems.com/wp-content/uploads/2009/11/purpleh1n1.jpg" border="0" alt="H1N1 Virus" width="206" height="242" align="right" /> It seems like <em>everyone</em> has been talking about H1N1 (swine flu) the last couple of months.  If you have children in school, then you are probably very aware of how fast the virus is spreading.  Schools are the perfect environment for a virus to spread.  To help understand why, we created a STELLA model of a high school that introduces the H1N1 virus.  You can experiment with vaccination and “stay at home” policies to limit the spread of the flu.</p>
<p>The STELLA model is based on the <a href="http://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology" target="_blank">SEIR compartmental model</a> that epidemiologists use to model the progress of an epidemic.  SEIR models divide the population into compartments: Susceptible, Exposed, Infected and Recovered.  These ‘compartments’ translate nicely into stocks within the STELLA model where we can observe the dynamics of the spreading virus.</p>
<p>While developing the model we decided to explore some strategies that schools are pursuing to limit the virus’ spread.  We wanted to know if the “stay at home” (when you are sick) policy would be effective in the case where vaccines are not available quickly enough, (which as of November 2009 is the case).</p>
<p>Take a look:</p>
<p>
<object id="h1n1_embedded" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="522" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="simID=netsim%2fh1n1_embedded&amp;serviceRoot=http%3a%2f%2fforio.com%2fservice%2f&amp;buildNum=%7bbuildNumber%7d&amp;initialPage=Page+1&amp;guid=ec7f2ad2-a999-4499-94a3-b19b63247d2d&amp;displayForioBadge=true&amp;displayiseeBadge=true&amp;displayShareThisNetsim=true&amp;embed=true" /><param name="quality" value="high" /><param name="bgcolor" value="#c1e0ff" /><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="true" /><param name="src" value="http://forio.com/service/netsims/netsim/h1n1_embedded/index.swf" /><param name="name" value="h1n1_embedded" /><param name="align" value="middle" /><param name="flashvars" value="simID=netsim%2fh1n1_embedded&amp;serviceRoot=http%3a%2f%2fforio.com%2fservice%2f&amp;buildNum=%7bbuildNumber%7d&amp;initialPage=Page+1&amp;guid=ec7f2ad2-a999-4499-94a3-b19b63247d2d&amp;displayForioBadge=true&amp;displayiseeBadge=true&amp;displayShareThisNetsim=true&amp;embed=true" /><param name="allowfullscreen" value="true" /><embed id="h1n1_embedded" type="application/x-shockwave-flash" width="600" height="522" src="http://forio.com/service/netsims/netsim/h1n1_embedded/index.swf" allowfullscreen="true" allowscriptaccess="sameDomain" flashvars="simID=netsim%2fh1n1_embedded&amp;serviceRoot=http%3a%2f%2fforio.com%2fservice%2f&amp;buildNum=%7bbuildNumber%7d&amp;initialPage=Page+1&amp;guid=ec7f2ad2-a999-4499-94a3-b19b63247d2d&amp;displayForioBadge=true&amp;displayiseeBadge=true&amp;displayShareThisNetsim=true&amp;embed=true" align="middle" bgcolor="#c1e0ff" quality="high" name="h1n1_embedded"></embed></object>
</p>
<p>Click the ‘Simulate’ link on the home screen above and try some different scenarios.  Be sure to click the ‘How does this simulation work?’ link for a guided tour of the model behind the simulation.</p>
<p>As you experiment with the simulation, consider the following:</p>
<ul>
<li>How does varying &#8220;% vaccinated&#8221; effect the number of sick students?</li>
<li>How many days do infected students need to stay home to have a significant impact on the spread of the virus within the school? </li>
<li>What impact does the &#8220;% effectiveness of vaccine&#8221; have on the flu outbreak? </li>
<li>What combination of decisions results in the lowest number of sick students?  Are these decisions realistic in a real-world setting? </li>
</ul>
<p><em>Note: Each time you dial in parameters and press run, a new plot will be added to the graph so you can compare the effectiveness of the different decisions.  Clicking on the blue reset button will clear the graph and reset all Knobs to their default value.</em></p>
<p>If you think this simple model is useful, feel free to share it or embed it on your own website; just click the sharing icon in the lower right corner.  If you want to dig deeper into the STELLA model you can download the model by <a href="http://blog.iseesystems.com/wp-content/uploads/2009/11/H1N1_Embedded.zip">clicking here</a>.  You can open the model with <a href="http://www.iseesystems.com/softwares/Education/StellaSoftware.aspx" target="_blank">STELLA 9.1</a>, or the free <a href="http://www.iseesystems.com/softwares/player/iseeplayer.aspx" target="_blank">isee Player</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=Ig1xAbq5KVY:OvVlJpfl20c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=Ig1xAbq5KVY:OvVlJpfl20c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=Ig1xAbq5KVY:OvVlJpfl20c:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/Ig1xAbq5KVY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/stella-ithink/modeling-h1n1-flu-outbreak/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/stella-ithink/modeling-h1n1-flu-outbreak/</feedburner:origLink></item>
		<item>
		<title>Modeling Customers Switching Between Brands – The General Case</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/OuqCaDcOxrQ/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/array-methods-4/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 13:00:04 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[2D array]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[market dynamics]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2248</guid>
		<description><![CDATA[This is the last installment of a four-part series.  The first three parts can be accessed by clicking on the links below.
 Methods for Using Arrays Effectively 
 Modeling a Watershed with Arrays
 Modeling Customers Switching Between Brands 
Generalizing the Model
When I showed Steve Peterson (at Lexidyne) my brand switching model, he told me there [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the last installment of a four-part series.  The first three parts can be accessed by clicking on the links below.<br />
 <a href="http://blog.iseesystems.com/modeling-tips/array-methods-1/">Methods for Using Arrays Effectively</a></em><em> <br />
 <a href="http://blog.iseesystems.com/modeling-tips/array-methods-2/">Modeling a Watershed with Arrays</a><a href="http://blog.iseesystems.com/modeling-tips/array-methods-3/"><br />
 Modeling Customers Switching Between Brands </a></em></p>
<p><strong>Generalizing the Model</strong></p>
<p>When I showed Steve Peterson (at <a href="http://www.lexidyne.com/">Lexidyne</a>) my brand switching model, he told me there is a more general version that separates the customer loss fraction from the fraction won by another competitor.  This has been presented in <a title="Pharmaceutical Product Strategy" href="http://www.lexidyne.com/Publications/publications.htm"><span style="text-decoration: underline;">Pharmaceutical Product Strategy</span></a> by Mark Paich, Corey Peck, and Jason Valant.</p>
<p>In my original formulation, the <em>switching probability</em> matrix was the product of these two variables.  However, in many practical cases, the data available comes from two different places and reflects these two separate components.  The revised model structure is shown below.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/10/image.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/10/image_thumb.png" border="0" alt="image" width="306" height="237" /></a></p>
<p>Instead of one composite <em>switching probability</em>, this model uses a <em>switching out probability</em> that is distinct from the <em>switching in probability</em>.  The <em>switching out probability</em> is a one-dimensional array that, for each product, contains the fraction of customers lost to rivals every time unit (in our case, month).  A sample for the five brands <em>A</em>, <em>B</em>, <em>C</em>, <em>D</em>, and <em>E</em> appears below.</p>
<table style="margin-left: 30px; width: 190px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr align="center">
<td width="83" valign="top">Brand</td>
<td width="105" valign="top">Fraction Lost</td>
</tr>
<tr align="center">
<td width="83" valign="top">A</td>
<td width="105" valign="top">0.091</td>
</tr>
<tr align="center">
<td width="83" valign="top">B</td>
<td width="105" valign="top">0.170</td>
</tr>
<tr align="center">
<td width="83" valign="top">C</td>
<td width="105" valign="top">0.046</td>
</tr>
<tr align="center">
<td width="83" valign="top">D</td>
<td width="105" valign="top">0.026</td>
</tr>
<tr align="center">
<td width="83" valign="top">E</td>
<td width="106" valign="top">0.071</td>
</tr>
</tbody>
</table>
<p style="padding-left: 60px;"><span style="font-size: x-small;"><strong>switching out probability</strong></span></p>
<p>We can see from this table that Brand <em>B</em> is losing 17% of its customers to rivals each and every month!  Whoever is managing that product had better do something quickly.</p>
<p>The other side of the story has to do with which brand the customers are switching to.  The <em>switching in probability</em> matrix contains, for each brand, the fraction of lost customers that migrate to a rival brand.  Thus, each row of this matrix <em>must</em> add up to one (100% of lost customers).  A sample appears below.</p>
<table style="margin-left: 30px; width: 400px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr align="center">
<td width="66" valign="top">From\To</td>
<td width="66" valign="top">A</td>
<td width="66" valign="top">B</td>
<td width="66" valign="top">C</td>
<td width="66" valign="top">D</td>
<td width="66" valign="top">E</td>
</tr>
<tr align="center">
<td width="66" valign="top">A</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.11</td>
<td width="66" valign="top">0.33</td>
<td width="66" valign="top">0.55</td>
<td width="66" valign="top">0.01</td>
</tr>
<tr align="center">
<td width="66" valign="top">B</td>
<td width="66" valign="top">0.18</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.29</td>
<td width="66" valign="top">0.41</td>
<td width="66" valign="top">0.12</td>
</tr>
<tr align="center">
<td width="66" valign="top">C</td>
<td width="66" valign="top">0.22</td>
<td width="66" valign="top">0.02</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.44</td>
<td width="66" valign="top">0.32</td>
</tr>
<tr align="center">
<td width="66" valign="top">D</td>
<td width="66" valign="top">0.04</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.77</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.19</td>
</tr>
<tr align="center">
<td width="66" valign="top">E</td>
<td width="66" valign="top">0.02</td>
<td width="66" valign="top">0.07</td>
<td width="66" valign="top">0.28</td>
<td width="66" valign="top">0.63</td>
<td width="66" valign="top">0.00</td>
</tr>
</tbody>
</table>
<p style="padding-left: 150px;"><span style="font-size: x-small;"><strong>switching in probability</strong></span></p>
<p>Note the diagonal will always be zero.</p>
<p>We can determine a lot of things from this table.  For example, brand <em>B</em> offers no competition to brand <em>D</em>, brand <em>D</em> is the biggest rival of all the other brands, and brand <em>C</em> is brand <em>D’</em>s biggest rival.</p>
<p><span id="more-2248"></span>Given these probabilities, we can find the number of customers <em>switching out</em> with the equation:</p>
<p style="padding-left: 30px;">switching_out_probability[Products]*Customers[Products]</p>
<p>We can then use the exact same formulation as previously for <em>switching to</em>:</p>
<p style="padding-left: 30px;">switching_out[Products]*switching_in_probability[Products, Products]</p>
<p>and <em>switching in</em>:</p>
<p style="padding-left: 30px;">ARRAYSUM(switching_to[*, Products])</p>
<p>Note that all customers that switch between two brands also pass through a stock called <em>Customers Switching</em>.  This was Steve Peterson&#8217;s idea:  If the equations in the model are correct and all rows of <em>switching in probability</em> add up to one, as they ought to, this stock will always be zero.  If it is ever non-zero, you immediately know there is something wrong with the numbers in <em>switching in probability</em>.  [Note:  Due to truncation errors during the simulation, the stock will not identically equal zero, so it has been globally scaled from –1 to +1 using the Range Specs.]</p>
<p><strong>Expanding the Model</strong></p>
<p>The structure given above models rivalry for existing customers quite well.  However, it does not include flows for new customers entering the market or existing customers leaving the market.  The full structure for acquiring and retaining customers looks like this (and is available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/10/switching2.itm">here</a>):</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/10/image1.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/10/image_thumb1.png" border="0" alt="image" width="378" height="272" /></a></p>
<p>New customers are gained by each brand based on their respective market shares.  Each brand also has a fraction of customers who are lost completely to this market, who perhaps move on to other technology or just stop using that type of product.</p>
<p>The simulation results are shown below for the case where all products start with 100 customers, no new customers are added, and the <em>loss rate</em> is zero.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/10/image4.png"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/10/image_thumb4.png" border="0" alt="image" width="496" height="286" /></a></p>
<p><strong>Switching Based on Market Shares</strong></p>
<p>There is one further variant to customer brand switching that may be useful in some circumstances (it is available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/10/switching3.itm">here</a>):</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/10/image3.png"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/10/image_thumb3.png" border="0" alt="image" width="338" height="217" /></a></p>
<p>In this version, rather than using a <em>switching in probability</em>, the number of customers gained each unit time is determined by a dynamic overall market share, the one-dimensional array <em>switching in market share</em>.  Whereas the previous model (above) includes a mechanism whereby brand <em>X</em> explicitly gains customers from brand <em>Y</em>, this model bases switching on market share dynamics; if a customer decides to stop using brand <em>X</em>, they might then go searching for a replacement and would be more likely pick the market leader.  Note the <em>switching in market share</em> can be the same as the brand’s overall <em>market share</em> or, as shown, it can reflect the different market shares between new customers (<em>market share</em>) and switching customers (<em>switching in market share</em>).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=OuqCaDcOxrQ:rhP4-opHMIU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=OuqCaDcOxrQ:rhP4-opHMIU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=OuqCaDcOxrQ:rhP4-opHMIU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/OuqCaDcOxrQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/array-methods-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/array-methods-4/</feedburner:origLink></item>
		<item>
		<title>Running Mean and Standard Deviation</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/8pT-uK-v0sk/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/running-mean-and-stddev/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 15:25:57 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[builtins]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[Version 9.1.2]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2139</guid>
		<description><![CDATA[This is an update to post published on August 31, 2009.  The attached model was updated to find negative means and an alternate method was included at the end.
I am frequently asked which built-in function gives either the running mean or running standard deviation of a model variable.  Unfortunately, there is no such built-in at [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is an update to post published on August 31, 2009.  The attached model was updated to find negative means and an alternate method was included at the end.</em></p>
<p>I am frequently asked which built-in function gives either the running mean or running standard deviation of a model variable.  Unfortunately, there is no such built-in at this time (no, that is not what MEAN() does).</p>
<p>Luckily, however, we can replicate the behavior we desire from built-in functions by creating a reusable module.  I can create a module that calculates a running average and a running standard deviation from any model variable.</p>
<p>When building a reusable module component, it is important to carefully define what the input to the module will be (i.e., what are the parameters to the built-in function) and what the output of the module will be (i.e., what is the result or return value of the built-in function).  In this particular case, the input will be the variable whose running average or running standard deviation we wish to find.  There are two outputs:  the running average and the running standard deviation.  Note we do not have to use both outputs all the time.</p>
<p>Thus, our new module can be used as shown below:</p>
<p><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/image_thumb.png" border="0" alt="image" width="372" height="189" /></p>
<p>Note the name of the module was chosen to give a meaningful context to the running mean and standard deviation variables, which have fixed names defined inside the reusable module.  As in this example, it is always a good idea to give the module outputs general names that make sense when qualified by a context (the module name).</p>
<p>The reusable module itself was built and tested in <em>iThink</em>, and can also be used in STELLA.  The input parameter was given an equation to allow the model to be completely tested and debugged before being reused.  The model appears below and can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/mean-and-stddev.itm"></a><a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/mean-and-stddev.itm">here</a>.</p>
<p><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/image_thumb1.png" border="0" alt="image" width="392" height="206" /></p>
<p>Note the input to the module is named <em>value</em>.  After importing the module, this will need to be assigned to the variable in question, <em>Cash</em> in the above example.  This can be done from outside the module by right-clicking on <em>Cash</em> and choosing “Module-&gt;Assign to”, or right-clicking on <em>value</em> and choosing “Module-&gt;Assign Input to”.  The outputs can be assigned in a similar way, or the Ghost tool can be used.</p>
<p>This method, while relatively easy to understand, does accurately compute the standard deviation when the mean of the <em>running sum of squares</em> is close in magnitude to the <em>running mean</em> squared.  An alternate method that does not suffer this problem was developed by Welford in 1962 and is implemented in the model that can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/mean-and-stddev2.itm">here</a>.</p>
<p>Finally, I am including a simple reusable module that finds the maximum value of a model variable across the entire run of a simulation.  It can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/maximum-value.itm">here</a>.  It uses a stock to hold the maximum value seen so far, and takes advantage of the fact that uniflows cannot be negative.  It is used the same way as the running mean and standard deviation module, but only has one output called <em>maximum</em>.</p>
<p>For more information about modules, consult the <em>iThink</em> and STELLA help files.  These on-line resources are also available:</p>
<p><a href="http://blog.iseesystems.com/training/features-introduced-in-stella-and-ithink-version-91/">Using Modules Webinar</a></p>
<p><a href="http://blog.iseesystems.com/modeling-tips/module-faqs/">Module FAQs</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=8pT-uK-v0sk:w3vGZBNJl-Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=8pT-uK-v0sk:w3vGZBNJl-Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=8pT-uK-v0sk:w3vGZBNJl-Q:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/8pT-uK-v0sk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/running-mean-and-stddev/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/running-mean-and-stddev/</feedburner:origLink></item>
		<item>
		<title>C02 in the Atmosphere Behaves Like a Bathtub</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/2U_62-yGjKI/</link>
		<comments>http://blog.iseesystems.com/news-announcements/c02-in-the-atmosphere-behaves-like-a-bathtub/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 18:21:26 +0000</pubDate>
		<dc:creator>Jeremy Merritt</dc:creator>
				<category><![CDATA[News & Announcements]]></category>
		<category><![CDATA[c02]]></category>
		<category><![CDATA[Climate Change]]></category>
		<category><![CDATA[netsim]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2239</guid>
		<description><![CDATA[Last Friday we hosted the first of a four-part web seminar series titled Modeling for Environmental Sustainability.  This first session was about how you can use simple bathtub dynamics to understand climate change.
 In the session, Chris Soderquist demonstrates how you can use embeddable simulations to help raise awareness and understanding about climate change.  Using [...]]]></description>
			<content:encoded><![CDATA[<p>Last Friday we hosted the first of a four-part web seminar series titled <em><a href="http://www.iseesystems.com/store/Training/ModelingSustainability/default.aspx" target="_blank">Modeling for Environmental Sustainability</a></em>.  This first session was about how you can use simple bathtub dynamics to understand climate change.</p>
<p><a href="http://www.iseesystems.com/community/WebSeminars/ModelingSustainability.aspx#sims"><img style="border: 0pt none; display: inline; margin-left: 0px; margin-right: 0px;" title="co2_bathtub" src="http://blog.iseesystems.com/wp-content/uploads/2009/10/co2_bathtub_thumb.png" border="0" alt="co2_bathtub" width="240" height="154" align="right" /></a> In the session, Chris Soderquist demonstrates how you can use embeddable simulations to help raise awareness and understanding about climate change.  Using simple bathtub dynamics, the &#8220;C02 Dynamic Indicator&#8221; simulation lets anyone experiment with the current set of policy proposals for capping and reducing emissions.</p>
<p>The live session was recorded and is now <a href="http://www.iseesystems.com/community/WebSeminars/ModelingSustainability.aspx" target="_blank">posted on our website</a>, along with two embedded simulations that you can run online.  All of the session materials are open source and we encourage you to link, embed and share them with others.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=2U_62-yGjKI:KCvvYLQWpGM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=2U_62-yGjKI:KCvvYLQWpGM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=2U_62-yGjKI:KCvvYLQWpGM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/2U_62-yGjKI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/news-announcements/c02-in-the-atmosphere-behaves-like-a-bathtub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/news-announcements/c02-in-the-atmosphere-behaves-like-a-bathtub/</feedburner:origLink></item>
		<item>
		<title>Modeling Customers Switching Between Brands</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/vrF-1n__PjU/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/array-methods-3/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 09:15:57 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[2D array]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[market dynamics]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2204</guid>
		<description><![CDATA[This is the third installment of a four-part series.  The other three parts can be accessed by clicking on the links below.
 Methods for Using Arrays Effectively 
 Modeling a Watershed with Arrays
 Modeling Customers Switching Between Brands &#8211; The General Case 
 
In the second post of this series, I showed how to selectively [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the third installment of a four-part series.  The other three parts can be accessed by clicking on the links below.<br />
 <a href="../modeling-tips/array-methods-1/">Methods for Using Arrays Effectively</a></em><em> <br />
 <a href="../modeling-tips/array-methods-2/">Modeling a Watershed with Arrays</a><br />
 <a href="../modeling-tips/array-methods-4/">Modeling Customers Switching Between Brands &#8211; The General Case </a></em></p>
<p><strong> </strong></p>
<p>In the second post of this series, I showed how to selectively pull information from an array in order to route water through a watershed.  In this post, I will use the exact same technique to move customers between different product brands.</p>
<p><strong>Switching Customers between Different Products</strong></p>
<p>Business models often need to model gaining customers from, and losing customers to, competing products in a relatively mature market (what Kim Warren, in his excellent book <span style="text-decoration: underline;">Strategy Management Dynamics</span>, calls “Type 2 Rivalry”).  These are often driven with statistical models developed through market research.  For this application, we need a matrix describing the probability of switching from product <em>A</em> to product <em>B</em> each time unit.  A sample appears in the table below.</p>
<table style="margin-left: 30px; width: 400px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr align="center">
<td width="66" valign="top">From\To</td>
<td width="66" valign="top">A</td>
<td width="66" valign="top">B</td>
<td width="66" valign="top">C</td>
<td width="66" valign="top">D</td>
<td width="66" valign="top">E</td>
</tr>
<tr align="center">
<td width="66" valign="top">A</td>
<td width="66" valign="top">0.000</td>
<td width="66" valign="top">0.010</td>
<td width="66" valign="top">0.030</td>
<td width="66" valign="top">0.050</td>
<td width="66" valign="top">0.001</td>
</tr>
<tr align="center">
<td width="66" valign="top">B</td>
<td width="66" valign="top">0.030</td>
<td width="66" valign="top">0.000</td>
<td width="66" valign="top">0.050</td>
<td width="66" valign="top">0.070</td>
<td width="66" valign="top">0.020</td>
</tr>
<tr align="center">
<td width="66" valign="top">C</td>
<td width="66" valign="top">0.010</td>
<td width="66" valign="top">0.001</td>
<td width="66" valign="top">0.000</td>
<td width="66" valign="top">0.020</td>
<td width="66" valign="top">0.015</td>
</tr>
<tr align="center">
<td width="66" valign="top">D</td>
<td width="66" valign="top">0.001</td>
<td width="66" valign="top">0.000</td>
<td width="66" valign="top">0.020</td>
<td width="66" valign="top">0.000</td>
<td width="66" valign="top">0.005</td>
</tr>
<tr align="center">
<td width="66" valign="top">E</td>
<td width="66" valign="top">0.001</td>
<td width="66" valign="top">0.005</td>
<td width="66" valign="top">0.020</td>
<td width="66" valign="top">0.045</td>
<td width="66" valign="top">0.000</td>
</tr>
</tbody>
</table>
<p style="padding-left: 100px;"><strong style="font-size: x-small;">switching probability (units: dimensionless)<br />
 </strong></p>
<p>To read this table, locate the product the customer is presently using in the left column (say, <em>B</em>).  Read across that row (the second row, in this case) until you find the product the customer is switching to (say, <em>C</em>).  The number in that cell (in this case, 0.05 or 5%) is the probability the customer will switch from the first product to the second (from <em>B</em> to <em>C</em>) in this time unit.  If the model is running in months, as ours is, this table indicates that 5% of customers using product <em>B</em> switch to product <em>C</em> <em>every</em> month.</p>
<p>Of course, the values in the table do not need to be constant.  Often each cell will contain a regression equation based on various product characteristics – including market share, marketing effort, product features, and product quality – that evolve over the course of the simulation.</p>
<p>Note the diagonal is zero.  This means customers do not switch from one product to the same product.</p>
<p>Note also that the sum in any row cannot exceed 1.0, which represents 100% of the customers using that product.  It is quite normal for it to be below 1.0 because we do not include people who are not switching.  Some modelers find it easier to always have each row add up to 1.0.  If you desire to do this, fill the diagonal with the difference between 1.0 and the sum of the other columns.  For example, to do this for product <em>A</em>, replace the top left cell with 1.0 &#8211; (0.01 + 0.03 + 0.05 + 0.001) = 0.909 [for you Beatles fans].</p>
<p><strong> </strong></p>
<p><span id="more-2204"></span><strong>Exploring the Model</strong></p>
<p>The model is slightly different from the watershed model in my previous post.  This model is driven by the probability of switching.  Thus, it is driven by the stock of customers for each product, while the watershed model was driven by the outflow from each reach.  This is shown below (and is available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/switching.itm">here</a>).</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/image6.png"><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/09/image_thumb6.png" border="0" alt="image" width="326" height="212" /></a></p>
<p>The two-dimensional array <em>switching</em> (called a “switching matrix”) is derived by multiplying customers by the switching probability:</p>
<p style="padding-left: 30px;">Customers[Products]*switching_probability[Products, Products]</p>
<p>This equation does not perform a traditional matrix multiplication, but multiplies each element of <em>Customers</em> (a one-dimensional column) by every element in the corresponding row of <em>switching probability</em> (two-dimensional).  [For more information about matrix arithmetic in <em>iThink</em> and STELLA, click <a href="../modeling-tips/matrix-arithmetic/">here</a>.]  As an example, given the <em>switching probability</em> above, if 100 customers use each of products <em>A</em>, <em>B</em>, <em>C</em>, <em>D</em>, and <em>E</em>, the values of <em>switching</em> with its row and column totals would be:</p>
<table style="margin-left: 30px; width: 470px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr align="center">
<td width="66" valign="top">From\To</td>
<td width="66" valign="top">A</td>
<td width="66" valign="top">B</td>
<td width="66" valign="top">C</td>
<td width="66" valign="top">D</td>
<td width="66" valign="top">E</td>
<td style="background-color: #f0f0f0;" width="66" valign="top">Total Out</td>
</tr>
<tr align="center">
<td width="66" valign="top">A</td>
<td width="66" valign="top">0.0</td>
<td width="66" valign="top">1.0</td>
<td width="66" valign="top">3.0</td>
<td width="66" valign="top">5.0</td>
<td width="66" valign="top">0.1</td>
<td style="background-color: #f0f0f0;" width="66" valign="top">9.1</td>
</tr>
<tr align="center">
<td width="66" valign="top">B</td>
<td width="66" valign="top">3.0</td>
<td width="66" valign="top">0.0</td>
<td width="66" valign="top">5.0</td>
<td width="66" valign="top">7.0</td>
<td width="66" valign="top">2.0</td>
<td style="background-color: #f0f0f0;" width="66" valign="top">17.0</td>
</tr>
<tr align="center">
<td width="66" valign="top">C</td>
<td width="66" valign="top">1.0</td>
<td width="66" valign="top">0.1</td>
<td width="66" valign="top">0.0</td>
<td width="66" valign="top">2.0</td>
<td width="66" valign="top">1.5</td>
<td style="background-color: #f0f0f0;" width="66" valign="top">4.6</td>
</tr>
<tr align="center">
<td width="66" valign="top">D</td>
<td width="66" valign="top">0.1</td>
<td width="66" valign="top">0.0</td>
<td width="66" valign="top">2.0</td>
<td width="66" valign="top">0.0</td>
<td width="66" valign="top">0.5</td>
<td style="background-color: #f0f0f0;" width="66" valign="top">2.6</td>
</tr>
<tr align="center">
<td width="66" valign="top">E</td>
<td width="66" valign="top">0.1</td>
<td width="66" valign="top">0.5</td>
<td width="66" valign="top">2.0</td>
<td width="66" valign="top">4.5</td>
<td width="66" valign="top">0.0</td>
<td style="background-color: #f0f0f0;" width="66" valign="top">7.1</td>
</tr>
<tr style="background-color: #f0f0f0;" align="center">
<td width="66" valign="top">Total In</td>
<td width="66" valign="top">4.2</td>
<td width="66" valign="top">1.6</td>
<td width="66" valign="top">12.0</td>
<td width="66" valign="top">18.5</td>
<td width="66" valign="top">4.1</td>
<td style="background-color: silver;" width="66" valign="top">40.4</td>
</tr>
</tbody>
</table>
<p style="padding-left: 180px;"><strong style="font-size: x-small;">switching (units: customers)<br />
 </strong></p>
<p>These numbers are derived by multiplying the entire row for each product by 100, the number of customers using that product (again, this example uses 100 customers for each product).  The number of customers switching from a given brand each month is the sum of that product&#8217;s row.  The number of customers switching to a given brand each month is the sum of that product&#8217;s column.</p>
<p>Thus, 9.1 existing customers switch from (stop using) product <em>A</em> this month while 4.2 customers switch to (start using) product <em>A</em> this month.  Product <em>A</em> will therefore have a net loss of 9.1 &#8211; 4.2 = 4.9 customers for the month.</p>
<p>The switching matrix directly drives both the loss of customers and the gain of customers.  The former, <em>losing_customers</em>, sums rows:</p>
<p style="padding-left: 30px;">ARRAYSUM(switching[Products, *])</p>
<p>while the latter, <em>gaining_customers</em>, sums columns:</p>
<p style="padding-left: 30px;">ARRAYSUM(switching[*, Products]).</p>
<p><strong>Running the Model</strong></p>
<p>The simulation results are shown below for the case where all products start with 100 customers and no new customers are added.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/image5.png"><img style="display: inline; border-width: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/09/image_thumb5.png" border="0" alt="image" width="496" height="286" /></a></p>
<p>Note the product with the largest net gain = Total In &#8211; Total Out, product <em>D</em>, gains the most market share over the course of the simulation, while that with the smallest net gain, product <em>B</em>, loses the most.</p>
<p>Next time, I will show a more general switching matrix formulation.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=vrF-1n__PjU:ZXLTXBKgH0I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=vrF-1n__PjU:ZXLTXBKgH0I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=vrF-1n__PjU:ZXLTXBKgH0I:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/vrF-1n__PjU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/array-methods-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/array-methods-3/</feedburner:origLink></item>
		<item>
		<title>Modeling a Watershed with Arrays</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/fbNOJmBCrFk/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/array-methods-2/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 14:29:22 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[2D array]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[spatial]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2184</guid>
		<description><![CDATA[This is the second installment of a four-part series.  The other three parts can be accessed by clicking on the links below.
 Methods for Using Arrays Effectively 
 Modeling Customers Switching Between Brands
 Modeling Customers Switching Between Brands – The General Case 
 
This is the second installment of a multipart series.  The first part [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the second installment of a four-part series.  The other three parts can be accessed by clicking on the links below.<br />
 <a href="../modeling-tips/array-methods-1/">Methods for Using Arrays Effectively</a></em><em> <br />
 <a href="../modeling-tips/array-methods-3/">Modeling Customers Switching Between Brands</a><br />
 <a href="../modeling-tips/array-methods-4/">Modeling Customers Switching Between Brands – The General Case </a></em></p>
<p><strong> </strong></p>
<p><em>This is the second installment of a multipart series.  The first part can be found by clicking <a href="http://blog.iseesystems.com/modeling-tips/array-methods-1/">here</a>. </em><em>Part 3 is available <a href="http://blog.iseesystems.com/modeling-tips/array-methods-3/">here</a>.</em></p>
<p>In the first post of this series, I showed how to conditionally pull information from an array.  In this post, I will extend this concept to show how to route information through an arrayed model.  This is especially useful in spatial modeling applications.</p>
<p><strong>Routing Water Through a Watershed</strong></p>
<p>A common ecology application is the modeling of a watershed.  Part of such a model will necessarily involve a network of stream or river segments – called <em>reaches</em> – which feed each other.  It is desirable to implement this in a way that makes it easy to modify the reach network.  Using an explicit stock-flow network makes this very difficult.  However, it is relatively straightforward to use arrays of stocks and flows to build an easily configurable network.</p>
<p>Imagine a small watershed broken down into reaches as shown below:</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/clip_image0016.gif"><img style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" title="clip_image001[6]" src="http://blog.iseesystems.com/wp-content/uploads/2009/09/clip_image0016_thumb.gif" border="0" alt="clip_image001[6]" width="236" height="176" /></a></p>
<p>For our purposes, a new reach will need to be created at every junction point.  Therefore, in this example and from a topological point-of-view, it is not strictly necessary to treat reach 4 separately from reach 2 nor reach 5 separately from reach 3, but reaches 2 and 3 must be separate from reach 1.  There are, of course, other reasons to separate reach 4 from 2 and reach 5 from 3, for example, slope, channel width, length, etc.</p>
<p>Every reach flows into exactly one other reach at its head, but many reaches can flow into the head of the same reach.  This requires a many-to-one representation of the reach network.  This is accomplished quite easily with a routing map which, for each reach, contains the number of the reach that this reach flows into.  We also need someway to signify the outlet.  Since reach numbers start at one, we can use zero to signify the outlet.  Using these rules, the above network is completely represented in the following routing map:</p>
<table style="width: 180px; margin-left: 30px;" border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td width="89" valign="top"><span style="text-decoration: underline;">Reach</span></td>
<td width="89" valign="top"><span style="text-decoration: underline;">Flows into</span></td>
</tr>
<tr>
<td width="89" valign="top">1</td>
<td width="89" valign="top">0</td>
</tr>
<tr>
<td width="89" valign="top">2</td>
<td width="89" valign="top">1</td>
</tr>
<tr>
<td width="89" valign="top">3</td>
<td width="89" valign="top">1</td>
</tr>
<tr>
<td width="89" valign="top">4</td>
<td width="89" valign="top">2</td>
</tr>
<tr>
<td width="89" valign="top">5</td>
<td width="89" valign="top">3</td>
</tr>
</tbody>
</table>
<p>The nice thing about this representation is that it fits nicely into a one-dimensional array where the array index is the reach number and the reach it flows into is the value stored in that array element.</p>
<p>The model itself uses one stock to represent each reach.  <em> </em>That stock has one inflow for water entering the reach and one outflow for water leaving the reach: <em>(Download the zipped STELLA model <a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/routing.zip">here</a>) </em></p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/image.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/09/image_thumb.png" border="0" alt="image" width="387" height="195" /></a></p>
<p><span id="more-2184"></span><strong>The Routing Magic</strong></p>
<p>The outflow of one reach is directed to the next through the two-dimensional array <em>route water</em>.  This array is arranged with one outflow per row and one inflow per column.  Thus, the outflows are placed one per row in the proper column for the reach it is headed for.  This means there can only be one non-zero value in each row.  For example, at one point in the simulation, the array <em>route water</em> contains these values:</p>
<div>
<table style="width: 400px; margin-left: 30px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr align="center">
<td width="66" valign="top">From\To</td>
<td width="66" valign="top">1</td>
<td width="66" valign="top">2</td>
<td width="66" valign="top">3</td>
<td width="66" valign="top">4</td>
<td width="66" valign="top">5</td>
</tr>
<tr align="center">
<td width="66" valign="top">1</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
</tr>
<tr align="center">
<td width="66" valign="top">2</td>
<td width="66" valign="top">1.04</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
</tr>
<tr align="center">
<td width="66" valign="top">3</td>
<td width="66" valign="top">0.87</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
</tr>
<tr align="center">
<td width="66" valign="top">4</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.33</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
</tr>
<tr align="center">
<td width="66" valign="top">5</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.24</td>
<td width="66" valign="top">0.00</td>
<td width="66" valign="top">0.00</td>
</tr>
</tbody>
</table>
</div>
<p>As expected, there is at most one non-zero value for each row.  There is no non-zero value in the first row because that corresponds to the outlet, so no water is routed to another reach.  The value in the second row is the outflow from reach 2, the value in the third is the outflow from reach 3, and so on.  The columns sum to the amount of water being fed to the given reach.  So reach 1 will receive 1.04 + 0.87 = 1.91, reach 2 will receive 0.33, and reach 3 will receive 0.24.  Reaches 4 and 5 receive no inflow because they are at the top of the watershed (there are no reaches feeding into them).</p>
<p>The equation that does this magic is:</p>
<p style="padding-left: 30px">IF (routing_map[Reaches] = ARRAYIDX(2)) <br />
 THEN outflow[Reaches] <br />
 ELSE 0</p>
<p>This says that when the column number (ARRAYIDX(2)) equals the reach number of the downstream reach (routing_map[Reaches]), fill the cell with that reach’s outflow.  Note that we at most define one downstream reach for each reach, so this will only be non-zero in only one column.  In this way, we avoid violating conservation of water.</p>
<p>The inflow then needs to sum the columns to get the total flow directed into that reach:</p>
<p style="padding-left: 30px">ARRAYSUM(route_water[*,Reaches])</p>
<p>The outflow at the stream outlet is captured in the converter <em>final outflow</em>, which has the equation:</p>
<p style="padding-left: 30px">ARRAYVALUE(outflow[*], ARRAYMINIDX(routing_map[*]))</p>
<p>This picks up the outflow value of the reach that has the smallest entry in the routing map.  Since we defined the outlet to have the smallest value, zero, as long as we do not accidentally give two entries a zero value in the routing map, ARRAYMINIDX will find the array index (i.e., reach number) of the outlet.</p>
<p>With constant precipitation, the behavior of the model at the end of a storm event appears below:</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/09/image1.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/09/image_thumb1.png" border="0" alt="image" width="496" height="286" /></a></p>
<p><strong>Extending the Model<br />
 </strong></p>
<p>This particular example has two simplifications that are easy to extend.  The average time it takes water to flow through a reach (<em>avg reach length in minutes</em>) is constant, but can be made an array with different values for each reach.  These values can also be calculated as the simulation progresses based on existing conditions in the reach.  There is also a constant precipitation to all reaches all the time to keep water flowing into the system.  This can be replaced by an array and a more intricate model of how precipitation flows into the stream over the landscape, or by a simple time series using a graphical function.</p>
<p>One final note about the model:  I chose a stock with an average residence time to represent each reach.  Under some circumstances, this may generate results that are confusing.  For example, because it is an <em>average</em> residence time that follows an exponential distribution, some water that appears at the top of a reach will immediately exit from the bottom of the reach and other water that enters the reach will exit long after the average time has expired.  In individual circumstances, for example a single short storm event, this representation may not match the real world very well.  However, on average, over a long enough period of time, it matches the real behavior quite closely.</p>
<p>One alternative that enforces an exact delay for water moving across each reach is a conveyor.  However, a conveyor is discrete in its behavior, so the model will not behave as true water flow does, i.e., continuously.  Three stocks, i.e., a third-order material delay, could also be used for each reach to reduce the amount of entering water that exits immediately.  Although this does cause the model to retain more water at the start of an event, it also leads to water being lost more quickly at the end.</p>
<p>Next time, I will use this same structure to model customers switching between different brands.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=fbNOJmBCrFk:DN--6pkYvWc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=fbNOJmBCrFk:DN--6pkYvWc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=fbNOJmBCrFk:DN--6pkYvWc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/fbNOJmBCrFk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/array-methods-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/array-methods-2/</feedburner:origLink></item>
		<item>
		<title>Methods for Using Arrays Effectively, Part 1</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/X6IZ613So-E/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/array-methods-1/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 19:33:55 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[2D array]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[iThink/STELLA]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2150</guid>
		<description><![CDATA[This is the first installment of a four-part series.  The remaining three parts can be accessed by clicking on the links below.
 Modeling a Watershed with Arrays
 Modeling Customers Switching Between Brands
 Modeling Customers Switching Between Brands – The General Case 
 
Using arrays can be quite intimidating for most people. Many times, it is [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is the first installment of a four-part series.  The remaining three parts can be accessed by clicking on the links below.<br />
 <a href="../modeling-tips/array-methods-2/">Modeling a Watershed with Arrays</a><br />
 <a href="../modeling-tips/array-methods-3/">Modeling Customers Switching Between Brands</a><br />
 <a href="../modeling-tips/array-methods-4/">Modeling Customers Switching Between Brands – The General Case </a></em></p>
<p><strong> </strong></p>
<p>Using arrays can be quite intimidating for most people. Many times, it is difficult to discover the correct way to formulate a problem in terms of arrays, especially when trying to do so in terms of single equations that can be applied to all elements of the array.</p>
<p>Consider the case where you might wish to count the number of occurrences of a value in an array. This can arise in many applications that need to track attributes, but is prevalent in spatially-explicit business applications. In such an application, you may associate a product code with a location and then want a count of the products of a given type. The following examples demonstrate a common way to extract conditional information from an array.</p>
<p><strong>Finding the Number of Stations with a Given Status</strong></p>
<p>Imagine you have a two-dimensional grid of fire stations in a city, called <em>Stations</em>, that stores one of four statuses:</p>
<p style="padding-left: 30px">0: no station in this sector<br />
 1: ready     <br />
 2: away on a call     <br />
 3: refitting</p>
<p>You consider the number of fire stations ready at any given moment to be an important metric. To calculate this, connect <em>Stations</em> to another two-dimensional array of the same size called <em>ready stations</em>. This will have a one in an array element if the station for that quadrant is ready and a zero otherwise.  Its equation is:</p>
<p style="padding-left: 30px">IF Stations[Y, X] = 1 THEN 1 ELSE 0  { station ready? }</p>
<p>Note this equations uses <em>dimension names</em> (<em>i.e., Stations</em>[<em>Y</em>, <em>X</em>]) rather than <em>element names</em> (e.g., <em>Stations</em>[1, 2]). This allows you to create just one equation for the entire array (with &#8220;Apply to All&#8221; turned on), rather than a separate equation for each individual array element (with &#8220;Apply to All&#8221; turned off). When &#8220;Apply to All&#8221; is turned on, the equation for each element of the array is automatically generated by substituting that element&#8217;s dimensions for the dimension name in the given equation. All of the examples in this post use dimension names.</p>
<p>The total number of ready stations is now just the sum of all of the elements in the array <em>ready stations</em>.  This is easily calculated by connecting <em>ready stations</em> to a scalar converter named <em>total ready stations</em> that has the equation</p>
<p style="padding-left: 30px">ARRAYSUM(ready_stations[*, *])</p>
<p>The model is shown below and can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/stations.itm">here</a>.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/image2.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/image_thumb2.png" border="0" alt="image" width="313" height="127" /></a></p>
<p>This general method can be used anytime we need to count the number of elements in an array based on some condition.  First, create an array that has its elements set to one if the array-based condition is met and zero otherwise (IF condition THEN 1 ELSE 0).  Then create a converter to sum the elements of this new array (using ARRAYSUM).  Remember to turn &#8220;Apply to All&#8221; on and use <em>dimension names</em> in the condition rather than <em>element names</em>.</p>
<p><span id="more-2150"></span></p>
<p><strong>Finding the Number of Stations with Each Status</strong></p>
<p>We can extend this method to map data from an array indexed by one attribute (or dimension), say location, to another array indexed by a different attribute, say status. Imagine now that instead of just counting how many stations are ready, you want to know how many stations have each status.</p>
<p>One way to do this is to extend the structure above to separately count the number of stations in each status, as shown below.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/image4.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/image_thumb4.png" border="0" alt="image" width="321" height="226" /></a></p>
<p>In this case, <em>away stations</em> and <em>refitting stations</em> have the following formulas, respectively:</p>
<p style="padding-left: 30px;">IF Stations[Y, X] = 2 THEN 1 ELSE 0     { station away? }<br />
 IF Stations[Y, X] = 3 THEN 1 ELSE 0  { station refitting? }</p>
<p><strong>Walking Through a Specific Example</strong></p>
<p>Let’s look at what happens in this model if array of fire stations is only one-dimensional, <em>Stations</em>[<em>Location</em>], and each location is named. This eliminates the “no station in this sector” status. Consider a five-location fire department with the following statuses in each location, held in the array <em>Stations</em>:</p>
<div>
<table style="margin-left: 30px; width: 200px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr>
<td width="100" valign="top"><strong>Location</strong></td>
<td width="100" valign="top"><strong>Status</strong></td>
</tr>
<tr>
<td width="100" valign="top">North</td>
<td width="100" valign="top">1 (ready)</td>
</tr>
<tr>
<td width="100" valign="top">South</td>
<td width="100" valign="top">3 (refitting)</td>
</tr>
<tr>
<td width="100" valign="top">Central</td>
<td width="100" valign="top">1 (ready)</td>
</tr>
<tr>
<td width="100" valign="top">East</td>
<td width="100" valign="top">2 (away)</td>
</tr>
<tr>
<td width="100" valign="top">West</td>
<td width="100" valign="top">1 (ready)</td>
</tr>
</tbody>
</table>
</div>
<p>The structure above would generate the following values in the three separate arrays <em>ready stations</em>, <em>away stations</em>, and <em>refitting stations</em>. Their respective sums, in the three corresponding &#8220;<em>total </em>status<em> stations&#8221;</em> converters, are shown at the bottom.</p>
<table style="margin-left: 30px; width: 339px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr>
<td width="108" valign="bottom"><strong>Location</strong></td>
<td width="77" align="center" valign="top"><strong><em>ready              <br />
 stations</em></strong></td>
<td width="77" align="center" valign="top"><strong><em>away              <br />
 stations</em></strong></td>
<td width="75" align="center" valign="top"><em><strong>refitting            <br />
 stations</strong></em></td>
</tr>
<tr>
<td width="108" align="left" valign="top">North</td>
<td width="77" align="center" valign="top">1</td>
<td width="77" align="center" valign="top">0</td>
<td width="75" align="center" valign="top">0</td>
</tr>
<tr>
<td width="108" align="left" valign="top">South</td>
<td width="77" align="center" valign="top">0</td>
<td width="77" align="center" valign="top">0</td>
<td width="75" align="center" valign="top">1</td>
</tr>
<tr>
<td width="108" align="left" valign="top">Central</td>
<td width="77" align="center" valign="top">1</td>
<td width="77" align="center" valign="top">0</td>
<td width="75" align="center" valign="top">0</td>
</tr>
<tr>
<td width="108" align="left" valign="top">East</td>
<td width="77" align="center" valign="top">0</td>
<td width="77" align="center" valign="top">1</td>
<td width="75" align="center" valign="top">0</td>
</tr>
<tr>
<td width="108" align="left" valign="top">West</td>
<td width="77" align="center" valign="top">1</td>
<td width="77" align="center" valign="top">0</td>
<td width="75" align="center" valign="top">0</td>
</tr>
<tr>
<td width="108" align="left" valign="top"><strong><em>total </em>status <em>stations</em></strong></td>
<td width="77" align="center" valign="top"><strong>3</strong></td>
<td width="77" align="center" valign="top"><strong>1</strong></td>
<td width="75" align="center" valign="top"><strong>1</strong></td>
</tr>
</tbody>
</table>
<p>While this method works, it does not have a very flexible structure. It requires structural changes whenever a new status is added (or removed) and also needs to be customized for every individual application. There are also applications (for example, tracking products) where it is necessary to move between arrays that are indexed by location, as <em>Stations</em> is, and arrays that are indexed by the data within the location, in this case by status.</p>
<p><strong>A More General Solution</strong></p>
<p>If we define another array dimension called <em>Status</em>, with element names <em>Ready</em>, <em>Away</em>, and <em>Refitting</em> that correspond to the numeric statuses 1, 2, and 3, we can represent this same solution in one two-dimensional array <em>station map</em>[<em>Location</em>, <em>Status</em>]:</p>
<div>
<table style="margin-left: 30px; width: 299px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="rows">
<tbody>
<tr>
<td width="71" align="left" valign="top"><strong>Location</strong></td>
<td width="71" align="center" valign="top"><strong>Ready</strong></td>
<td width="71" align="center" valign="top"><strong>Away</strong></td>
<td width="84" align="center" valign="top"><strong>Refitting</strong></td>
</tr>
<tr>
<td width="71" align="left" valign="top">North</td>
<td width="71" align="center" valign="top">1</td>
<td width="71" align="center" valign="top">0</td>
<td width="84" align="center" valign="top">0</td>
</tr>
<tr>
<td width="71" align="left" valign="top">South</td>
<td width="71" align="center" valign="top">0</td>
<td width="71" align="center" valign="top">0</td>
<td width="84" align="center" valign="top">1</td>
</tr>
<tr>
<td width="71" align="left" valign="top">Central</td>
<td width="71" align="center" valign="top">1</td>
<td width="71" align="center" valign="top">0</td>
<td width="84" align="center" valign="top">0</td>
</tr>
<tr>
<td width="71" align="left" valign="top">East</td>
<td width="71" align="center" valign="top">0</td>
<td width="71" align="center" valign="top">1</td>
<td width="84" align="center" valign="top">0</td>
</tr>
<tr>
<td width="71" align="left" valign="top">West</td>
<td width="71" align="center" valign="top">1</td>
<td width="71" align="center" valign="top">0</td>
<td width="84" align="center" valign="top">0</td>
</tr>
</tbody>
</table>
</div>
<p>The array <em>station map</em> allows us to map stations directly to their statuses. Each row of the map represents one station. By definition, there can only be one “1” in each row because a station can only have one status. The sum of each row is the number of statuses that are assigned to that station, which must always be one. Each column of the map represents one status. Multiple “1”s can appear in the columns because many stations can have the same status. The sum of each column is the number of stations assigned to that status, the value we are trying to determine.</p>
<p>Note the similarity between this two-dimensional array and the preceding table that shows the contents of the individual one-dimensional arrays <em>ready stations, away stations</em>, and <em>refitting stations</em>.  Each column of <em>station map</em> corresponds to one of these one-dimensional arrays.</p>
<p>The model for this more general solution is shown below and can be downloaded by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/stations2.itm">here</a>.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/image3.png"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/image_thumb3.png" border="0" alt="image" width="306" height="130" /></a></p>
<p>The equation for <em>station map</em>[<em>Location</em>, <em>Status</em>], which will map <em>Stations</em> as illustrated above, is</p>
<p style="padding-left: 30px;">IF Stations[Location] = ARRAYIDX(2) THEN 1 ELSE 0</p>
<p>Note the use of ARRAYIDX() to parameterize the status we are interested in for this array element. The parameter to ARRAYIDX, 2, gives the index of the second dimension for this array element, i.e., the index that corresponds to <em>Status</em>.  Since Apply to All is on, this will become the desired status for each array element.</p>
<p>The number of stations with each status is calculated in the one-dimensional converter <em>station totals</em>[<em>Status</em>] using the equation</p>
<p style="padding-left: 30px;">ARRAYSUM(station_map[*, Status])</p>
<p>This equation sums the columns of <em>station map</em>. For the above example, <em>station totals</em> will be filled with the values 3 (<em>Ready</em>), 1 (<em>Away</em>), and 1 (<em>Refitting</em>). Note we have used an intermediate two-dimensional array, <em>station map</em>, to properly map our data from a one-dimensional array indexed by the attribute <em>Location</em> to another one-dimensional array indexed by the attribute <em>Status</em>.</p>
<p>Next time, I will expand this concept to create general routing structures.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 244px; width: 1px; height: 1px;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"MS Mincho"; 	panose-1:2 2 6 9 4 2 5 8 3 4; 	mso-font-alt:"ＭＳ 明朝"; 	mso-font-charset:128; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face 	{font-family:"\@MS Mincho"; 	panose-1:2 2 6 9 4 2 5 8 3 4; 	mso-font-charset:128; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610612033 1757936891 16 0 131231 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"MS Mincho";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;">The total number of ready stations is now just the sum of all of the elements in array <em>ready stations</em>. <span> </span>This is easily calculated by connecting <em>ready stations</em> to a scalar converter named <em>total ready stations</em> with the equation</span></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=X6IZ613So-E:iudilykSmQQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=X6IZ613So-E:iudilykSmQQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=X6IZ613So-E:iudilykSmQQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/X6IZ613So-E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/array-methods-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/array-methods-1/</feedburner:origLink></item>
		<item>
		<title>Download the isee NetSim Template Model</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/7VQBl2NtMck/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/download-the-netsim-model-template/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 17:12:11 +0000</pubDate>
		<dc:creator>Jeremy Merritt</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[netsim]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2094</guid>
		<description><![CDATA[A few months ago, we designed an interface template for our isee NetSim sample models.  The template is an iThink/STELLA model in which the interface layer is designed to look like a website:

Navigation buttons are styled to look like hyperlinks instead of push buttons. 
Push buttons are used to perform actions, such as running the [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago, we designed an interface template for our isee NetSim sample models.  The template is an <em>iThink</em>/STELLA model in which the interface layer is designed to look like a website:</p>
<ul>
<li>Navigation buttons are styled to look like hyperlinks instead of push buttons. </li>
<li>Push buttons are used to perform actions, such as running the simulation.</li>
<li>Tabs along the top of each page let the viewer know which section they are in, as well as providing a way to quickly jump to any section. </li>
</ul>
<div class="wp-caption aligncenter" style="width: 472px"><a href="http://forio.com/service/netsims/netsim/success/index.html" target="_blank"><img class="  " style="border: 0pt none; display: block;" title="An example of the interface template applied to a model published online" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/CropperCapture34_thumb.png" border="0" alt="CropperCapture[34]" width="462" height="309" /></a><p class="wp-caption-text">An example of the interface template applied to a model published online</p></div>
<p><br class="spacer_" /></p>
<p>You can download the template model and use it as a starting point for creating interfaces to models you want to publish online.</p>
<p><a href="http://bit.ly/10eqVo">Download the template for STELLA</a></p>
<p><a href="http://bit.ly/WtfKM">Download the template for iThink</a></p>
<p><strong>How to use the template</strong></p>
<p>The template model consists of four interface pages: <em>Home</em>, <em>Background</em>, <em>Explore Model</em> and <em>Simulate</em>.  Navigation buttons to and from each page are already setup within the interface.  You can customize each section by replacing the placeholder text.  The pages are a starting point that establishes a website-like look and feel.</p>
<p>The easiest way to apply the template model&#8217;s interface to your own model is to simply copy and paste the pages.</p>
<ol>
<li>Open your own model and switch to the Interface layer.  Choose &#8216;Interface Prefs&#8217; from the Interface menu and make sure the &#8216;Show Pages’ option is selected.  Set Page Size to 800&#215;600.  This will allow you to see the page boundaries as you apply the template.</li>
<li>Open the template model and from the Interface layer choose the Edit menu –&gt; Select All, then Edit menu –&gt; Copy to copy all of the pages to the clipboard. </li>
<li>Go back to the interface layer of your model and choose Edit menu –&gt; Paste.</li>
</ol>
<p>When you have pasted the pages into your model, they will probably not be lined up correctly within the page boundaries.  The dashed lines show the boundaries of each page.  Using these dashed lines as a guide, use the arrow keys on your keyboard to make the pasted pages line up properly.</p>
<p>Now you can customize the title and text in each page.  Add a picture to the home page and build a control panel.  If you want, you can use the hyperlink button on the ‘Background’ page to link to online information, (PDFs, other models, Wikipedia, etc.).  Consider building a storytelling sequence on the ‘Explore Model’ page to unfurl the model a chunk at a time.  These are just a few customizations you can make.  Take a look at some of our <a href="http://www.iseesystems.com/community/downloads/NetsimModels.aspx">sample models published online</a> with isee NetSim for ideas.</p>
<p>If you publish some models online that use the template, we’d love to see them!  Leave a link in the comments so we can check them out!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=7VQBl2NtMck:IfIFq_LeyDE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=7VQBl2NtMck:IfIFq_LeyDE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=7VQBl2NtMck:IfIFq_LeyDE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/7VQBl2NtMck" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/download-the-netsim-model-template/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/download-the-netsim-model-template/</feedburner:origLink></item>
		<item>
		<title>Rethinking ‘Cash for Clunkers’</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/ECkZBJdJFN0/</link>
		<comments>http://blog.iseesystems.com/stories-from-the-field/rethinking-cash-for-clunkers/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 18:40:24 +0000</pubDate>
		<dc:creator>Jeremy Merritt</dc:creator>
				<category><![CDATA[Stories from the Field]]></category>
		<category><![CDATA["cash for clunkers"]]></category>
		<category><![CDATA[feebates]]></category>
		<category><![CDATA[netsim]]></category>
		<category><![CDATA[policy]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2023</guid>
		<description><![CDATA[There is no doubt that the Car Allowance Rebate System, or “Cash for Clunkers” program has proved to be popular with American car buyers.  So popular in fact, that it ran out of cash within the first six days of processing claims.  This news got me thinking about the program in a more systemic way.
Whether [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-2034" title="C.A.R.S" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/cars_logo1.png" alt="C.A.R.S" width="209" height="66" />There is no doubt that the <a href="http://www.cars.gov" target="_blank">Car Allowance Rebate System</a>, or “Cash for Clunkers” program has proved to be popular with American car buyers.  So popular in fact, that it ran out of cash within the first <em>six</em> days of processing claims.  This news got me thinking about the program in a more systemic way.</p>
<p>Whether you think of the program as a stimulus for the economy or the environment, it cannot continue to operate without funds.  Congress had to quickly approve another $2 billion for the program when the initial $1 billion appropriation was exhausted in less than a week.  The rebate fund lacks an inflow of cash to offset the outflow of payments.</p>
<p>I wrote about a STELLA model of a <a href="http://blog.iseesystems.com/education/feebates/" target="_blank">self-financing program to promote cleaner vehicle sales</a> in May.  The “Feebates” model uses fees charged on sales of vehicles that have high pollution rates to finance rebates for cleaner vehicles.  I asked the Feebates model author, Andrew Ford what he thought about “Cash for Clunkers”.  He sent me an article he co-authored with Todd BenDor titled “<a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/BenDor_Ford_Final.pdf" target="_blank">Simulating a combination of feebates and scrappage incentives to reduce automobile emissions</a>”.  Basically, the article describes a feebates model with a “cash for clunkers” type of rebate added to promote scrapping older vehicles.  The article was published in the journal <em>Energy, 31(2006)</em>, 1197-1214.</p>
<p><a href="http://forio.com/service/netsims/netsim/clunkers/index.html" target="_blank"><img class="alignright" style="border: 0pt none; display: inline; margin-left: 10px; margin-right: 0px;" title="Cash for clunkers" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/3808715790_393164d861.jpg" border="0" alt="3808715790_393164d861" width="240" height="180" align="right" /></a>Mr. BenDor was kind enough to send me the STELLA model so we could publish it to the web with isee Netsim.  We thought this would be a great way to start some discussion around the Clunkers program, public policy and using simulations to facilitate decision making.</p>
<p><strong><a href="http://forio.com/service/netsims/netsim/clunkers/index.html" target="_blank">Click here to run the simulation online.</a></strong></p>
<ul>
<li>Can you design a policy that stimulates the economy <em>and</em> reduces emissions? </li>
<li>This simulation uses fees to fund the program instead of deficit spending.  What other sources of revenue could we consider? </li>
<li>Many states levy a “sin tax” on tobacco and alcohol.  How would the public react to fees on high-pollution vehicles? </li>
</ul>
<p>Post your answers in the comment section below.</p>
<p><em><span style="font-size: xx-small;">Image credit: </span></em><a title="http://www.flickr.com/photos/threadedthoughts/3808715790/" href="http://www.flickr.com/photos/threadedthoughts/3808715790/"><em><span style="font-size: xx-small;">http://www.flickr.com/photos/threadedthoughts/3808715790/</span></em></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=ECkZBJdJFN0:WGwTCryf9no:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=ECkZBJdJFN0:WGwTCryf9no:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=ECkZBJdJFN0:WGwTCryf9no:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/ECkZBJdJFN0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/stories-from-the-field/rethinking-cash-for-clunkers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/stories-from-the-field/rethinking-cash-for-clunkers/</feedburner:origLink></item>
		<item>
		<title>2009 Barry Richmond Scholarship Award</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/jxI2RaftvMw/</link>
		<comments>http://blog.iseesystems.com/news-announcements/2009-barry-richmond-scholarship-award/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 13:59:05 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[News & Announcements]]></category>
		<category><![CDATA[Barry Richmond]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[scholarship]]></category>
		<category><![CDATA[System Dynamics Society]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2004</guid>
		<description><![CDATA[The Barry Richmond Scholarship Award was established in 2007 by isee systems to honor and continue the legacy of our founder, Barry Richmond.  Barry was devoted to helping others become better “Systems Citizens”.  It was his mission to make Systems Thinking and System Dynamics accessible to people of all ages and in all fields.
The award [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_2007" class="wp-caption alignright" style="width: 199px"><img class="size-full wp-image-2007   " title="Marcus Robinson and James Ranney accept scholarship" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/br_scholarship.jpg" alt="Marcus Robinson and James Ranney accept 2009 Barry Richmond Scholarship Award" width="189" height="144" /><p class="wp-caption-text">Marcus Robinson &amp; James Ranney accept 2009 Barry Richmond Scholarship Award</p></div>
<p>The Barry Richmond Scholarship Award was established in 2007 by isee systems to honor and continue the legacy of our founder, Barry Richmond.  Barry was devoted to helping others become better “Systems Citizens”.  It was his mission to make Systems Thinking and System Dynamics accessible to people of all ages and in all fields.</p>
<p>The award is presented annually at the International System Dynamics Conference to an individual whose work demonstrates a desire to expand the field or to apply it to current social issues.</p>
<p>Barry had a particular passion for expanding the field into K-12 education.  He worked closely with teachers and young people at all levels to incorporate Systems Thinking tools and methodologies into the classroom.  With this in mind, it was a great pleasure to present this year’s award to Marcus Robinson and James Ranney, two students from Wilson High School in Portland, Oregon.</p>
<div id="attachment_2008" class="wp-caption alignleft" style="width: 132px"><img class="size-medium wp-image-2008     " style="margin-top: 10px; margin-bottom: 10px;" title="Marcus Robinson presents at SD Conference" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/br_scholarship1-248x300.jpg" alt="Marcus Robinson presents at SD Conference" width="122" height="147" /><p class="wp-caption-text">Marcus Robinson presents at SD Conference</p></div>
<p>The scholarship committee was very impressed by the quality of the models and technical papers that these students submitted.   Both high school seniors were enrolled in Diana Fisher’s modeling class this past year.  For their final project assignment, they were asked to explore a topic of their own choosing.</p>
<p>Inspired by a video of the PBS NOVA program “<a title="Dimming the Sun" href="http://www.pbs.org/wgbh/nova/sun/" target="_blank"><em>Dimming the Sun</em></a>”, Marcus chose to create a model that would help to answer the question “<em>How Much do Carbon Emissions Need to be Reduced in Order to Stop Global Warming?</em>” To download Marcus&#8217; paper, <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/MarcusFinalPaper.pdf">click here</a>.</p>
<p>After a run-in with a large frog at his summer camp, James was interested in answering &#8220;<em>What is the Impact of Introducing an Invasive Species into an Ecosystem?</em>&#8221; – in this case, the bullfrog into the Pacific Northwest. To download James&#8217; paper, <a href="http://blog.iseesystems.com/wp-content/uploads/2009/08/JamesRanneyFinalPaper.pdf">click here</a>.</p>
<div id="attachment_2009" class="wp-caption alignright" style="width: 206px"><img class="size-medium wp-image-2009   " style="margin-top: 10px; margin-bottom: 10px;" title="James Ranney presents during K-12 poster session" src="http://blog.iseesystems.com/wp-content/uploads/2009/08/br_scholarship2-280x195.jpg" alt="James Ranney presents during K-12 poster session" width="196" height="137" /><p class="wp-caption-text">James Ranney presents during K-12 poster session</p></div>
<p>Both students presented their work at a parallel session during the conference and again at a special K-12 poster session.  What a delight it was to see how empowering modeling real-world issues is for young people and the enthusiasm they share for their work.</p>
<p>Thank you to the society for making a special effort to serve the K-12 community and provide opportunities for partnership.  Congratulations Marcus and James, Barry would be very proud!</p>
<p>Applications for the 2010 Barry Richmond Scholarship Award will be available on the <a href="http://www.iseesystems.com/community/news/RichmondScholarship.aspx" target="_blank">isee systems</a> and <a href="http://www.systemdynamics.org/" target="_blank">System Dynamics Society</a> web sites. Check those sites for more information.</p>
<p><br class="spacer_" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=jxI2RaftvMw:ujUaBwOhBoI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=jxI2RaftvMw:ujUaBwOhBoI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=jxI2RaftvMw:ujUaBwOhBoI:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/jxI2RaftvMw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/news-announcements/2009-barry-richmond-scholarship-award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/news-announcements/2009-barry-richmond-scholarship-award/</feedburner:origLink></item>
		<item>
		<title>System Dynamics Conference in Albuquerque</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/zOoV7oZrQtU/</link>
		<comments>http://blog.iseesystems.com/news-announcements/system-dynamics-conference-schedule/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 13:53:41 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[News & Announcements]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=1979</guid>
		<description><![CDATA[ We’re looking forward to connecting with folks at the 27th Annual International System Dynamics Conference in Albuquerque next week.   Karim Chichakly, Jeremy Merritt and I will be there to share the latest news, listen to your stories, and answer any questions you might have.
We hope to see you at as many of the following [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.systemdynamics.org/conferences/current/index.htm" target="_blank"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 30px 0px 20px; display: inline; border-top: 0px; border-right: 0px" title="System Dynamics Society" src="http://blog.iseesystems.com/wp-content/uploads/2009/07/SDSLogoJP.gif" border="0" alt="System Dynamics Society" width="98" height="68" align="right" /></a> We’re looking forward to connecting with folks at the <a href="http://www.systemdynamics.org/conferences/current/index.htm" target="_blank">27th Annual International System Dynamics Conference</a> in Albuquerque next week.   Karim Chichakly, Jeremy Merritt and I will be there to share the latest news, listen to your stories, and answer any questions you might have.</p>
<p>We hope to see you at as many of the following isee sponsored events as your schedule allows:</p>
<p><strong>Monday, July 27th</strong></p>
<table style="border: 1px solid #b5c0c4; width: 600px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="all">
<tbody>
<tr>
<td width="137" valign="top" align="right">8:00 – 6:00 PM</td>
<td width="469" valign="top">isee systems Exhibit Booth Open</td>
</tr>
<tr>
<td width="137" valign="top" align="right">12:30 – 1:00 PM</td>
<td width="469" valign="top">isee systems Exhibitor Demonstration</td>
</tr>
<tr>
<td width="137" valign="top" align="right">1:00 – 1:50 PM</td>
<td width="469" valign="top">STELLA and <em>iThink</em> User Group Meeting</td>
</tr>
</tbody>
</table>
<p><strong>Tuesday, July 28th</strong></p>
<table style="border: 1px solid #b5c0c4; width: 600px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="all">
<tbody>
<tr>
<td width="137" valign="top" align="right">8:00 – 6:00 PM</td>
<td width="469" valign="top">isee systems Exhibit Booth Open</td>
</tr>
<tr>
<td width="137" valign="top" align="right">7:00 PM</td>
<td width="469" valign="top"><a href="http://www.iseesystems.com/community/news/RichmondScholarship.aspx">Barry Richmond Scholarship Award</a> Presentation</td>
</tr>
</tbody>
</table>
<p><strong>Wednesday, July 29th</strong></p>
<table style="border: 1px solid #b5c0c4; width: 600px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="all">
<tbody>
<tr>
<td width="137" valign="top" align="right">8:00 – 6:00 PM</td>
<td width="469" valign="top">isee systems Exhibit Booth Open</td>
</tr>
</tbody>
</table>
<p><strong>Thursday, July 30th</strong></p>
<table style="border: 1px solid #b5c0c4; width: 600px;" border="1" cellspacing="0" cellpadding="2" frame="box" rules="all">
<tbody>
<tr>
<td width="137" valign="top" align="right" rowspan="2">8:30 – 10:00 AM</td>
<td width="469" valign="top">Getting Started with STELLA and <em>iThink </em>Workshop<em> </em>(Part 1)</td>
</tr>
<tr>
<td width="469" valign="top"><a href="http://www.iseesystems.com/store/ModelingBook/default.aspx"><em>Modeling Dynamic Systems: Lessons for a First Course</em></a> <br />
Workshop by Diana Fisher</td>
</tr>
<tr>
<td width="137" valign="top" align="right">10:30 – 12:00 PM</td>
<td width="469" valign="top">Getting Started with STELLA and <em>iThink </em>Workshop<em> </em>(Part 2)</td>
</tr>
<tr>
<td width="137" valign="top" align="right">1:00 – 2:30 PM</td>
<td width="469" valign="top">Creating Simulations for the Web with <em>iThink</em> &amp; STELLA Workshop
</td>
</tr>
</tbody>
</table>
<p>See you in Albuquerque!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=zOoV7oZrQtU:pmG059WgOjI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=zOoV7oZrQtU:pmG059WgOjI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=zOoV7oZrQtU:pmG059WgOjI:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/zOoV7oZrQtU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/news-announcements/system-dynamics-conference-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/news-announcements/system-dynamics-conference-schedule/</feedburner:origLink></item>
	</channel>
</rss>
