<?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>Tue, 10 Aug 2010 22:07:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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>System Dynamics Conference in Seoul</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/wg0T8cWlyFc/</link>
		<comments>http://blog.iseesystems.com/news-announcements/system-dynamics-conference-in-seoul/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 11:00:42 +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=3187</guid>
		<description><![CDATA[isee systems is proud to have sponsored the 28th International System Dynamics Conference held in Seoul, Korea last month.  We especially enjoyed supporting the conference again this year through the Barry Richmond Scholarship Award.   The scholarship was established in 2007 to honor and continue the legacy of our company founder, Barry Richmond.  Barry was devoted to helping others become better “Systems Citizens”.  It was his [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp"><a href="http://www.systemdynamics.org/index.html" target="_blank"><img class="alignright" style="margin: 13px;" title="System Dynamics Society" src="http://blog.iseesystems.com/wp-content/uploads/2009/07/SDSLogoJP.gif" alt="" width="98" height="68" /></a>isee systems is proud to have sponsored the <a href="http://www.systemdynamics.org/conferences/current/index.htm" target="_blank">28th International System Dynamics Conference</a> held in Seoul, Korea last month.  We especially enjoyed supporting the conference again this year through the Barry Richmond Scholarship Award.   The scholarship was established in 2007 to honor and continue the legacy of our company 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. </div>
<p><div class="mceTemp">Presenting the scholarship in Seoul was isee&#8217;s longtime consulting and training partner, Mark Heffernan.  Mark had this story to tell about Barry:</div>
</p>
<blockquote><p>I first met Barry 20 years ago, when I had to trudge through the snow to get to his small wooden office.  I was building a discrete event model using STELLA and I wanted him to make some changes to the software so I didn’t have these “egg timer“ structures everywhere.  Barry was horrified with what I had done with his software and said words to the effect that it&#8217;s not meant for that, it was created to spread the gospel of System Dynamics.  Despite the fact that I was a civil engineer, he encouraged me to take a look at SD.  Such was his passion and conviction that 20 years later I’m still attending this conference.&#8221;</p>
</blockquote>
<div id="attachment_3191" class="wp-caption alignright" style="width: 235px"><a href="http://blog.iseesystems.com/wp-content/uploads/2010/08/boys-and-SDS-085.jpg"><img class="size-medium wp-image-3191 " title="2010 Barry Richmond Scholarship Award" src="http://blog.iseesystems.com/wp-content/uploads/2010/08/boys-and-SDS-085-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Tony Phuah accepts Scholarship Award from Mark Heffernan</p></div>
<p>Through most of his career Barry saw education as the key to spreading Systems Thinking.  As a teacher and a mentor, he dedicated much of his time to developing tools and methodologies for learning.  It is fitting therefore that this year&#8217;s award was presented to Tony Phuah, a Master’s student in System Dynamics at the University of Bergen.</p>
<p>Tony’s work includes an experimental study that explores the question: <em>How can we improve people’s understanding of basic stock and flow behavior?</em>  His experiment uses two different methods for teaching stock and flow behavior — the standard method (using graphical integration) and a method he calls “running total”.  Tony presented his paper at a parallel session during the conference and it can be downloaded by <a href="http://www.systemdynamics.org/cgi-bin/sdsweb?P1099+0" target="_blank">clicking here</a>.  Although the results of his study favor traditional methods for teaching stock and flow behavior, we all should be encouraged by the work being done to try to improve Systems Thinking education and communication.  In Tony’s own words:</p>
<blockquote><p>Speeding up ‘Systems Thinkers beget more Systems Thinkers’ growth will make us one step closer to Barry Richmond’s vision of a systems citizen world.”</p>
</blockquote>
<p>Congratulations Tony and thank you Mark for helping us to celebrate Barry&#8217;s passion!</p>
<p>Applications for the 2011 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>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=wg0T8cWlyFc:DlbmpEP15OM: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=wg0T8cWlyFc:DlbmpEP15OM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=wg0T8cWlyFc:DlbmpEP15OM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/wg0T8cWlyFc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/news-announcements/system-dynamics-conference-in-seoul/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/news-announcements/system-dynamics-conference-in-seoul/</feedburner:origLink></item>
		<item>
		<title>What is Delta Time (DT)?</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/Zm9KepvN4O0/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/why-dt-matters/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 17:13:15 +0000</pubDate>
		<dc:creator>Nat Pierson</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[DT]]></category>
		<category><![CDATA[iThink/STELLA]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=3004</guid>
		<description><![CDATA[After reading Karim Chichakly’s recent post on Integration Methods and DT, I was reminded that delta time (DT) has always been a tricky modeling concept for me to grasp.   Beginning modelers don&#8217;t usually need to think about changing DT since STELLA and iThink set it to a useful default value of 0.25.   But once you [...]]]></description>
			<content:encoded><![CDATA[<p>After reading Karim Chichakly’s recent <a href="http://blog.iseesystems.com/modeling-tips/integration-methods-and-dt/" target="_blank">post on Integration Methods and DT</a>, I was reminded that delta time (DT) has always been a tricky modeling concept for me to grasp.   Beginning modelers don&#8217;t usually need to think about changing DT since STELLA and <em>iThink</em> set it to a useful default value of 0.25.   But once you progress with your modeling skills, you might consider the advantages and risks of playing with DT.</p>
<div id="attachment_3162" class="wp-caption alignright" style="width: 300px"><img class="size-full wp-image-3162 " title="RunSpecs" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/RunSpecs1.png" alt="" width="290" height="218" /><p class="wp-caption-text">The DT setting is found in the Run Specs menu.</p></div>
<p>By definition, system dynamics models run over time and DT controls how frequently calculations are applied each unit of time.  Think of it this way, if your model was a movie, then DT would indicate the time interval between still frames in the strip of movie film.  For a simulation over a period of 12 hours, a DT of 1/4 (0.25) would give you a single frame every 15 minutes.  Lowering the DT to 1/60 would give a frame every minute.   The smaller the DT is, the higher the calculation frequency (1/DT).</p>
<p><strong>Beware of the Extremes</strong></p>
<p>A common tendency for modelers is to set the calculation frequency too high.  Without really thinking too hard about it, more data seems to imply a higher quality model &#8211; just like more frames in movie film make for smoother motion.  If your model calculates more data for every time unit, its behavior will begin to resemble the behavior of a smoothly continuous system.  But a higher frequency of calculations can greatly slow down your model’s run performance and more data does not directly translate to a better simulation.</p>
<p><strong>Beware of Discrete Event Models</strong></p>
<p>Another situation where DT can often lead to unexpected behavior is with models that depend on discrete events.   My eyes were opened to this when I attended one of isee’s <a href="http://www.iseesystems.com/store/Training/InterDynamicModelingIthink.aspx" target="_blank">workshops </a>taught by Corey Peck and Steve Peterson of Lexidyne LLC.</p>
<p>One of the workshop exercises involved a simple model where the DT is set to the default 0.25, the inflow is set to a constant 10, and the outflow is set to flush out the stock’s contents as soon as it reaches 50.   This is how the model&#8217;s structure and equations looked:</p>
<p style="text-align: center;"><img class="size-full wp-image-3007 aligncenter" style="margin-top: -10px; margin-bottom: -30px;" title="Discrete Model" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/discrete_model1.png" alt="Discrete Model" width="369" height="102" /></p>
<p style="text-align: center;"><span style="font-size: 9pt; font-family: Courier, monospace;">Stock = 0</span></p>
<p style="text-align: center;"><span style="font-size: 9pt; font-family: Courier, monospace;">inflow = 10</span></p>
<p style="text-align: center;"><span style="font-size: 9pt; font-family: Courier, monospace;">outflow = IF Stock &gt;= 50 THEN 50 ELSE 0</span></p>
<p>I would have expected the value of the stock to plunge to zero after it reached or exceeded 50, but this graph shows the resulting odd saw-tooth pattern.</p>
<p style="text-align: center;"><img class="size-full wp-image-3006 aligncenter" title="Sawtooth Model Behavior" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/discrete_graph.png" alt="Sawtooth Model Behavior" width="422" height="244" /></p>
<p>The model ends up behaving like a skipping scratched record, in a perpetual state of never progressing far enough to reach the goal of zero.  (<a href="http://blog.iseesystems.com/wp-content/uploads/2010/08/DeltaTime.itm">Click here</a> to download the model.)</p>
<p><p><img class="size-full wp-image-3081    alignleft" style="margin-top: 10px; margin-bottom: 10px;" title="Table Output" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/dt_discrete_table.png" alt="" width="210" height="236" /></p>
</p>
<p>What is happening in the model?  In the first DT after the stock’s value reaches exactly 50, the outflow sets itself to 50 in order to remove the contents from the stock. So far so good, but now the DT gotcha begins to occur.   Since the outflow works over time, its value is always per time.  To get the quantity of material that actually flowed, you must multiply the outflow value (or rate) by how long the material was flowing.  When DT is set to 0.25,  the material flows 0.25 time units each DT.  Hence, the quantity of material removed from the stock is 50*0.25 = 12.50.</p>
<p>Suddenly we are in a situation where only 12.50 has been removed from the stock but the stock’s value is now less than 50.  Since the stock is no longer greater than or equal to 50, the outflow sets itself back to 0 and never actually flushes out the full contents of the stock. </p>
<p>So what do we do?  One solution to this problem would be to use the PULSE built-in to remove the full value from the stock.   Here&#8217;s what the equation for the outflow would look like:</p>
<p style="text-align: center;"><span style="font-size: 9pt; font-family: Courier, monospace;">outflow = IF Stock &gt;= 50 THEN PULSE(Stock) ELSE 0</span></p>
<p><em>(Note: This option will only work using Euler&#8217;s integration method.)</em></p>
<p style="text-align: left;"><strong>Further Reading</strong></p>
<p>STELLA and <em>iThink</em> have great help documentation on DT.  The general <a href="http://www.iseesystems.com/Helpv9/Content/DT/How_does_DT_work_.htm" target="_blank">introduction</a> provides a good explanation of how DT works. The more advanced <a href="http://www.iseesystems.com/Helpv9/Content/DT/DT_Special_Care.htm" target="_blank">DT Situations Requiring Special Care</a> section focuses more on artifactual delays and the discrete model issues mentioned in this post.  Delta time and resulting model behaviors are reminders that system dynamics models run over time, but they achieve this by applying numerous discrete calculations in order to simulate the smooth behavior of actual systems.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=Zm9KepvN4O0:F3hBQXXeKx8: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=Zm9KepvN4O0:F3hBQXXeKx8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=Zm9KepvN4O0:F3hBQXXeKx8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/Zm9KepvN4O0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/why-dt-matters/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/why-dt-matters/</feedburner:origLink></item>
		<item>
		<title>Integration Methods and DT</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/moKNCa1pUPA/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/integration-methods-and-dt/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 20:51:56 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[DT]]></category>
		<category><![CDATA[Euler]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[RK4]]></category>
		<category><![CDATA[Runge-Kutta]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2982</guid>
		<description><![CDATA[The simulation engine underlying STELLA® and iThink® uses numerical integration.  Numerical integration differs from the integration you may have learned in Calculus in that it uses algorithms that approximate the solution to the integration.  The two approximations currently available are known as Euler’s method and the Runge-Kutta method.  All algorithms require a finite value for [...]]]></description>
			<content:encoded><![CDATA[<p>The simulation engine underlying STELLA® and <em>iThink</em>® uses numerical integration.  Numerical integration differs from the integration you may have learned in Calculus in that it uses algorithms that approximate the solution to the integration.  The two approximations currently available are known as Euler’s method and the Runge-Kutta method.  All algorithms require a finite value for DT, the integration step-size, rather than the infinitesimally small value used in Calculus.  On the surface, it may seem that the smaller DT is, the more accurate the results, but this turns out not to be true.</p>
<p><strong>Compound Interest:  Euler’s Method over Runge-Kutta</strong></p>
<p>To introduce Euler’s method, let’s take a look at the simple problem of compound interest.  If we have $100 that we invest at 10% (or 0.1) compounded annually, we can calculate the interest after <em>N</em> years by adding in the interest each year and recalculating:</p>
<p style="padding-left: 30px;">1st year:  <em>interest</em> = $1000 × 0.1 = $100; <em>Balance</em> = 1000 + 100 = $1100 <br />
 2nd year: <em>interest</em> = $1100 × 0.1 = $110; <em>Balance</em> = 1100 + 110 = $1210 <br />
 3rd year:  <em>interest</em> = $1210 × 0.1 = $121; <em>Balance</em> = 1210 + 121 = $1331</p>
<p>And so on up to year <em>N</em>.  We have just seen the essence of how Euler’s method works.  It calculates the new change in the stock for this DT (in this case, <em>interest</em>) and then adds that to the previous value of the stock (<em>Balance</em>) to get the new value of the stock.  In this example, DT = 1 year.</p>
<p>By noticing we always add the existing balance in, we can instead just multiply the previous year’s balance by 1 + <em>rate</em> = 1 + 0.1 = 1.1:</p>
<p style="padding-left: 30px;">1st year:  <em>Balance</em> = $1000 × 1.1 = $1100 <br />
 2nd year: <em>Balance</em> = $1100 × 1.1 = $1210 <br />
 3rd year:  <em>Balance</em> = $1210 × 1.1 = $1331</p>
<p>And so on up to year <em>N. </em>We can further generalize by noticing we are multiplying by 1.1 <em>N</em> times and thus arrive at the compound interest formula:</p>
<p style="padding-left: 30px;"><em>Balance</em> = <em>Initial_Balance</em>*(1 + <em>rate</em>)^<em>N</em></p>
<p>Checking this, we find our <em>Balance</em> at the end of year 3 is 1000*1.1^3 = $1331.  In the general case of the formula, <em>rate</em> is the fractional interest rate per compounding period and <em>N</em> is the number of compounding periods (an integer).  In our example, the compounding period is one year, so <em>rate</em> is the annual fractional interest rate and <em>N</em> is the number of years.  However, if interest is compounded quarterly (four times a year), the interest rate has to be adjusted to a per quarter rate by dividing by 4 (so <em>rate</em> = 0.1/4 = 0.025) and <em>N</em> must be expressed as the number of quarters (<em>N</em> = number of years*4 = 3*4 = 12 for the end of year 3).  We can use this formula in our model to test the accuracy of Euler’s method.  Note that for quarterly compounding, we would set DT = 1/4 = 0.25 years.</p>
<p>To explore the differences between Euler’s and Runge-Kutta, the following structure will be used for all of the examples in this post.  This structure models the compound interest problem outlined above.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image8.png" border="0" alt="image" width="186" height="180" /></p>
<p>The equations change for each example and can be seen in the individual model files (accessed by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/07/Integration-Methods.zip"></a><a href="http://blog.iseesystems.com/wp-content/uploads/2010/07/Integration-Methods1.zip">here</a>).  For this example, the actual value is calculated using the compound interest formula, <em>Initial_Balance</em>*(1 + <em>rate</em>)^<em>TIME</em>.  The approximated value is calculated by integrating <em>rate</em>*<em>Approx_Balance</em> (into <em>Approx_Balance</em>).</p>
<p>In addition to the actual and approximate values, three errors are also calculated across the model run:  the maximum absolute error, the maximum relative error, and the root-mean-squared error (RMSE).  The absolute error is:</p>
<p style="padding-left: 30px;">ABS(<em>Actual_Balance</em> – <em>Approx_Balance</em>)</p>
<p>The relative error is:</p>
<p style="padding-left: 30px;"><em>absolute_error</em>/ABS(<em>Actual_Balance</em>)</p>
<p>and is usually expressed as a percentage.  The RMSE is found by averaging the values of the absolute error squared, and then taking the square root of that average.</p>
<p><span id="more-2982"></span>Running this model under Euler’s method leads to the behavior shown in the following graph.  As expected, Euler’s method tracks this function perfectly.  All three errors are essentially zero.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image9.png" border="0" alt="image" width="454" height="251" /></p>
<p>However, changing the integration method to Runge-Kutta 4 (known as RK4) does not give a good approximation (see graph below).  The relative error is 1.6%, the absolute error is $56 and the RMSE is $26, all rather large for RK4.  DT must be reduced a factor of 32, to 1/128, in order to bring the errors below 0.1% (0.001).</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image10.png" border="0" alt="image" width="454" height="251" /></p>
<p><strong>Continuous Compounding:  Runge-Kutta over Euler’s Method</strong></p>
<p>Our friend Euler was a busy mathematician.  He is also famous for discovering the formula for continuously compounding interest.  If you increase the frequency of compounding from once a year to once a month to once a day (what most banks do now and called “daily compounding”) to once a second and so on until you are compounding every infinitesimally small instant (which should remind you of the dt from Calculus), the compound interest formula becomes:</p>
<p style="padding-left: 30px;"><em>Balance</em> = <em>Initial_Balance</em>*<em>e</em>^(<em>rate</em>*<em>time</em>)</p>
<p>where <em>e</em> ≈ 2.718281828 is Euler’s number, <em>rate</em> is the annual fractional interest rate, and <em>time</em> is the number of years that have passed (a real number).  Using continuous compounding, our <em>Balance</em> at the end of year 3 is 1000*<em>e</em>^(0.1*3) ≈ $1350, $8 more than with annual compounding.</p>
<p>This function is known as <em>continuous</em> function, which, in layman’s terms, means its value smoothly changes with time, rather than experiencing jumps or gaps.  [Note the compound interest formula given in the first section is <em>not</em> continuous; since <em>N</em> must be an integer, this function only exists at integer values.]  While Euler’s method does not depend on a function being continuous, it does introduce an error proportional to DT when trying to integrate these equations (called <em>truncation error</em>).  Thus, the only way to reduce these errors is to reduce DT, requiring more computations.  Unfortunately, this only works up to a point.  Below that point, errors increase again due to <em>round-off error</em> in the computer’s finite representation of floating point values.</p>
<p>The graph below shows the effect of using Euler’s method to calculate continuously compounding interest.  Note it does not follow the actual curve, calculated with the EXP function, very well.  The relative error is 1.6%, the maximum error is $56, and the RMSE is $25.  If we cut DT in half, to 1/8, the errors also cut in half as we expect, to 0.8%, $29, and $13, respectively.  This will continue until DT reaches the limit of the machine’s representation, which is approximately 1/2048 for single-precision floating point numbers and 1/67,108,864 (1/2^26) for double-precision floating point numbers (note STELLA and <em>iThink</em> always use double-precision).  After this point, errors will increase again.  Note these values are theoretical; your mileage will vary.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image11.png" border="0" alt="image" width="454" height="251" /></p>
<p>There is a better solution than reducing DT.  The Runge-Kutta integration method assumes a continuous function and takes steps to follow such a function very closely.  Because it uses a weighted average of values across each DT-interval, it does not perform well with <em>discontinuous</em> functions, i.e., functions that have gaps or sharp changes, such as that produced with the STEP and PULSE functions (however, STELLA and <em>iThink</em> compensate for this so that these functions still perform correctly under Runge-Kutta).  Leaving DT at 0.25 and changing the integration method to RK4 produces the following graph, with the largest relative error being 0.0077%, the largest absolute error being $0.27 and the RMSE being $0.14.  To achieve this level of accuracy with Euler’s method, it is necessary to reduce DT to 1/1024.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image12.png" border="0" alt="image" width="454" height="251" /></p>
<p>The number after the RK is the order of the integration method.  Typically, but not always, higher-order methods will give smaller errors.  Euler’s method is a first-order method and RK4 is a fourth-order method.  Note, however, that Euler’s outperformed RK4 in the first example.  STELLA and <em>iThink</em> also provide a second-order method, Runge-Kutta 2 (RK2), which is a compromise between Euler’s and RK4; with the speed of today’s computers, it is no longer necessary to use and remains only for backward-compatibility.</p>
<p><strong>Oscillations:  The Case for Runge-Kutta</strong></p>
<p>Oscillations represent one area where RK4 really shines.  The following graph shows the results of using Euler’s method to integrate the sine function with DT = 0.25.  Notice it misses horribly.  The resulting function is clearly outside the range of the sine function [-1, 1].  The maximum absolute error is 0.25 and the RMSE is 0.15.  However, the maximum relative error is 340%!</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image5.png" border="0" alt="image" width="454" height="251" /></p>
<p>Reducing DT by a factor of 128 to 1/512 helps somewhat (below).  The maximum absolute error reduces to 0.0020 and the RMSE to 0.0012, but the maximum relative error only decreases to 200%.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image6.png" border="0" alt="image" width="454" height="251" /></p>
<p>On the other hand, if we leave DT = 0.25 and change the integration method to RK4, it calculates the sine function quite well, with a maximum absolute error of only 0.0078 and an RMSE of 0.0045.  The maximum relative error is also acceptable at 2.2%.  Cutting DT in half to 1/8 reduces the maximum relative error an order of magnitude, to 0.34%.</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/07/image7.png" border="0" alt="image" width="454" height="251" /></p>
<p><strong>Guidelines for DT</strong></p>
<p>DT should initially be set to one-half of the smallest time constant in your model.  This minimal value, according to Nyquist’s Sampling Theorem, avoids undersampling your values.  [Undersampling means looking at your signal so infrequently that you distort the signal, or, more to the point, do not have enough information to reconstruct it.  For example, in the sine wave above, evaluating it every π will make you think you have a straight line at the origin, since all you will see are the zeroes.]</p>
<p>Finding the smallest time constant can be tricky.  They often appear in compounding or in draining processes.  For example, in the first two examples, the interest rate is the reciprocal of the time constant (it always appears in the divisor).  Thus, the time constant for this compounding formula is 10.  This suggests DT could start at 5, but there are other constraints.  In fact, we wish to compound every quarter, so DT must be set to 1/4.</p>
<p>Run the model with your chosen DT.  Then cut DT in half and try again.  If the results change, cut DT in half and try again.  If they do not change, the previously chosen DT is likely fine.</p>
<p>Whenever possible, choose a value of DT that is a power of 2 (1, 1/2, 1/4, 1/8, 1/16, … or 1, 0.5, 0.25, 0.125, 0.0625, …).  This is because most other fractions, for example 1/10, are repeating decimals in base-2 and so cannot be accurately represented on the computer.  Obviously if your problem requires you to use a DT of 1/7, in weekly simulations for example, do so, but understand that adding 1/7 seven times will not equal one.  There are also other cases where you might need to use a DT that is not a power of 2.  If your smallest time constant is 1/52, for example, choosing the closest power of 2 to (1/52)/2 = 1/104, which is 1/128, would be disastrous.  Your time constant would then be 1/64 sometimes and 1/32 other times, not at all close to what you need.  Make sure you can represent your smallest time constants as a multiple of whatever DT you choose.</p>
<p><strong>Guidelines for Integration Method</strong></p>
<p>Changing DT is often not sufficient.  Your system may exhibit instabilities or wild oscillations caused by the errors in Euler’s method.  It is therefore also wise to always run the model in Euler’s and then in RK4.  If there is a difference, stick with RK4 and proceed to test DT.</p>
<p>Euler’s method is noticeably faster than RK4 and works fine in many situations.  A system that has linear relationships and uses exponential functions that are <em>not</em> based on Euler’s number will work fine using Euler’s method.  For qualitative results, Euler’s will work well in a broad variety of situations.  Euler’s is also the preferred method when you are using discontinuous or discrete functions (but note the discrete functions in STELLA and <em>iThink</em> are Runge-Kutta-aware and should work reasonably well under RK4).</p>
<p>Any continuous system that is based on exponential functions using Euler’s number as a base, and this includes trigonometric functions, oscillations, and logistic functions, will be better served by RK4.  In these cases, you should generally use this method from the start.</p>
<p>There is one additional type of system you may run into that neither of these methods will solve very well:  stiff systems.  In simple terms, a stiff system is one that has time constants of wildly different magnitudes, for example, 0.005 and 10,000.  The smaller time constant suggests a DT of 0.0025 which is far too small for the part of the system with a time constant of 10,000.  It is best to reframe your problem to avoid these situations when possible.  For example, when simulating such a system, the part of the system with a time constant of 10,000 can often be considered constant over a shorter period of interest.  Over long periods of interest, it is often possible to aggregate the behavior of the part of the system with the shorter time constant, using averages instead of exact values.</p>
<p><em>Note:  The integration method and DT are both set in the Run Specs, accessible from the Run menu.  Additional information can be found in the chapter on DT in the </em><a href="http://www.iseesystems.com/Helpv9/Content/DT/How_does_DT_work_.htm"><em>Technical Documentation</em></a><em>.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=moKNCa1pUPA:EjqXpGI4SDM: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=moKNCa1pUPA:EjqXpGI4SDM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=moKNCa1pUPA:EjqXpGI4SDM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/moKNCa1pUPA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/integration-methods-and-dt/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/integration-methods-and-dt/</feedburner:origLink></item>
		<item>
		<title>Gulf Oil Leak: A Systems Thinking Perspective</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/PcYBgb3M3cY/</link>
		<comments>http://blog.iseesystems.com/systems-thinking/gulf-oil-leak/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 18:11:17 +0000</pubDate>
		<dc:creator>Chris Soderquist</dc:creator>
				<category><![CDATA[Systems Thinking]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[oil production]]></category>
		<category><![CDATA[peak oil]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2905</guid>
		<description><![CDATA[Editor&#8217;s note: This is a guest post by isee&#8217;s consulting &#38; training partner Chris Soderquist
It’s been a little over 10 weeks since the Deepwater Horizon oil rig explosion that has resulted in a constant flow of oil into the Gulf of Mexico.  Oil is now beginning to impact the economy of the Florida coast.  Some [...]]]></description>
			<content:encoded><![CDATA[<p><em>Editor&#8217;s note: This is a guest post by isee&#8217;s consulting &amp; <a href="http://www.iseesystems.com/store/Training/OnlineCourses.aspx">training</a> partner <a href="http://www.pontifexconsulting.com/" target="_blank">Chris Soderquist</a></em></p>
<p><img class="alignright size-full wp-image-2950" title="Oil on a Pensacola FL beach" src="http://blog.iseesystems.com/wp-content/uploads/2010/06/oil-pensacola-beach-sm.jpg" alt="Oil on a Pensacola FL beach" width="230" height="164" />It’s been a little over 10 weeks since the Deepwater Horizon oil rig explosion that has resulted in a constant flow of oil into the Gulf of Mexico.  Oil is now beginning to <a href="http://www.eturbonews.com/16602/study-oil-spill-going-ripple-throughout-floridas-economy" target="_blank">impact the economy of the Florida coast</a>.  Some estimate that the disaster could cost nearly 200,000 tourism jobs.   Efforts  to remove the impacts on the environment, including a <a href="http://www.cnn.com/video/#/video/us/2010/06/18/pkg.mattingly.save.the.cnn?iref=allsearch" target="_blank">massive rescue of manatees</a> could cost billions.  The ability to truly restore the environment to pre-April 20 conditions is beyond that of mere mortals. It is an event truly unprecedented.</p>
<p><strong>Who&#8217;s to Blame?</strong></p>
<p>The current media focus has centered on an activity I refer to as the <em>Find the Knucklehead Game</em>. The idea is that there must be someone out there to blame, tar and feather, and that if we just remove the idiot from the system we’ll never have this problem again. Finé. Complete. Case closed! (And there was great rejoicing…)</p>
<p>However, if we begin to apply the systems thinking paradigm, there’s another analysis that might suggest we are in a long-term trend that is still just ramping up – and that if we don’t take action soon the impact on the economy and environment may be much worse.</p>
<p><strong>A Systems Thinking Perspective</strong></p>
<p>Two of the skills required to practice systems thinking are Dynamic Thinking and 10,000 Meter Thinking. If we look at the history of oil extraction from the balcony, as a long-term trend over time, we see something that may be quite useful. Let’s apply a concept developed by <a href="http://scitizen.com/future-energies/charlie-hall-s-balloon-graph_a-14-1305.html" target="chart">Charles Hall (SUNY-College of Environmental Science and Forestry) called EROI</a> (&#8220;energy return on investment&#8221;).  EROI is the ratio between the energy we receive – to run our transportation system, heat our buildings, run electricity generators – and the amount of energy required to get the raw material out of the ground and process it into usable form. In the early 20th Century, oil was easy to extract. In many places it was just below the surface in the wide open fields. The EROI was 100:1 in 1930 – 100 units of energy received for 1 unit of energy extracting/processing. Since then there has been a marked decline, and as the United States passed peak oil production (the maximum production rate) in the early 1970s, and as we’ve begun importing most of our oil, the EROI for oil in the US is approximately 20:1.</p>
<div id="attachment_2925" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-2925  " title="Charles Hall's Energy Return on Investment Graph" src="http://blog.iseesystems.com/wp-content/uploads/2010/06/EROI_Graph.png" alt="Charles Hall's Energy Return on Investment Graph" width="500" height="259" /><p class="wp-caption-text">Charles Hall&#39;s Energy Return on Investment Graph</p></div>
<p>Why the marked decline? Because the purest, easiest to extract/process oil has likely been found and burned (leading to too much in our atmosphere, but that’s another point). We now need to go to more distant places (no longer fields) – offshore, into the Arctic – to find oil. Often the oil is no longer in purest form; converting the &#8220;oil goo&#8221; from the <a href="http://en.wikipedia.org/wiki/Oil_sands" target="_blank">tar sands in Alberta, Canada</a> is a prime example.</p>
<p><strong>Continuation of a Trend</strong></p>
<p>Using the systems thinking perspective, we may conclude that the &#8220;event&#8221; of Deepwater Horizon is an inevitable continuation of a trend (that includes the Exxon Valdez). And that the trend is likely to get worse as our need (thirst) for oil increases – which will occur as developing nations continue trying to catch up to the developed world, and as we hope for &#8220;economic recovery.&#8221;</p>
<p>This leads to several questions in my mind.</p>
<ol>
<li>If it’s true that the easiest to extract and process oil has been found and used, what’s this indicate about the risks we’ll incur as it requires increasing effort to get oil in the future? More deepwater drilling? Environmental degradation/damage to get oil like tar sands extracted?</li>
<li>How much oil really is left – how long will we continue to have this cheap resource?</li>
<li>Further, if we are facing increasing risks and costs for every unit of oil we acquire, when will that begin to have severe impacts on our economy (as the per unit cost of the stuff we love – iPods, cars, flying to Europe – increases, the profit margins of our globalized corporations will decrease)?</li>
<li>And when will we decide that we need to develop a way of living that is independent of this resource? To recover from our &#8220;addiction to oil.&#8221;</li>
</ol>
<p><strong>How Much Oil Is Left?</strong></p>
<p>I’ve developed and published an isee NetSim model that you may use to explore questions regarding how long the resource will last and the implications of the economy on that length. <a href="http://forio.com/simulate/simulation/pontifexconsult/how-much-oil-is-left/" target="simulation">You may explore it here</a>.</p>
<p style="text-align: center;"><a href="http://forio.com/simulate/simulation/pontifexconsult/how-much-oil-is-left/" target="simulation"><img class="size-full wp-image-2939 aligncenter" title="&quot;How Much Oil is Left?&quot; online simulation" src="http://blog.iseesystems.com/wp-content/uploads/2010/06/Pushing-the-Limits-Sim.jpg" alt="&quot;How Much Oil is Left?&quot; online simulation" width="540" height="351" /></a></p>
<p>Ultimately, we need to stop the <em>Find the Knucklehead Game</em> and instead recognize that it is we – in the collective sense – that are responsible. Not just for the recent disaster, but the long-term trend and its consequences (including the unintended consequences of climate change). The system is behaving as it is designed. It is up to us to design a different system!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=PcYBgb3M3cY:Yn5O9v2O-BQ: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=PcYBgb3M3cY:Yn5O9v2O-BQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=PcYBgb3M3cY:Yn5O9v2O-BQ:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/PcYBgb3M3cY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/systems-thinking/gulf-oil-leak/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/systems-thinking/gulf-oil-leak/</feedburner:origLink></item>
		<item>
		<title>“Tracing Connections” book honors Barry Richmond</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/mFnJc-7FM3A/</link>
		<comments>http://blog.iseesystems.com/news-announcements/tracing-connections-book-tributes-barry-richmond/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 14:00:59 +0000</pubDate>
		<dc:creator>Joanne Egner</dc:creator>
				<category><![CDATA[News & Announcements]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Systems Thinking]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2830</guid>
		<description><![CDATA[Barry Richmond was the founder of isee systems and pioneer in the field of systems thinking.  When his life was cut short by a sudden fatal heart attack, Barry was in the prime of his career and the systems thinking community experienced a collective sense of loss and grief.
Barry was fully engaged in bringing systems thinking to [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-2868" style="margin-right: 10px;" title="Barry Richmond" src="http://blog.iseesystems.com/wp-content/uploads/2010/06/barryBlog.jpg" alt="Barry Richmond" width="114" height="116" />Barry Richmond was the founder of isee systems and pioneer in the field of systems thinking.  When his life was cut short by a sudden fatal heart attack, Barry was in the prime of his career and the systems thinking community experienced a collective sense of loss and grief.</p>
<p>Barry was fully engaged in bringing systems thinking to everyone.  He saw how this powerful way of thinking could help people to better understand society’s most pressing issues and make the world a better place.  Barry saw K-12 education as one of the keys to creating a better world.  He spoke often about educating young people to become ”systems citizens” and preparing students for the complex problems they would have to face.  Much of his time was devoted to training teachers to incorporate systems thinking into curricula and pedagogy.</p>
<p>A couple of years ago, Barry&#8217;s daughter, Joy Richmond, began spearheading an effort to create a book in honor of her father.  Joy invited a group of us together to talk about some ideas for the book and come up with a plan to make it happen. The first idea we discussed was writing the book that Barry himself had intended to write.  Barry left plenty of notes and even had a working title for a book about systems thinking called <em>Traces</em>.   We all agreed that it would be much too daunting to try to write a book <em>for</em> Barry, so we decided to have a book written in tribute <em>to</em> Barry by friends and colleagues who share his passion for systems thinking.</p>
<p>Steve Peterson, Corey Peck and Khalid Saeed were all part of that original discussion and eager to contribute by writing a chapter.  Each had a story to tell about using Systems Thinking in their work and why it is so important in an increasingly interdependent world.  What better way to honor Barry than writing a book that helped get the word out about systems thinking!</p>
<p><strong>Shaping the Book</strong></p>
<p>Lees Stuntz, Executive Director of the Creative Learning Exchange, was also in on the discussion and excited about asking educators influenced by Barry to contribute their stories. Before we invited other authors however, we wanted to provide some guidelines that would tie the book together and give it a more meaningful context.  I think it was Steve who came up with the idea to use the critical thinking skills first outlined in an article Barry wrote for the <em>System Dynamics Review</em> titled &#8220;Systems Thinking: Critical Thinking Skills for the 1990s and Beyond&#8221;.   We agreed the systems thinking skills would provide a good foundation for the book and each author could then choose a few of the thinking skills to emphasize when telling their story.</p>
<p><a href="http://www.iseesystems.com/store/TracingConnections/default.aspx" target="_blank"><img class="size-full wp-image-2841 alignright" title="Tracing Connections" src="http://blog.iseesystems.com/wp-content/uploads/2010/05/tracingconnections_ftcover_medium.jpg" alt="Tracing Connections" width="160" height="202" /></a>Countless hours of writing, editing, and designing later, <em>Tracing Connections: Voices of Systems Thinkers</em> was born.  Published in partnership with the Creative Learning Exchange, proceeds from the book will fund scholarships that offer learning opportunities for educators to use systems thinking and system dynamics in K-12 education.  The response so far has been excellent and we are pleased to be funding scholarships to help educators attend the <a href="http://www.clexchange.org/conference/cle_2010conference_registrationinfo.html" target="_blank">ST/DM Conference</a> later this month.</p>
<p><strong>A Chapter for Everyone</strong></p>
<p>What is especially nice about the book, is that you don&#8217;t need to read each chapter in sequence.  Since the authors&#8217; experiences range from education and research to business and public policy, there&#8217;s sure to be a chapter for everyone.  Click on the link below to view the chapter by Frank Draper titled &#8220;Teaching by Wondering Around: Learning About the World Naturally&#8221;.  Frank tells a wonderful story about how Systems Thinking has transformed the way he teaches science to high school students.  After reading it, you&#8217;re going to wish you could enroll in one of Frank&#8217;s field science classes at Catalina Foothills school district in Tuscon, Arizona.</p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2010/06/TracingConnections_ch03_FrankDraperTeachingbyWonderingAround.pdf" target="_blank"><img class="alignnone" style="margin-left: 10px; margin-right: 10px;" title="PDF" src="http://www.iseesystems.com/images/icons/pdf.gif" alt="" width="12" height="11" />Teaching by Wondering Around</a> by Frank Draper</p>
<p><img class="alignleft" style="margin-left: 10px; margin-right: 10px;" title="STELLA model file" src="http://www.iseesystems.com/images/icons/STELLA_icon.gif" alt="" width="14" height="18" /></p>
<p><a href="http://blog.iseesystems.com/wp-content/uploads/2010/06/AnimalTemperature.zip">Animal Temperature Model</a></p>
<p><img style="margin-left: 10px; margin-right: 10px;" title="PDF" src="http://www.iseesystems.com/images/icons/pdf.gif" alt="" width="12" height="11" /><a href="http://www.iseesystems.com/store/TracingConnections/Tracing_Connections_TOC.pdf" target="_blank">Table of Contents</a> with full list of chapter titles and authors</p>
<p>For more information or to order a copy of <em>Tracing Connections</em>, visit <a href="http://www.iseesystems.com/tc" target="_blank">http://www.iseesystems.com/tc</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=mFnJc-7FM3A:2WfRXwIIxCY: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=mFnJc-7FM3A:2WfRXwIIxCY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=mFnJc-7FM3A:2WfRXwIIxCY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/mFnJc-7FM3A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/news-announcements/tracing-connections-book-tributes-barry-richmond/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/news-announcements/tracing-connections-book-tributes-barry-richmond/</feedburner:origLink></item>
		<item>
		<title>Steady-State Initialization of Conveyors</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/CAy3LhmnLpE/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/steady-state-init-of-conveyors/#comments</comments>
		<pubDate>Tue, 25 May 2010 20:55:22 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[conveyor]]></category>
		<category><![CDATA[leakage]]></category>
		<category><![CDATA[steady-state]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2827</guid>
		<description><![CDATA[Conveyors are useful model elements for representing pipelines or processes that take a certain amount of time to complete.  However, adding a leakage flow to a conveyor can make it difficult to initialize a model in steady-state.  The following discussion will explain how to initialize conveyors with leakage in steady-state.  Please refer to the model [...]]]></description>
			<content:encoded><![CDATA[<p>Conveyors are useful model elements for representing pipelines or processes that take a certain amount of time to complete.  However, adding a leakage flow to a conveyor can make it difficult to initialize a model in steady-state.  The following discussion will explain how to initialize conveyors with leakage in steady-state.  Please refer to the model structure below while reading this discussion.</p>
<p><img style="border-width: 0px; display: block; margin-left: auto; margin-right: auto;" title="image" src="http://blog.iseesystems.com/wp-content/uploads/2010/05/image.png" border="0" alt="image" width="347" height="153" /></p>
<p>These additional variables will be also used:</p>
<p style="padding-left: 30px;"><em>transit_time</em> = TRANSTIME(<em>conveyor</em>) <br />
<em>conveyor_length</em> = <em>transit_time</em>/DT <br />
<em>leakage_fraction</em> = the user-specified leakage fraction</p>
<p><strong>Linear Leakage</strong></p>
<p>The default leakage is linear in behavior.  The total amount that leaks across the length of the conveyor is directly proportional to the inflowing amount.  The leakage fraction is the constant of proportionality.  Thus, the <em>fraction</em> of inflowing material that makes it to the conveyor&#8217;s outflow is exactly</p>
<p style="padding-left: 30px;">1 – <em>leakage_fraction</em></p>
<p>Given the sample model structure above, to achieve equilibrium, <em>conveyor_outflow</em> must equal <em>outflow</em>.  For this to happen, we need to set the <em>inflow</em> as follows:</p>
<p style="padding-left: 30px;"><em>inflow</em> = <em>outflow</em>/(1 – <em>leakage_fraction</em>)</p>
<p>The conveyor’s steady-state value is then:</p>
<p style="padding-left: 30px;"><em>conveyor</em> = <em>transit_time</em>*<em>inflow</em> – (<em>conveyor_length</em> – 1)*<em>leakage</em>*DT/2</p>
<p>where the initial value of <em>leakage</em> is:</p>
<p style="padding-left: 30px;"><em>leakage</em> = <em>leakage_fraction</em>*<em>inflow</em></p>
<p>This must be calculated outside the program and entered as a constant into the conveyor as conveyors cannot be given equations (they can, however, be set to a the value of a single converter, but you must be careful how you calculate this to avoid circularity).</p>
<p><strong>Exponential Leakage</strong></p>
<p>Optionally, leakage can be made exponential.  The amount that leaks each DT is proportional to the amount remaining in the conveyor.  In this case, the leakage fraction is the fraction that leaks each unit of time so, for long conveyors, a lot of material can leak away.  Given the transit time, the <em>fraction</em> of inflowing material that makes it to the conveyor&#8217;s outflow is approximately</p>
<p style="padding-left: 30px;">1 &#8211; (1 &#8211; <em>leakage_fraction</em>)^<em>transit_time</em></p>
<p>Given the sample model structure above, to achieve equilibrium, <em>conveyor_outflow</em> must equal <em>outflow</em>.  For this to happen, we need to set the <em>inflow</em> as follows:</p>
<p style="padding-left: 30px;"><em>per_dt_no_leak</em> = 1 – <em>leakage_fraction</em>*DT <br />
<em>inflow</em> = <em>outflow</em>/(<em>per_dt_no_leak</em>^<em>conveyor_length</em>)</p>
<p>For steady-state, the conveyor itself must then be set as follows:</p>
<p style="padding-left: 30px;"><em>conveyor</em> = (<em>inflow</em>*DT)*(1 – <em>per_dt_no_leak</em>^<em>conveyor_length</em>)/(1 – <em>per_dt_no_leak</em>)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=CAy3LhmnLpE:G39BMupMq1A: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=CAy3LhmnLpE:G39BMupMq1A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=CAy3LhmnLpE:G39BMupMq1A:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/CAy3LhmnLpE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/steady-state-init-of-conveyors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/steady-state-init-of-conveyors/</feedburner:origLink></item>
		<item>
		<title>What’s New in isee NetSim 1.1?</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/wbafTZIs9mI/</link>
		<comments>http://blog.iseesystems.com/isee-netsim/isee-netsim-1-1/#comments</comments>
		<pubDate>Mon, 17 May 2010 14:52:59 +0000</pubDate>
		<dc:creator>Jeremy Merritt</dc:creator>
				<category><![CDATA[isee NetSim]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[Forio]]></category>
		<category><![CDATA[GID]]></category>
		<category><![CDATA[graphical function]]></category>
		<category><![CDATA[graphical input device]]></category>
		<category><![CDATA[netsim]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2803</guid>
		<description><![CDATA[Last week, we released version 1.1 of the isee NetSim software.  isee NetSim enables iThink and STELLA users to publish their models online so anyone can run them in a web browser.  Version 1.1 introduces several new features.  In this post I will share a couple of those that I am most excited about.
Forio Simulate—Like [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iseesystems.com/softwares/NetSim11Features.aspx" target="_blank"><img style="margin: 0px 0px 0px 10px; display: inline; border: 0pt none;" title="isee NetSim 1.1" src="http://blog.iseesystems.com/wp-content/uploads/2010/05/netsim_app_icon1.png" border="0" alt="netsim_app_icon" width="131" height="135" align="right" /></a>Last week, we released version 1.1 of the isee NetSim software.  isee NetSim enables <em>iThink</em> and STELLA users to publish their models online so anyone can run them in a web browser.  Version 1.1 introduces <a title="Go to the isee NetSim 1.1 product page" href="http://www.iseesystems.com/softwares/NetSim11Features.aspx" target="_blank">several new features</a>.  In this post I will share a couple of those that I am most excited about.</p>
<p><strong>Forio Simulate—Like YouTube for Simulations</strong></p>
<p>Since the debut of the isee NetSim software we have collaborated with <a href="forio.com" target="_blank">Forio Business Simulations</a> to provide free hosting for models published online.  Last year, I saw a demo of Forio’s new simulation service, <a href="http://forio.com/simulate/" target="_blank">Forio Simulate</a>, in the early development stage.  It was awesome.  I couldn’t believe it—they added all of the Web 2.0 features I’d been dying for, and a slick, fun to use interface.  I knew we had to make isee NetSim work with it.</p>
<p>The new service is social by nature—it features keyword tagging, ratings, comments and built-in model sharing.  It’s like YouTube for simulations.  You can browse simulations and games that others have created, find similar ones by keyword tags, and embed simulations on blogs or web pages.  So you don’t have to be actively publishing your own simulations, or even be a modeler to get a lot of value from the site.  In fact, it’s a great way to introduce people to modeling and simulation.  Just post a link!</p>
<p>And if you <em>are</em> a modeler, you can get even more out of the service.  Most of the simulations published to Forio Simulate allow you to download or copy the underlying model that powers it.  Here at isee, we’ve uploaded the original <em>iThink</em> and STELLA models used to create all of our sample isee NetSim simulations.  That way <em>anyone</em> can run the simulation online in a browser and download the source model to dig into if they want more.  Take a look at isee systems’ models published on Simulate by clicking on the screen shot below.</p>
<div id="attachment_2818" class="wp-caption alignnone" style="width: 565px"><a href="http://forio.com/simulate/netsim/"><img class="size-full wp-image-2818" title="Sim Homepage" src="http://blog.iseesystems.com/wp-content/uploads/2010/05/Sim-Homepage.png" alt="" width="555" height="468" /></a><p class="wp-caption-text">The simulation overview page allows anyone to download the source model, rate, comment, add tags and embed the simulation on other web pages.</p></div>
<p>Anyone can use free hosting on Forio Simulate if the model contains 400 or fewer equations and is shared with other users of the service.  If you want to protect the model, resell a simulation, use a custom URL, etc., you can sign up for a premium hosting plan.  It’s easy to select a hosting plan when you upload your model with isee NetSim.</p>
<p><strong>Graphical Input Device</strong></p>
<div class="wp-caption alignright" style="width: 131px"><img style="margin: 0px 0px 10px 10px; display: inline; border: 0pt none;" title="Graphical Input Device" src="http://blog.iseesystems.com/wp-content/uploads/2010/05/GID.png" border="0" alt="Graphical Input Device, or, GID" width="121" height="128" align="right" /><p class="wp-caption-text">Use the GID to change the price assumption</p></div>
<p>One of the most requested features for isee NetSim has been the graphical input device, or “GID” as we like to call it.  GIDs offer a simple way to allow people running your simulation to change the model assumptions.  Often it’s easier to sketch a curve of the behavior of a variable than to input numbers directly.</p>
<p>For example, the model below is a generic renewable-resource model that enables you to experiment with yield and price of a renewable-resource via GIDs.  The model is from our “<a href="http://www.iseesystems.com/store/training/Thinkinginsystems/default.aspx" target="_blank">Thinking in Systems</a>” online course.  I published the model to Forio Simulate and then embedded it here.  Click the “Review model” link to take a brief tour of the model.</p>
<p>You can change the price elasticity and “yield per unit capital” curve by first clicking on one of the GIDs.  A window will pop open that displays the details of the curve.  Click and drag within the grid to draw a new curve.  Press “Ok” to apply the changes.  Take a few moments to play around with the model below.</p>
<p>[<em>Editor's note:  If you cannot see the embedded model below because you are reading this post in a feed reader or email, please <a href="http://blog.iseesystems.com/isee-netsim/isee-netsim-1-1/">visit the post page here</a></em>]</p>
<p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="542" height="470" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://forio.com/simulate/resources/swf/sim-frame.swf?userPath=jeremyx&amp;simPath=renewable-resource&amp;simID=jeremyx/renewable_resource&amp;netSimColor=0xC1E0FF&amp;serviceRoot=http://forio.com/service2/&amp;initialPage=Page 1&amp;displayForioBadge=false&amp;displayiseeBadge=false&amp;displayShareThisNetSim=false&amp;swfURL=null&amp;embed=true" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="542" height="470" src="http://forio.com/simulate/resources/swf/sim-frame.swf?userPath=jeremyx&amp;simPath=renewable-resource&amp;simID=jeremyx/renewable_resource&amp;netSimColor=0xC1E0FF&amp;serviceRoot=http://forio.com/service2/&amp;initialPage=Page 1&amp;displayForioBadge=false&amp;displayiseeBadge=false&amp;displayShareThisNetSim=false&amp;swfURL=null&amp;embed=true" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</p>
<p>What I find interesting after playing with this model is what happens when you start to push the yield up.  At some point the efficiency improves to the point where the renewable-resource gets completely wiped out.  Sometimes the inefficiencies of harvesting a resource can be a good thing—it gives the resource time to “catch up”.  This may be a useful point to consider when thinking about sustainable systems.  What happens when you make the resource inexpensive?   <br class="spacer_" /><strong> <br />
 A GID for the web</strong></p>
<p>You may have noticed that the GID within isee NetSim does not allow a user to type numbers to define data points or change the x and y ranges.  We decided this simpler version of the GID was a good fit for models published to the web and would cover most use cases.  The GID allows users to easily change the assumptions by sketching a behavior pattern and not really concern themselves with the data.</p>
<p>If you’ve been dying to publish models with GIDs online, now is your chance.  While you&#8217;re at it, check out Forio Simulate and start contributing to the growing simulation community.  You can <a href="http://www.iseesystems.com/community/downloads/Netsim/NetsimTrial.aspx" target="_blank">download a trial of isee NetSim 1.1 here</a>.  If you already own isee NetSim, visit your “<a href="http://www.iseesystems.com/community/DownloadMySoftware.aspx" target="_blank">My Software</a>” page on the isee systems website to download the upgrade.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=wbafTZIs9mI:WObnHvvflF4: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=wbafTZIs9mI:WObnHvvflF4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=wbafTZIs9mI:WObnHvvflF4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/wbafTZIs9mI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/isee-netsim/isee-netsim-1-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/isee-netsim/isee-netsim-1-1/</feedburner:origLink></item>
		<item>
		<title>We have met an ally and he is Storytelling</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/7whQ0boblAM/</link>
		<comments>http://blog.iseesystems.com/systems-thinking/we-have-met-an-ally-and-he-is-storytelling/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 20:56:47 +0000</pubDate>
		<dc:creator>Chris Soderquist</dc:creator>
				<category><![CDATA[Systems Thinking]]></category>
		<category><![CDATA[COIN]]></category>
		<category><![CDATA[counter-insurgency]]></category>
		<category><![CDATA[New York Times]]></category>
		<category><![CDATA[Powerpoint]]></category>
		<category><![CDATA[storytelling]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2760</guid>
		<description><![CDATA[Editor&#8217;s note: This is a guest post by isee&#8217;s consulting &#38; training partner Chris Soderquist
Background
 The April 26, 2010 article in the New York Times titled “We have met the enemy and he is PowerPoint” has created quite a stir. It is particularly telling that three days after its publication, it is the most emailed [...]]]></description>
			<content:encoded><![CDATA[<p><em>Editor&#8217;s note: This is a guest post by isee&#8217;s consulting &amp; <a href="http://www.iseesystems.com/store/Training/OnlineCourses.aspx">training</a> partner <a href="http://www.pontifexconsulting.com/" target="_blank">Chris Soderquist</a></em></p>
<p><strong>Background</strong></p>
<p><img style="margin: 0px 0px 0px 10px; display: inline; border: 0px;" title="iStock_000010849371XSmall" src="http://blog.iseesystems.com/wp-content/uploads/2010/04/iStock_000010849371XSmall.jpg" border="0" alt="iStock_000010849371XSmall" width="240" height="170" align="right" /> The April 26, 2010 article in the New York Times titled “<a href="http://www.nytimes.com/2010/04/27/world/27powerpoint.html" target="_blank">We have met the enemy and he is PowerPoint</a>” has created quite a stir. It is particularly telling that three days after its publication, it is the most emailed article on their website! The most interesting aspect of the article to me, as a system dynamics practitioner, is the publication of a <em>system dynamics map </em>on the US Counter-insurgency strategy as <em>the example</em> (i.e. visual sound bite) demonstrating <em>why PowerPoint is so problematic</em>. This is actually a poor example of the author’s point, since it is not PowerPoint, and because the map was shown out of context.</p>
<p>Although the diagram doesn’t portray how or why PowerPoint is misused, it does demonstrate some reasons why system dynamics maps and models are not more broadly used to communicate systemic issues. In this post, I will describe what issues a PowerPoint paradigm creates and how system dynamics can address those issues; more importantly, I will show why the STELLA and <em>iThink</em> software have features such as storytelling and web publishing in order to help people develop deeper, more systemic understanding of the complex problems humanity must address.</p>
<p><strong>The Problem with PowerPoint</strong></p>
<p>I don’t have anything against using PowerPoint. Those of you who have taken one of my webinars for isee systems know that I rely heavily on the software in my instruction and facilitation. I think there are inherent software limitations that combine with a cultural paradigm, that lead to its misuse. Currently, I see it promotes the following approaches to problem solving:</p>
<ol>
<li>Narrow focus in space and time – due to limited screen real estate </li>
<li>Passive absorption of information of data – lazy learning, not experiential </li>
<li>Simplistic bullet point thinking – linear thinking, focusing on factors in a non-operational way </li>
</ol>
<p><img style="margin: 0px 0px 0px 10px; display: inline; border: 0px;" title="iStock_000005896614XSmall" src="http://blog.iseesystems.com/wp-content/uploads/2010/04/iStock_000005896614XSmall.jpg" border="0" alt="iStock_000005896614XSmall" width="240" height="159" align="right" /> This all creates confusion between reducing complication and simplifying complexity. The world is a dynamically complex place, and thank goodness for that! Picture the blandness of a world that is simple, where everyone thought and acted the same, where you always knew exactly what would happen because it was so simple. Boring! On the other hand, dynamic complexity makes it difficult to resolve what currently appear to be intractable problems, such as environmental degradation, poverty, global economic turmoil. Living in a dynamically complex world necessitates finding ways to simplify complexity to its essence, making manageable and useful mental models.</p>
<p>That’s why people are drawn to lists (e.g., bullet point and linear thinking), believing it simplifies complexity; just give me a list of what’s wrong or what to do! What lists do well is remove complication, but they also remove the dynamic essence of reality, often making mental models that are less than useful.</p>
<p><strong>System dynamics</strong></p>
<p>System dynamics is an approach to building understanding that expands boundaries, looks at the world as comprised of feedback loops, uses a visual language that promotes operational thinking, and creates active learning. It’s a terrific approach to counter the many problems inherent in applying PowerPoint paradigm!</p>
<p>All of the above helps develop useful mental models that are both simplified and still capture the essence of reality. However, taking a map out of context – even one much simpler than shown in the article – and including it in PowerPoint will not create understanding, only confusion! When I’m in front of a group and have enough time, I will always draw it up on a flipchart or board, to bring the group along with its unfolding. The rapid feedback creates an engaged group capable of learning. But in the absence of time, or if you need to communicate to people “on their own time” you will find features in STELLA and <em>iThink</em> invaluable!</p>
<p>I’ve published a map to the web with the isee NetSim software to demonstrate how you can use system dynamics to create online experiential learning labs. Take a tour of the map below to see how the stock/flow language and Storytelling can overcome the passive absorption of bulletized information that PowerPoint facilitates.</p>
<p><strong>Click on the image below to make sense of the map</strong><strong> </strong></p>
<p><a href="http://forio.com/simulate/simulation/pontifexconsult/response-to-ny-times" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto; border-width: 0px;" title="Launch the story of COIN dynamics" src="http://blog.iseesystems.com/wp-content/uploads/2010/04/COINSmall1.png" border="0" alt="Launch the story of COIN dynamics" width="552" height="425" /></a></p>
<p>Another interesting perspective from Linda Booth Sweeney on the New York Times article <a href="http://lindaboothsweeney.net/blog/?p=172." target="_blank">can be found on her blog</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=7whQ0boblAM:ZP7iRSUHMos: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=7whQ0boblAM:ZP7iRSUHMos:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=7whQ0boblAM:ZP7iRSUHMos:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/7whQ0boblAM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/systems-thinking/we-have-met-an-ally-and-he-is-storytelling/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/systems-thinking/we-have-met-an-ally-and-he-is-storytelling/</feedburner:origLink></item>
		<item>
		<title>Converting a Sector-based Model to Modules</title>
		<link>http://feedproxy.google.com/~r/iseesystems/KOIx/~3/KcBYqugLZ00/</link>
		<comments>http://blog.iseesystems.com/modeling-tips/converting-sectors-to-modules/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 08:17:36 +0000</pubDate>
		<dc:creator>Karim Chichakly</dc:creator>
				<category><![CDATA[Modeling Tips]]></category>
		<category><![CDATA[iThink/STELLA]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[sectors]]></category>
		<category><![CDATA[Version 9.1.2]]></category>

		<guid isPermaLink="false">http://blog.iseesystems.com/?p=2736</guid>
		<description><![CDATA[I generally do not use modules to build very small models (only a couple of stocks and flows), which may then lead me to use sectors as the model grows because they are very convenient.  By the time I have three sectors, though, it starts to become clear that I should have used modules.  I [...]]]></description>
			<content:encoded><![CDATA[<p>I generally do not use modules to build very small models (only a couple of stocks and flows), which may then lead me to use sectors as the model grows because they are very convenient.  By the time I have three sectors, though, it starts to become clear that I should have used modules.  I will then need to convert my sector-based model into a module-based model.  Historically, I also have a number of sector-based models that are crying to be module-based.</p>
<p>Converting from sectors to modules is not very difficult:</p>
<ol>
<li>Make sure there are no connections or flows between sectors.  Replace any of these with ghosts in the target sector.</li>
<li>In a new model, create one module for every sector.</li>
<li>Copy and paste the structure from each sector into its corresponding module.</li>
<li>Connect the modules:  At this point, the model structure has been rearranged into modules, but none of the modules are connected.  The ghosts that were in the sectors became real entities when they were pasted into the modules.  Go back to identify all of these connections and reconnect them in the module-based model.</li>
</ol>
<p><strong>Stepping Through a Sample Model</strong></p>
<p>Let’s walk through an example.  A small sector-based model is shown below (and is available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/03/Population1.itm">here</a>).</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Sectors" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image.png" border="0" alt="image" width="403" height="393" /></p>
<p>This model violates what I would call good sector etiquette:  there are connectors that run between the sectors.  This is often useful in a small model such as this because it makes the feedback loops visible.  However, in a larger model, this can lead to problems such as crossed connections and difficulty in maintaining the model because sectors cannot be easily moved.</p>
<p><strong> </strong><span id="more-2736"></span><strong>Eliminating Cross-Sector Connections</strong></p>
<p>To convert this sector-based model to modules, it is first necessary to remove these cross-sector connections.  This is done with the ghost tool.  The stock <em>Population</em> needs to be ghosted and placed in the <em>Resources Sector</em> and the stock <em>Natural Resources</em> needs to be ghosted and placed in the <em>Population Sector</em>.  The end result is shown below.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Sectors with Ghosts" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image1.png" border="0" alt="image" width="388" height="437" /></p>
<p><strong>Creating the Modules</strong></p>
<p>We are now ready to create, in a new model, one module for each sector, using the Module tool.  The result is shown below.  Although you could manually draw the connections between these modules, we will let the software create the connections for us.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Modules" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image2.png" border="0" alt="image" width="73" height="145" /></p>
<p>Each module needs to be associated with its own model file.  This is done by double-clicking on each module and choosing “Create Model&#8230;”.  Double-click <em>Population</em>, choose “Create Model…”, and name the model file “Population”.  Repeat for <em>Natural Resources</em>, but name the model file “Natural Resources”.</p>
<p><strong>Pasting Structure into the Modules</strong></p>
<p>It is now a simple matter to paste the structure from each sector into each module.  Using the selection tool in the sector frame, select all of the structure in the <em>Population Sector</em> and copy it by choosing Edit-&gt;Copy.  Open the <em>Population</em> module in the new model and paste in the structure by choosing Edit-&gt;Paste.  The module contents will appear as shown below.  Note that <em>Natural Resources</em> is no longer a ghost; there is no connection to the other module.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Population module" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image3.png" border="0" alt="image" width="337" height="196" /></p>
<p>Repeat this process with the <em>Resources Sector</em> and the <em>Natural Resources</em> module.  The module contents will appear as shown below.  Note that <em>Population</em> is no longer a ghost.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Natural Resources module" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image4.png" border="0" alt="image" width="305" height="191" /></p>
<p><strong>Connecting the Modules</strong></p>
<p>All that remains is to connect the modules.  Inside the <em>Population</em> module, the stock <em>Natural Resources</em> needs to be replaced with a ghost of the real stock.  Inside the <em>Natural Resources</em> stock, the <em>Population</em> stock must be replaced with a ghost.</p>
<p>There are two ways to do this:  manually or semi-automatically with the Ghost tool.  I tend to use the Ghost tool most of the time.  [The documentation chapter “Working with Module Inputs and Outputs” (available by clicking <a href="http://www.iseesystems.com/Helpv9/Content/Modules/Intro_to_Module_Inputs_and_Outputs.htm">here</a>) explains how to forge these connections manually.]</p>
<p>To connect the modules, first go into the <em>Natural Resources</em> module and select the <em>Natural Resources</em> stock with the Ghost tool.  Go up one level and then down into the <em>Population</em> module.  The cursor should still be a stock.  Click next to the existing <em>Natural Resources</em> stock to deposit the ghost.  Run a connector from the ghost to <em>resources\person</em> (as the stock does) and then delete the stock.  Drag the ghost over to approximately where the stock was.  Open <em>resources\person</em> and press “OK”.  An error will appear and “Natural_Resources” will be selected.  This happens because <em>Natural Resources</em> is no longer connected to <em>resources\person</em>.  Click on the ghost’s name (<em>Natural Resources.Natural Resources</em>) in the “Required Inputs” list and press “OK”.  The <em>Population</em> module is now properly connected to the <em>Natural Resources</em> module.</p>
<p>Repeat this process to connect a ghost of the real <em>Population</em> stock to the <em>Natural Resources</em> module.  After finishing, the <em>Population</em> module contents appears as shown below.  Note that <em>Population</em> has a double border to signify it is providing its value to another module.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Population module connected" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image5.png" border="0" alt="image" width="337" height="209" /></p>
<p>The contents of the <em>Natural Resources</em> module appears as shown below.  Note the double border around the <em>Natural Resources</em> stock, signifying that it is providing its value to another module.</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Natural Resources module connected" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image6.png" border="0" alt="image" width="333" height="191" /></p>
<p>Finally, returning to the top-level, we see that the software automatically created the required connections between the modules.  Below, the connections have been embellished with their polarity to make the balancing loop obvious.  [The final model is available by clicking <a href="http://blog.iseesystems.com/wp-content/uploads/2010/03/Population3.zip">here</a>.]</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Modules connected" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image7.png" border="0" alt="image" width="91" height="145" /></p>
<p><strong>A Cautionary Tale</strong></p>
<p>This mechanical process for converting a sector-based model to a module-based model is very appealing due to its simplicity.  It works very well with models that have a small number of sectors (up to about five), but will fall apart beyond that.</p>
<p>Last summer, I helped Khalid Saeed (<a href="http://www.wpi.edu/academics/Depts/SSPS/People/kqs.html" target="_blank">Worcestor Polytechnic Institute</a>) convert a sector-based model of Jay Forrester’s Urban Dynamics model to modules.  A direct translation using the above process led to the following top-level diagram:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Urban Dynamics - all on one level" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image8.png" border="0" alt="image" width="260" height="239" />It should be clear that everything is connected to almost everything else.  There is no way to rearrange this diagram to clear up this mess.  For a short time, I flirted with the idea of module ghosts as a solution, but it does not take too long to see that ghosts cannot solve this problem either (indeed, they make it worse).</p>
<p>Recently, I decided to follow my own advice on module hierarchy (see <a href="http://blog.iseesystems.com/stories-from-the-field/building-health-care-model-hierarchically/">this post</a>).  I also remembered the famous article “The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information” by G.A. Miller (1956).  It explains that we cannot keep more than five to nine things simultaneously in our heads, depending on the person.  So I may be able to absorb the meaning of a diagram with seven modules, but someone else may only be able to understand one with five modules.  For this reason, we should strive to keep the number of modules in a diagram below seven (which also may help explain why the above method works well for a small number of sectors).</p>
<p>Rearranging the Urban Dynamics model into three levels, I was able to simplify the top-level of the diagram to the following, which shows all of the important high-level feedback loops:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="Urban Dynamics - top-level of three levels" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image9.png" border="0" alt="image" width="259" height="275" /></p>
<p>There are also lower-level feedback loops within each of these modules.  The one within w<em>orkforce</em> is just as complicated:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="workforce module (2nd level of Urban Dynamics)" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image10.png" border="0" alt="image" width="363" height="249" /></p>
<p>The model logic rests within these second-level modules.  For example, the module <em>underemployed mobility</em> contains the following logic:</p>
<p><img style="border: 0pt none; display: block; margin-left: auto; margin-right: auto;" title="underemployed mobility module (bottom-level of Urban Dynamics)" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/image11.png" border="0" alt="image" width="481" height="342" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/iseesystems/KOIx?a=KcBYqugLZ00:hBAN8lNZKCg: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=KcBYqugLZ00:hBAN8lNZKCg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/iseesystems/KOIx?i=KcBYqugLZ00:hBAN8lNZKCg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/iseesystems/KOIx/~4/KcBYqugLZ00" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.iseesystems.com/modeling-tips/converting-sectors-to-modules/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.iseesystems.com/modeling-tips/converting-sectors-to-modules/</feedburner:origLink></item>
		<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”.&#160; For some people, this comes as a bit of a surprise, because the context usually involves building models with the iThink or STELLA software.&#160; 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”.&#160; 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.&#160; They don’t expect us to start talking metaphysically about thinking.&#160; “Is this about philosophy or modeling software?” they may wonder.&#160; 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.&#160; 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.&#160; Models are simplified representations of a part of reality that we want to learn more about.&#160; <a href="http://en.wikiquote.org/wiki/George_E._P._Box" target="_blank">George Box stated</a>: &quot;Essentially, all models are wrong, but some are useful”.&#160; 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&quot;?&#160; A mental model is a model that is constructed and simulated within a conscious mind.&#160; To be “conscious” is to be <em>aware</em> of the world around you and yourself in relation to the world.&#160; Let’s take a moment to think about how this process works operationally.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Thinking about trees" border="0" alt="Thinking about trees" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000010896467XSmall.jpg" width="427" height="284" /></p>
<p>Imagine that you are standing outside, looking at a tree.&#160; What happens?&#160; The lenses in your eyes focus light photons onto the retinas.&#160; The photosensitive cells in your retinas respond by sending neural impulses to your brain.&#160; 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.&#160; We have not addressed <em>understanding</em> what a tree is or considered changes over time.&#160;&#160; We are dealing with visual information only.&#160; 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?&#160; This is where mental models kick in and you start to <em>think</em> about the tree.&#160; The tree is actually a <em>concept</em> of something that exists in physical reality.&#160; The “tree concept” is a model.&#160; <em>Understanding</em> the concept of a tree requires more information than is available through sensory experience alone.&#160; It’s built on past experiences and knowledge.</p>
<p>A tree is a plant.&#160; It is a living thing that grows and changes appearance over time, often with the seasons.&#160; Trees have root systems.&#160; Trees use leaves for photosynthesis.&#160; Wood comes from trees.&#160; I can state these facts confidently because I have memories and knowledge of trees contained within my mental models.&#160; Mental models contain knowledge and help us create new knowledge.</p>
</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 valign="top" width="184">
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Boy catching a ball" border="0" alt="Boy catching a ball" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000006460951XSmall.jpg" width="162" height="242" /></p>
</td>
<td width="227"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Blocks" border="0" alt="Blocks" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000010372205XSmall.jpg" width="200" height="133" /></td>
<td valign="top" width="211">
<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Toddler reaching for a hot stove" border="0" alt="Toddler reaching for a hot stove" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/iStock_000005079030XSmall.jpg" width="189" height="242" /></p>
</td>
</tr>
</tbody>
</table>
<p>My guess is that with each image you thought about what happens next.&#160; If so, you were actually simulating a mental model forward in time.&#160; The images don’t show you what happened next, but you can probably make a pretty good guess.&#160; This guess is the result of simulating a mental model of what is depicted.&#160; And, you can simulate <em>different</em> outcomes.&#160; 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.&#160; 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.&#160; Things get harder when we start thinking about abstract systems.</p>
<p>A market is a good example of an abstract system.&#160; In a market system, price acts as a signal of aggregate demand for a commodity.&#160; You can’t “see” a market like you can “see” a tree in front of you.&#160; A market does not exists in a particular physical location.&#160; A market is an abstract concept that exists in the collective minds of all who participate in it.&#160; 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.&#160; People were worried about the economy and started saving money instead of spending it.&#160; This started happening just before the holiday shopping season – a make-or-break period for many retailers.&#160; So, in an effort to boost demand, retailers began dropping prices.</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="consumer perspective" border="0" alt="consumer perspective" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/consumerperspective.png" 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.&#160; 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:&#160; low prices in a down economy.&#160; As the deflationary dynamics play out over the long term, the picture becomes bleak.&#160; As prices spin downward, profits decline and businesses are forced to layoff workers or close up shop entirely.&#160; As unemployment increases, consumers perception of the stability of the economy decreases and they spend even less.</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="price" border="0" alt="price" src="http://blog.iseesystems.com/wp-content/uploads/2010/03/price4.png" width="371" height="281" /> </p>
<p>Economists and policy makers use sophisticated computer models to help them understand markets.&#160; On the other hand, consumers use simple mental models when making purchasing decisions.&#160; 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.&#160; 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.&#160; We tend to have a narrow focus and act on short-term dynamics within our mental models.&#160; 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.&#160; This is where software steps in.&#160; Using Systems Thinking software, we can transform our mental models into operational models that we can simulate more reliably using a computer.&#160; 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>12</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>4</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>2</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>2</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="margin: 0px 0px 0px 10px; display: inline; border: 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 width='600' height='542'><param name='movie' value='http://forio.com/simulate/resources/swf/sim-frame.swf?userPath=jeremyx&#038;simPath=h1n1-embedded-version&#038;simID=jeremyx/h1n1_embedded_version&#038;netSimColor=0xC1E0FF&#038;serviceRoot=http://forio.com/service2/&#038;initialPage=Page 1&#038;displayForioBadge=false&#038;displayiseeBadge=false&#038;displayShareThisNetSim=false&#038;swfURL=null&#038;embed=true'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://forio.com/simulate/resources/swf/sim-frame.swf?userPath=jeremyx&#038;simPath=h1n1-embedded-version&#038;simID=jeremyx/h1n1_embedded_version&#038;netSimColor=0xC1E0FF&#038;serviceRoot=http://forio.com/service2/&#038;initialPage=Page 1&#038;displayForioBadge=false&#038;displayiseeBadge=false&#038;displayShareThisNetSim=false&#038;swfURL=null&#038;embed=true' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='600' height='542'></embed></object></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>
	</channel>
</rss>
