tag:blogger.com,1999:blog-136082132024-02-20T09:20:33.510+03:00Mert NuhogluMy daily weblog...
Subjects:
- Engineering and design
- Methods for quality software development
- Java platform
- System dynamics
- Knowledge management
- My personal ideas...Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-13608213.post-58913407449170996032007-08-07T17:48:00.000+03:002007-08-07T17:54:15.361+03:00Very fast delicious bookmarkingI made a few changes to the bookmarklet provided by <a href="http://www.julian-bez.de/blog/2005/08/09/extremely-fast-delicious-bookmarking/">Extremely-fast del.icio.us bookmarking</a>. The new bookmarklet works as fast as the original one and also it opens a new window so the user doesn't have to wait till the completion of bookmarking process. <br /><br />To use it, drag this <a href="javascript:if (window.getSelection) des = window.getSelection(); else if (document.getSelection) des = document.getSelection(); else if (document.selection) des = document.selection.createRange().text; else des = ''; if( tags = prompt('Tags','')) { if (title = prompt('Title',document.title)) { des = prompt('Extended description (optional)',des); void(open('https://api.del.icio.us/v1/posts/add?description='+encodeURIComponent(title)+'&tags='+encodeURIComponent(tags)+'&url='+encodeURIComponent(location.href)+'&extended='+encodeURIComponent(des)+'&submit=save','delicious','toolbar=no,width=500,height=150'));}}">quickpost2</a> bookmarklet to the toolbar of your browser.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com2tag:blogger.com,1999:blog-13608213.post-58639118477414128822007-03-23T09:36:00.000+02:002007-03-23T09:39:56.308+02:00IE 602 System Dynamics Lecture Notes 2007-01 - By Yaman BarlasThese are my lecture notes of the 7. session of IE 602 System Dynamics Analysis and Design course in <a href="http://www.ie.boun.edu.tr">Industrial Engineering</a> Graduate Program of <a href="http://www.boun.edu.tr">Bogazici University</a>. You can find the video of the lecture in <a href="http://video.google.com/videosearch?q=label%3A%22yaman-barlas%22">Google Videos</a>. The course is given by <a href="http://www.ie.boun.edu.tr/%7Ebarlas/">Prof. Yaman Barlas</a>.<br /><br /><span id="fullpost"><br />Links to the videos:<br /><a href="http://video.google.com/videoplay?docid=-5572066811257107481&hl=en">Part I</a><br /><a href="http://video.google.com/videoplay?docid=-8815748241552465828&hl=en">Part II (Turkish)</a><br /><a href="http://video.google.com/videoplay?docid=-4664587410520170134&hl=en">Part III (Turkish)</a><br /><br />Interactive Gaming:<br />There is evidence that we human beings cannot make efficient decisions in complex feedback systems. By this we mean, we make a decision, we observe the results then we give another decision. These are feedback problems. In dynamic feedback decision problems, system has its life on own. System reacts to input and does all sorts of things as a result of feedbacks. You make a decision. system reacts. And you observe. Most feedback structures are nonlinear and delayed. When you combine them, we are not good decision makers. We under perform.<br />Controlled experiments may yield what kind of decisions decision makers ignore, overemphasize, utilize, have misperceptions, are there some generalizable inadequacies common to human decisions? These are decision making, cognitive questions. They are research questions we can research them in a controllable lab environment. This is phase 1.<br /><br />Phase II is how can we excite learning in experiential environments. Is it possible to enhance learning in them? To what extent is it possible? Or is it possible at all You may think learning has occurred, but person only learned mechanics of the game. Here we men learning as understanding dynamic causalities, what structures play a role in this dynamic behavior of the system. That understanding we call learning. <br />We don't call learning, imitating some past successful actions. You don't understand dynamics of the causality structure. you may discover the mechanical tricks somehow. But you don't know why it works. You cannot transfer this knowledge to another problem setting.<br />By learning we mean understanding what goes on in the system. <br /><br />Is that possible by game? That is interesting ques but not trivial. How can I separate learning from mechanical learning.<br /><br />Finally we can make use of interactive games to cast some decision rules. Interactive games re nice platforms to test these rules. <br /><br />You can use interactive gaming to test validity and robustness of models. Professionals in the field can test the model by using the games. That is a nice way of stress testing the model. These subjects can find uncovered structures.<br /><br />Potential pitfalls in interactive gaming:<br />IG can be a fantastic tool if properly used. But it is very easy to misuse it.<br />1. People tend to forget that there is a model engine behind the screen. They can think that nicely designed user interfaces with a lot of informations are sufficient.<br />2. If you don't spend enough time to explain the problem setting, model and the game, their performance will be masked, negatively influenced by their ignorance of the actual problem in the model. Then they cannot further progress.<br />3. Preoccupation with technology. We are not in the commerce of games. <br />4. As a corollary of preoccupation with technology: Game mechanics become too complicated. Game should not be difficult to play.<br />5. Video game syndrome. The players aim to beat the game and get the highest score. Learning is not the aim.<br /><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com3tag:blogger.com,1999:blog-13608213.post-22034174397030419492007-03-21T22:48:00.000+02:002007-03-21T23:29:55.144+02:00System Dynamics Lecture Notes 2007-05These are my lecture notes of the 5. session of IE 602 System Dynamics Analysis and Design course in <a href="http://www.ie.boun.edu.tr">Industrial Engineering</a> Graduate Program of <a href="http://www.boun.edu.tr">Bogazici University</a>. You can find the video of the lecture in <a href="http://video.google.com/videosearch?q=label%3A%22yaman-barlas%22">Google Videos</a>. The course is given by <a href="http://www.ie.boun.edu.tr/%7Ebarlas/">Prof. Yaman Barlas</a>.<br /><br /><span id="fullpost"><br /><a href="http://video.google.com/videoplay?docid=253629893205789757&hl=en">Lecture Video Part I</a><br /><a href="http://video.google.com/videoplay?docid=1215696852837107740&hl=en">Lecture Video Part II</a><br /><a href="http://video.google.com/videoplay?docid=-9090201340316637849&hl=en">Lecture Video Part III</a><br /><br />Figures are here:<br /><a href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5044491030310061474"><img src="http://lh5.google.com/image/mert.nuhoglu/RgGh3X5GhaI/AAAAAAAAAC4/Cd206NSFQq0/s144/05.JPG" /></a><br /><a href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5044491073259734450"><img src="http://lh3.google.com/image/mert.nuhoglu/RgGh535GhbI/AAAAAAAAADA/SpJaxToiqGs/s144/06.JPG" /></a><br /><br /><span style="font-weight:bold;">Tools for Sensitivity Analysis<br /></span><br />1. Analytical sensitivity<br />2. By simulation experiment<br />One value at a time approach. You take each parameter in high low middle levels. Then leave it at middle. Do this with other parameters. If you have p parameters then you will do 3p experiments. The simplest approach. <br />3. Experiment design: Systematic way of carrying out experiment in simulations.<br />3.1<br />People say you need to change each parameter to each parameter level in all levels. This is full factorial design under experiment design. You have l^p runs. This assumes that there is no errors due to randomization. You have to experiment each data 3-4 repeatedly for stat estimation. Then it becomes an impossible problem. You use this in very small models. Or If you want to analyze only 5-6 parameters.<br />3.2. Fractional factorial design. Under certain assumptions you can get a good idea about the shape of response function of the experiment by not carrying out full factorial experiment but by fraction of it. Maybe by only 10%. It eliminates all... The simplest interaction term is two term inter. Higher terms very high number of experiment. If you have 10 variables, you can at most design two term or triple experiments. The design is called fractional factorial design. You make certain assumptions either high term inter don't exist. or they can be neglected. Or you know results that you obtain are tentative. Then you have a sample based on these assumptions. This is the starting point in your work.<br />3.4. Random sampling. Another reduction approach. Assume that full factorial experiment has hundred thousand required experiments. Then you take some random numbers and pick some of the experiments. This assumes you don't have any idea of the shape of the function. Because if you know the shape then you don't do totally random sampling. Now representativeness is important. It is rarely used.<br />3.5. Latin hypercube sampling. More advanced approach. Some sort of stratified sense. It is random but not purely. Each parameter rage is divided into N strata. That is they have N different values. For each parameter you randomly pick one value. One run is one random values for each parameter. Fig.5.1. You do this without replacement. You never want to try the same combination again. Next time you obtain another comb of parameter values. You repeat this N times. Number of values you tried. Full sensitivity of each parameter is focus. Focus is on if you have on parameter you have full detail of high resolution of this parameter. Since you do this without replacement, it assumes that all parameter effects are independent. This is quite restrictive. The adv is it provides with few experiments very homogeneous coverage of experiment space. <br />3.3. Taguchi design. Modern approach. Very practical design. It's a special quite reduced form of fractional factorial design.18 predefined tables are designed to fit most commons situations. A simple cookbook approach. Huge reduction of number of experiments. Assumption is most interactions are nonexistent. Few selected some two level interactions can be modeled. In all designs all higher order interactions are nonexistent. It assumes further parameter output relation is assumed linear.<br />Let's say the Output measure is amplitude. Fig.5.2. Question: How sensitivity is amplitude to ordering period. The assumption is Fig.5.3. This is not the model. This comes as a result of the solution of the model. <br />Fig.5.4. If inventory is equal to some K plus A time something. This is the solution of the model let's assume. A is amplitude of this oscillatory function. Taguchi design says A is a linear function of some parameter. Model can be nonlinear. <br />I think this is not a very safe assumption.<br />Q: Higher order inter are nonexistent, is assumed. Doesn't it contradict systemic approach. It tries to reveal inter effects.<br />A: In general this is true.We are building systemic models to discover simultaneous effects of multiples measures. But quantitatively changing values of parameters you cannot extract out the sensitivity of the output by increasing it values at different levels and by not simultaneous changing other levels. I am not sure the statements are equal. If model is linear, the two statements are equal.<br /><br />Guidelines for sensitivity analysis:<br />We need to use our knowledge of the model to reduce number of experiment. <br />1. Seek behavior pattern sensitivity rather than numeric sensitivity. Don't spend months on numerical sensitivity of the amplitude in Fig.5.2. For example in Fig 5.4 seek the sensitivity that causes a to turn into b. From growing oscillation to damping oscillation.<br />2. Positive feedback loops have in general more influence such strong behavior pattern sensitivity of the model. They are destabilizing loops. They are crash or growth lops. <br />3. Range of parameter values that you try out. When you do sensitivity analysis especially for parameter estimation and policy analysis. Restrict parameter set to a realistic set of parameters. But you can do this for validity testing.<br />4. You may have some parameters estimated using stat tools. On these parameters you don't need extensive sensitivity testing if they are not decision parameters.<br />5. When multiple parameters are simultaneous altered, you know that in real life it is inconsistent that death rate is much higher and birth rate is much lower. When death rate goes up birth rate goes also up.Not for validity testing.<br /><br />Mathematical equations:<br />To show you idea of feedback sensitivity.<br />Mathematical Sensitivity Analysis<br />Definition: Sensitivity of S^M_K M:output measure, K:parameter. <br />Equation 5.5<br />If you find M=f(k) you need have derived the solution. You can not find solution in general in dynamical systems.<br />e.g.. A linear (feedback) dynamical system. In block notation: Fig.5.6.<br />What transfer function does is it multiplies r and obtains C. <br />G: Transfer function in frequency (s) domain. Then C=r G. Here C would be in s. First you take Laplace trans to obtain G. <br />This Fig.5.6 called open system. <br />Sensitivity of output C wrt G. S_G^C. Equation 5.7<br />This is clear because of C=rG.<br />Now consider adding a feedback loop.<br />Fig.5.8<br />You observe output and do something. These inputs and outputs are not flows. G is not derivative of flows. This has integrations in itself, but it is block diagram and just means C=rG.<br />When you have two lines entering into a block, you take plus and minus, that is the difference. e.g. you take an action based on difference of desired inventory and measured inventory.<br />Mathematically 5.9 C=(r-b)G<br />b=cH<br />C=(r-cH)G...<br />So combined block is 5.9.a<br />5.10<br />This is 5.10.a is sensitivity of percent change in C to G. The higher H, the lower sensitivity, in general. It is not anymore a constant sensitivity like 5.7.a.<br />Reduced sensitivity of negative feedback control system.<br /><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-16888117544561039292007-03-20T22:32:00.000+02:002007-03-23T09:30:56.708+02:00IE 602 System Dynamics Lecture Notes 2007-04 - By Yaman Barlas<o:p>Hi people, these are my lecture notes of the 4. session of IE 602 System Dynamics Analysis and Design course in <a href="http://www.ie.boun.edu.tr">Industrial Engineering</a> Graduate Program of <a href="http://www.boun.edu.tr">Bogazici University</a>. You can find the video of the lecture in <a href="http://video.google.com/videoplay?docid=2752105629550201477&hl=en">Google Videos</a>. The course is given by <a href="http://www.ie.boun.edu.tr/%7Ebarlas/">Prof. Yaman Barlas</a>.<br /></o:p><br /><p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >6 March 2007<br /></span></b></p><br /><p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Sensitivity Analysis:<o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >You have a model fully validated. You are satisfied. Next, you are going to use as an experimental lab to carry out analysis and design improved policies.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><br /></span></p><br /><span id="fullpost"><br />Figures are here:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704418881515202"><img src="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704418881515202" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704418881515202" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704461831188178"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704461831188178" border="0" alt="" /></a><br /><br /><p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >So broadly speaking what is analysis and design?<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Analysis means understanding something. Studying something to understand it. IN our context means understanding why and how. By what causal mechanisms and which ways the model behave as it does. Understanding sources of dynamic behavior. This is prerequisite to redesign it. Here main comps of analysis"<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >One extreme form of analysis is mathematical solution. Dynamical model, if you can solve it, you obtain an equation which is an explicit function of time. The solution is a vector variable =s which are explicit functions of time. Sines, cosines, exponentials can be complicated. But in any case these are time functions. And various parameters of functions freq, exponents come from model. You can quiet precisely say what parameter does what? <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Simple birth death population. Solution of a linear pop model is p(t) = p(0) + ... If b = d, you have const pop. The larger difference, larger slopes you obtain. This is an extreme form of precision in math analysis. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >This is only true for linear systems. For almost all linear systems, you can obtain math solutions. And for almost all nonlinear systems you can’t obtain a mathematical solution. Well come back to this in what conditions are mathematical solutions possible?<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Next level is equilibrium solutions and analysis. We'll talk about this a lot. System stays at these equation points. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Third comp is sensitivity analysis. This is major subfield of analysis. To what extend in what ways (qualitative and quantitative questions) do behavior changes to the changes in initial conditions and structure. This percentage change in dynamic behavior patterns is a major field of analysis.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Policy analysis: Given that you have a certain policy how sensitive is this policy to the parameters, initial conditions of the model. Specific application of sensitivity analysis to policy.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Then there is design. Obtaining improved policy: How can I obtain policy structure that will yield and improvement in system behavior? A dampening of pop growth, stooping cancer growth as a result of medical intervention, higher percentage of students entering in universities as a result of university placement policy.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >The limit of design is optimization. Given my objectives this is the best possible policy. This is rarely possible in nonlinear feedback models. There are no easy algorithms. This is a great research area.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Now our topic is sensitivity analysis and policy analysis experimentally. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Diff</span></b><b><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >erent</span></b><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > uses of sensitivity analysis:<o:p></o:p></span></b></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >M</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >odel validity testing<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >E</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >valuating importance of parameters: Value of information and importance of parameters. If behavior is sensitivity to a few parameters but insensitive to some other parameters. Then these parameters are import.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Decide on which parameters you need to spend more effort. These are most sensitivity parameters. Then you know that 10% error in these parameters are import. You need to estimate them better.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Understand the structure behavior connection. This is mathematical analysis. Math</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >ematical</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > solution constructs time function of behavior in parameters of model. You se</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >e</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > the direct links. We can't do this mathematically so let's try to do it with sensitivity analysis. We make series of simulation runs. And decide the role of each parameter. Model behavior connection can be established by doing sensitivity analysis to some extent.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Evaluating policy alternatives. Sensitivity analysis is applied to some policy. How sensitive is our policy to some set of parameters? If it is very sensitive you don't like it. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >High sensitivity may mean:<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >weakness in model<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >discovery of critical parameters<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >need for further research to estimate parameters<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >most import</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >ant</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > parameters for behavior<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >weak policies<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Types of sensitivity analysis:</span></b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >This is important. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >S</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >ensitivity w</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >ith respect to:</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >parameter (or initial) values - i.e. numeric values.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >numerical - a model with behavior like Fig. 4.7. I make some parameter changes. I obtain b). This is numeric change. It is trivial change. Mathematically there will be some numeric sensitivity with any change of the parameter. The question is how much. Whether it exists or not, is not imp</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >ortant</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 4pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;color:black;" lang="EN-US" ><span style="">·<span style=";font-family:";font-size:7;" > </span></span></span><!--[endif]--><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >behavior patterns - This is very different Fig.4.8. b) has a very different type of change. This is oscillation but it is damping. A change from a to b is pattern sensitivity. Can you guess which is more important? Behav</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >ior</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > pattern sensitivity is more important than numeric sensitivity.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Next question is: Do you expect behavior change to come from what? From structure changes. Feedback structures that have enough loops, that is control loops, organizations that exist and survive, as a result of negative control loops. These interesting problems have enough negative feedback loops that cause them persist so many years. Even </span><st1:country-region><st1:place><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Turkey</span></st1:place></st1:country-region><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > economy has multiple negative feedback loops. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >A</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >lternative structures - you change the structure. You write a new equation. You remove a feedback lop. You modify the structure.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >S</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >omewhere between there is form of functions. This may be closer to parameter change or structure change. Fig. 4.5 You modify the level of function. This is parameter change. On the other hand, if you change the form of function, Fig. 4.6., this is more like a structure change. And another change is c). It removes the relation between y and x.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Some observations:<o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Fundamental behavior is created by some dominant feedback loops. We'll talk about this.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Discovery of sensitivity parameters are critical. And of course discovery of structure mostly influential in creating fundamental behavior is import</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >ant</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >S: What if b</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >irth rate </span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >></span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" > </span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >d</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >eath rate</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > or d</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >eath rate </span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" > </span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >b</span><span style="line-height: 150%;font-size:11;color:black;" lang="EN-US" >irth rate in population growth model?</span><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" > This changes the behavior pattern...<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >When you choose 0 parameter value, you are saying that it doesn't exist at all. This is clear structure change. In your case, a change in parameter value causes a significant behavior change. But this is not structure change. Same structure. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Tools for sensitivity analysis:</span></b><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >They are either analytical: What percentage of change in output is caused by what percentage of parameter? For linear systems you can obtain it.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Much more extensive is simulation based experimental sensitivity analysis. How do you do it? Experimental design.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 4pt; line-height: 150%;"><span style="line-height: 150%;font-family:";font-size:11;color:black;" lang="EN-US" >Experimental design is scientific way of organizing experiments.<o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><o:p> </o:p></p><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1316388869828180912007-03-11T20:00:00.000+02:002007-03-16T11:33:24.173+02:00IE 602 System Dynamics Lecture Notes 2007-03 - By Yaman Barlas<span style="font-weight: bold;">01 March 2007</span><br /><br /><o:p>Hi people, these are my lecture notes of the 3. session of IE 602 System Dynamics Analysis and Design course in <a href="http://www.ie.boun.edu.tr/">Industrial Engineering</a> Graduate Program of <a href="http://www.boun.edu.tr/">Bogazici University</a>. You can find the video of the lecture in <a href="http://video.google.com/videoplay?docid=-5025499577327972283&hl=en">Google Videos</a>. The course is given by <a href="http://www.ie.boun.edu.tr/%7Ebarlas/">Prof. Yaman Barlas</a>.<br /><br /></o:p><br /><span id="fullpost"><br /><o:p>Figures are here:<br /><a href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704247082823330"><img src="http://lh3.google.com/image/mert.nuhoglu/RfQtzlEsrqI/AAAAAAAAABU/cf0AQqpT3k4/s288/03.JPG" src="http://lh3.google.com/image/mert.nuhoglu/RfQtzlEsrqI/AAAAAAAAABU/cf0AQqpT3k4/s288/03.JPG" /></a><br /><br /></o:p> <p class="MsoNormal" style=""><b><span style="" lang="EN-US">20070301<o:p></o:p></span></b></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><b><span style="" lang="EN-US">BTS (Behavior Testing Software)<o:p></o:p></span></b></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Tools in BTS<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Slayt grafikler<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Assume that a certain system has these types of behavior. Fig.3.1<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">First graph (model generative) has near perfect fit.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Second: error: trend. Since there is a trend error, means differ. Thus ac function can’t be found.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Third: period error. Can you discuss phase angles? They will be periodically in or out of phase. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Fourth: First has almost non-modellable noise. Fourth noise is questionable. Modellable smaller period noise. Autocorrelation function or spectral density function will reveal this smaller oscillation. Variance of real data will be larger.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Fifth: out of phase. Cross correlation function will give a maximum at a certain lag. It can give a lag error but it will be random like 1.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Sixth: mean error<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Seventh: amplitude error<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">First you need detrend the data. Then do smoothing. Then check the periods. Until you remove period error. Then check phases and so on. So there is a logical order of tests. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Trend removal:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Models can be linear, quadratic, and exponential.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Take cross products and take the average. That is covariance function. Then there is notion of lag. If there is no lag, then it is covariance. If no lag, covariances in the data that are one lag apart. k can be at most 1/5 of the data. Covariance is a number it can be positive or negative. If large then there is a large covariance negative or pos. But how large is large? You normalize it. To normalize it, you divide it by max possible covariance. Max possible covariance is at zero, this is actually variance. This is famous autocorrelation function. By definition it is less than one. Any value which is statistically significantly larger than zero means, there is a significant covariance at lag k.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">One specific usage is to estimate the period of data. You can also prove that, if periodicity is t, autocorrelation function has period of t. That way time series is very noisy, autocorrelation function will be noise free. Another useful usage: general comparison of autocorrelation structures between real data and model generated data. AC is signature of data. AC is hard to.. Higher order sophisticated smaller movements in real data are captured by model itself? Ac structure of data and ac function of model. This is signature. Rather than comparing g real data and model generated output one by one. If you do that, you get huge errors. Then compare their signatures i.e. autocorrelation functions. Do the ac functions differ at any lag significantly? Each ac function is a statistic. Using variance of ac function, you construct confidence band or control limits. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">H0: All r (variance sanirim) are equal. At all lags. It is all multi ... test. It is hard to estimate alpha value of function, because it is not a single test. If you reject, only one is ejected. It is hard problem. They are not independent. If you reject at lag 2, you may also reject at lag 3. They are not independent hypothesis, they are auto correlated too. Alphas are not clear, but test is okay.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Estimating spectral density function: It is Fourier transformation of ac function. It is a function of time. That is it is in time domain. You transform it to obtain a function in frequency domain. S is frequency. </span><st1:place><span style="" lang="EN-US">Laplace</span></st1:place><span style="" lang="EN-US"> invented Think in frequency domain not in time domain. There is no future prediction etc.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">SD function details won't be discussed. You transform ac. Then use windowing (filtering) technique. Then you can estimate power. It can amplify dominating frequency. Then show you more than one frequency. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Next tool: cross correlation function. You take inventory data. Definition is very similar to covariance. You compute cross covariance. ...<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">If you divide ... that is Pearson. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Can I come up with computer their correlations at any lag? This is then, cc functions S and A. It is symmetrical around zero. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Fig.3.2 is a cc function. There is reasonably large ac at lag 0. Then they are in phase. So cc finds the delays between model and real data.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Another usage is you compute cc between inventory and production variables in the model and cc shows a phase lag. Then you compute cc between real inventories and real production. Then are the phase lags consistent? To compare the means you use t test etc. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Next problem: comparing amplitudes. You need curve fitting. First approach: fitting trigonometric functions. You fit trigonometric function to real data and model data. Once you fit, trigonometric function gives you amplitude. Then you compare A's (amplitude). This is the easiest way. You have to linearize trigonometric functions. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Second approach is Winter's method of forecasting. Winters method is designed to forecast seasonal data. These are not seasonal. Seasonal means oscillatory. attributed to auxiliary var. Oscillatory is not have to be attributed to auxiliary var. SD says these oscillations don't need to have exogenous causes. These are endogenous generated oscillations. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Winter's model: X=(a+bt)*F+e<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">F is a max at peak season. bottom at low season. Then there is base value. Forget b. there is no trend. Question is you have to estimate F for different time points. The notion of season is different, it is where you are in the cycle. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">How do you estimate amp? F values difference between max and min. Then unnormalize them. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Third app for amp estimation: simple trigonometric fitting fails because of too noisy amplitudes or somewhat noisy periods. So single sine wave is problematic. you take portions of data. Then you estimate different amps. Then average them. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Next tool: Trends in amp.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">You fit a sine wave. Then you compute a succession of sine waves. Fig.3.3. Then you fit a regression line to these estimates of amps. Then you get something like Fig.3.4.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">Last: People preoccupied with single measure. Audience asks you give me r square. That is the habit of regression. If you say 0.95 that is great. In SD you resist this. We know that single measure of validity does not exist. A research project of a single summary of discrepancies in models. You some sort of normalize all measures. As of today this doesn't exist. Since there is so much pressure. We use some measure better than r square but not quite valid for system dynamics: discrepancy coefficient. Comes from Tails inequality coefficient. It is a normalized measure of error between real data and model generated output. What it is, is, error between S and A (both normalized) divided by their own natural variances. This is equal to s_E std dev of errors divided by s_A (std dev. of real data) + s_S (std dev. of mdodel data) Smaller it is, better.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">How large is large is unclear. A highly valid model can create 30% coefficient values. More important is decomposition of U (coefficient value). Any value of U is not that imp. Three decompositions of U<span style=""> </span>exist. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">U1+U2+U3. These are additive. Percentage decompositions of U. from means (U1), variance(U2) imperfect correlation (U3). If U3=0.97 error comes from imperfect correlation. This is acceptable, because perfect correlation is not possible. This decomposition is more important than value itself. Beyond high U3 is unnecessary fine tuning. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US">End of validity discussion. Presentations and papers in moodle. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style="" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><code></code></p><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-4354994437222480762007-03-11T19:55:00.000+02:002007-03-16T11:37:53.625+02:00IE 602 System Dynamics Lecture Notes 2007-02 - By Yaman Barlas26 February 2007<br /><span style="line-height: 150%;" lang="EN-US"><br /><o:p>Hi people, these are my lecture notes of the 2. session of IE 602 System Dynamics Analysis and Design course in <a href="http://www.ie.boun.edu.tr/">Industrial Engineering</a> Graduate Program of <a href="http://www.boun.edu.tr/">Bogazici University</a>. You can find the video of the lecture in <a href="http://video.google.com/videoplay?docid=4121647093690357165&hl=en">Google Videos</a>. The course is given by <a href="http://www.ie.boun.edu.tr/%7Ebarlas/">Prof. Yaman Barlas</a>.<br /></o:p><br /></span><br /><span id="fullpost"><br />Figures are here:<br /><a href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704083874066050"><img src="http://lh5.google.com/image/mert.nuhoglu/RfQtqFEsroI/AAAAAAAAABE/emYdewVPSJ4/s288/01.JPG" src="http://lh5.google.com/image/mert.nuhoglu/RfQtqFEsroI/AAAAAAAAABE/emYdewVPSJ4/s288/01.JPG" /></a><br /><a href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704118233804434"><img src="http://lh5.google.com/image/mert.nuhoglu/RfQtsFEsrpI/AAAAAAAAABM/YcAwDAR1WUs/s288/02.JPG" src="http://lh5.google.com/image/mert.nuhoglu/RfQtsFEsrpI/AAAAAAAAABM/YcAwDAR1WUs/s288/02.JPG" /></a><br /><p class="MsoNormal" style=""><b><span style=";font-family:";font-size:11;" lang="EN-US" >Structure Validity - Verification <o:p></o:p></span></b></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Differences<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Methodology to indirect structure testing software:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >In general, you can't examine the output and deduce the structure from the behavior. This is general fact. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >But logically, write the expected behavior under extreme conditions. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" >Mantıksal tahminlerle, aşırı durumlarda, sonuçtan çıkarak yapıyı tahmin edebilirsin.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >There is first of all a base behavior. Fig. 2.1<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >In condition c, we expect some other behavior pattern, which is different than base behavior. Fig.2.2<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >But there is a subjective part as well. If the behavior is a little different like Fig.2.3 is this acceptable?<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >SIS Software:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >1. Teach the template of dynamical patterns. Program should recognize the patterns.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><span style=""> </span>E.g. Decline: subclasses: can go to zero or not<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><span style=""> </span>Growth and decline: subclasses: not S shaped growth, but a goal seeking growth.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><span style=""> </span>There are about twenty patterns to categorize all the fundamental patterns.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Pattern recognition:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Complicated </span><span lang="EN-US" style="font-size:11;">pattern recognition</span><span style=";font-family:";font-size:11;" lang="EN-US" > algorithms are about faces, handwriting. But they are not fit for functions. They don't exploit the </span><span lang="EN-US" style="font-size:11;">properties of </span><span style=";font-family:";font-size:11;" lang="EN-US" >functions. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Any function is a succession of curves. With two derivatives and ranges on these, we can summarize dynamical pattern of slopes and curvatures. </span><span lang="EN-US" style="font-size:11;">For example, a curve might have such ranges: I</span><span style=";font-family:";font-size:11;" lang="EN-US" >n the first range first derivative is positive, second is negative, then an inflection point. And so on. States are characterized by these two components</span><span lang="EN-US" style="font-size:11;"> (first derivative and second derivative)</span><span style=";font-family:";font-size:11;" lang="EN-US" >. Then you can characterize both derivatives being negative, second zero, first positive so forth. So a pattern like Fig.2.2 can be summarized by a few successions of states.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >We have some more measures: Constants: are they zero or more?<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Then you give hundreds of noisy data of each class. E.g. for Fig.2.2 the bunch in Fig. 2.4 are training data. They al</span><span lang="EN-US" style="font-size:11;">l</span><span style=";font-family:";font-size:11;" lang="EN-US" > belong to overshoot and decay to zero class. Computer brings some sort of probability matrix of the state transitions. Then </span><span lang="EN-US" style="font-size:11;">it produces </span><span style=";font-family:";font-size:11;" lang="EN-US" >transition probability matrix. Then it saves them. So, it averages all these. Then stamps class transition probability matrix. This is sort of signature of this class.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >You give some noise for patterns, for example you can add one more transient growth before the expected decay. It should probabilistically distinguish the data that looks like some pattern and determine to which class the data is closest? The likelihood to belonging to a class is maximized for one of the classes. Fig. 2.5<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >The algorithm is explained in thesis or working paper.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Example just to prove it works.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Base behavior of a model:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Change the parameters and obtain n output. Fig. 2.6 what is the new pattern? Algorithm says new pattern: negative exponential growth. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><b><span style=";font-family:";font-size:11;" lang="EN-US" >Parameter Calibration</span></b><span style=";font-family:";font-size:11;" lang="EN-US" > Fig.2.7<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >For example, the aim is to change the growth to an s-shaped growth from exponential growth. Is this possible?<span style=""> </span>Gönenç bu konuda çalışıyor.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >It runs all the combinations of parameters. But these combinatorial run becomes too many.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Then it says best parameters.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" >Bu araştırma konusu çok yüksek getiri sağlıyor.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" >Bu arama işlemi, akılılaştırılabilir mi (intelligence)?<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" >Gönenç çalışıyor.</span><span style=";font-family:";font-size:11;" lang="EN-US" > Heat algorithm, genetic algorithms heal climbing.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >They depend on problem instances.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" >Eğer çok sayıda yapıda çalışan algoritma bulabilirsek, bu araştırma olur. Tek bir yapıda değil. Modellerin benzerliğinden kasıt: modelin yapısı. Bu aslında matematiksel fonksiyonun biçmidir.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Calibration with input data:<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >SIS: </span><span style=";font-family:";font-size:11;" >Bu konuda ödevler verilecek.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Behavior Validity<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >It focuses on patterns, but not like pattern classification problem. It is qualitative. BV is quantitative validation. Real system is oscillations class, is my model behavior oscillatory? This is not the subject of behavior validity. Fundamental behavior is oscillatory. Then compare the patterns. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >What are pattern components of oscillations?<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Fig.2.8. Trend, period, amplitude.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >More measures? Phase angle? That is how it starts? Önce inişe mi geçiyor, çıkışa mı?<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >For many patterns it is like Fig. 2.9 (overshoot and decay). What components? Max, equilibrium, time points, slopes<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Dynamics of any system can be stated in two parts: transient, steady states. Fig.2.10a. Any dynamical system has these. Transient is caused by initial disequilibrium of system. After initial disequilibrium goes away, what the system does is steady state. This has no dynamics in Fig.2.10a. Whereas in b steady state behavior is damping oscillation. There is a big difference between two. You can apply this to every pattern.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >You can even have very strange dynamics like in Fig. 2.11. In steady state, there is a succession of boom and bust. Then equilibrium, then again boom and bust happens. Steady state is a succession of overshoot and equilibrium.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Fundamental difference between these two: <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >a) There is a steady state and transient state<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >b) There is only transient<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Statistical estimation cannot be applied to transient behavior. There is no repeated data thus you can’t obtain x bar i.e. average. You have to have repeated date. You can statistically compute the period of 2.10b. In Fig. 2.11You can statistically compute period but not maximum. In 2.10a, there is a single pint. For that reason transient behavior is not analyzed by statistical estimators.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >This is life cycle problem. A business collapses. Another example is some goal seeking control problem, thermostat. It just arrives to a constant temperature. They don’t have repetitive data. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><b><span style=";font-family:";font-size:11;" lang="EN-US" >Behavior Validity Testing Software: BTS II<o:p></o:p></span></b></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >First question: is it transient dynamics? Then you forget statistical estimations. You just find graphical measurements: maxima, minima, inflection points, and distances. In steady state there are more statistical measures: like trend regression, smoothing.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >First thing, to do: <b>detrend (remove trend) the data</b>. If any time pattern has trend in it, most of statistical measure, like variance, mean, autocorrelation functions are impossible to estimate. Most stat measures are related to x bar. If x bar doesn't exist, then you don have them.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Is there a trend? If there is, estimate trend and remove trend. (Trend regression)<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Then you do <b>smoothing</b>. This is for real data. In model, you turn off noisy parameters. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Fig.2.12. It looks like oscillatory behavior. First smooth this by filtering like moving averages, exponential smoothing.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Rest is standard tools.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Multi-step procedure: Barlas has ready packages for statistical measures. Otomatik olarak islemleri yapiyor.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><b><span style=";font-family:";font-size:11;" lang="EN-US" >Autocorrelation:<o:p></o:p></span></b></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Estimate autocorrelation function, they are like signatures of dynamical patterns. How successive data points are related. 0: 1. How 1 is correlated to 0 point. Fascinating is it doesn’t only show short term autocorrelation of model. Kısa dönemli korelasyonla, uzun dönemli korelasyon farklı. AC data has periodic behavior. At 22 is the peak again. That is not coincidence. This 22 is the estimate of noisy oscillatory time series. If time series is periodic, autocorrelation is periodic with the same period.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Take difference between two autocorrelation functions. Find 95% confidence band. Difference lies out of the band. Then you reject the hypothesis.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Spectral density function is transformation of ac function in frequency domain. Fourier transformations of ac function in s domain. Spectral density function use windowing technique. To exaggerate peaks. It is stat estimation technique. This ay spectral density function will show peaks frequencies at w</span><span lang="EN-US" style="font-size:11;">h</span><span style=";font-family:";font-size:11;" lang="EN-US" >ich time series has max energy content. It is also called power spectrum. Power content of time series is maximal at what time points? This will peak at dominating frequencies. Max occurs again at 20.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><b><span style=";font-family:";font-size:11;" lang="EN-US" >Cross correlation: </span></b><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >It is a measure that (ac was how in a given time series successions. time points are correlated?) cc is good old correlation function. How x and y are correlated? Take two data sets as x and y. You cross multiply x and y. Then divide by standard dev. That is Pearson correlation function. If it is positive, then data are positively correlated like lung cancer and cigarette smoking. CC is a generalization of that. I give you x and y. Cross correlate by different lengths x1 time y2. CC is a function of lag; only at lag 0 is good old correlation. Function is to find at any lag the cc of x and y. (Slayt PPde)<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >If at 0 the peak: then they are at perfect phase. When out of phase, peak somewhere else.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><b><span style=";font-family:";font-size:11;" lang="EN-US" >Amplitude:<o:p></o:p></span></b></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Compare discrepancy coefficient. <o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Single measure that summarizes overall numeric fit.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Next time I will show formulas.<o:p></o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" ><o:p> </o:p></span></p> <p class="MsoNormal" style=""><span style=";font-family:";font-size:11;" lang="EN-US" >Compare trend in amplitude:<o:p></o:p></span></p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"><o:p> </o:p></p><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.comtag:blogger.com,1999:blog-13608213.post-65764187128218049632007-03-11T19:40:00.000+02:002007-03-16T11:35:16.667+02:00IE 602 System Dynamics Lecture Notes 2007-01 - By Yaman Barlas<p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><st1:date year="2007" day="22" month="2"><b><span style="line-height: 150%;" lang="EN-US">22 February 2007</span></b></st1:date><b><span style="line-height: 150%;" lang="EN-US"> <o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p>Hi people, these are my lecture notes of the first session of IE 602 System Dynamics Analysis and Design course in <a href="http://www.ie.boun.edu.tr/">Industrial Engineering</a> Graduate Program of <a href="http://www.boun.edu.tr/">Bogazici University</a>. You can find the video of the lecture in <a href="http://video.google.com/videoplay?docid=3448537897633562432&hl=en">Google Videos</a>. The course is given by <a href="http://www.ie.boun.edu.tr/%7Ebarlas/">Prof. Yaman Barlas</a>.<br /></o:p></span></p><br /><span id="fullpost"><br /><br /><p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><br /><br /><o:p>Figures are here:</o:p></span></p><p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p><a href="http://picasaweb.google.com/mert.nuhoglu/IE602SystemDynamics/photo#5040704083874066050"><img src="http://lh5.google.com/image/mert.nuhoglu/RfQtqFEsroI/AAAAAAAAABE/emYdewVPSJ4/s288/01.JPG" src="http://lh5.google.com/image/mert.nuhoglu/RfQtqFEsroI/AAAAAAAAABE/emYdewVPSJ4/s288/01.JPG" /></a><br /></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><b><span style="line-height: 150%;" lang="EN-US">Methodology<o:p></o:p></span></b></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Model validity testing starts when you smart modeling effort and it is distributed through all phases. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">This lecture is about model validity testing.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Conceptual and Philosophical Foundations<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Most of these are from IE 550.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Major distinction between statistical models and system dynamics models (theory like models, transparent). </span><span style="line-height: 150%;font-size:11;" lang="EN-US" >System dynamics models</span><span style="line-height: 150%;" lang="EN-US"> claim to explain the causal description of real processes.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Fundamental difference: short-term forecasting model is valid if it provides accurate enough short-term forecast.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Validity is measured by accurate enough forecast.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Fig1.1<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">After observing real points you update your forecast model. So each time you obtain a few points ahead. Then see the error and update the model. This is called as: ex-post prediction. Ex-post means after having observed new information.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">These models don't claim any causality. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">E.g. it is demand for automobile tires. It may depend on mile consumption, bankruptcy, some function of time. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">In system dynamics there are different aspects of validity.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">1. Behavior validity. Similar to statistical validity. But this is only one component.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">2. Structural validity. This has greater importance. Causal justifiability of the model. Do the relations in the model reasonably approximate the real relations in the problem? System dynamics problem is valid, a) it has acceptable structure and acceptable representation of the real structure b) it can reproduce the dynamical behavior patterns of the real world.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Motto is:<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">The right behaviors for the right reasons.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">This means, both behavior and reasons are important for validity.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">System dynamics models are in the domain of science. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">It is not only statistical problem. You are trying to convince the people for the structure. It is a simplification of the reality but it is a good simplification. This is like a good cartoon. Charlie Chaplin, Alfred Hitchcock, a few drawings: there is a cigar, fat man. If you know Hitchcock, you know immediately that it is a good representation of him, although it has only 5 lines of him. I can draw him with 25 lines but it won't be good. All great cartoon drawers have this ability. With only a few strokes they are able to represent the real person.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Models are like that. They are extreme simplifications of reality. This act in arts, we can not proceed in science in this way very easily. E=mc2 you can not look and see yes this is correct. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">How do you convince people? This simplification is a good representation that it is a good representation of real world. This is a whole philosophical debate.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">There is a discussion, can we positively prove, that a scientific theory is valid representation of reality. Some logical, positivists argued that this should be possible. Relativists argue that there is no absolute truth. All models are temporarily acceptable. These are all conventions. We can never prove that the model is valid representation of the reality, even if it can be a simple event. You try to establish confidence. Science is an act of confidence in building validity of models or theory. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">System dynamics: validity testing is establishing confidence in the credibility of the models. There is no true, wrong model. Sterman: "all models are wrong". That is true philosophically. The question is which ones do you still use? Structural validity indicates a spectrum, not of yes or no. you have models that are great, fairly valid, so so, bad....<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">By the way, I talked about statistical significance is also a problematic term in philosophy. For one reason is, test of hypothesis is: H0: model is reality. Can we assume the equality? Alternative hypothesis is it is not equal. If you reject h0 it is a strong result, useful result. H0 assumes a state of world. H1 rejects it. If you cannot reject, there is a weak result, you cannot say anything about the outcome. You rejected h</span><span style="line-height: 150%;font-size:11;" lang="EN-US" >1</span><span style="line-height: 150%;" lang="EN-US"> but you don't know the why the outcome came out. This is the foundation of statistical hypothesis testing. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">H0 says: model statistically equals real world. If you reject h1 it is not practical. If you didn't reject, you don't have anything strong.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">In policy analysis is strong. Model behavior is real behavior. h1: amplitude is<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">By rejecting in policy analysis H1, you obtain a strong result.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Why is structural validity so important in system dynamics? Practical reason: these models are built to understand how problems are generated, and come up with new policies to improve the behavior of system. Without structural validity how can you play with structure to improve policy behavior? Structural validity is essential in system dynamics, because the problem is not forecasting. I claim that new policy, inventories will be improved. Fig 1.2<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Point predictive ability is behavior validity. In system dynamics, point forecasting nearly impossible, should not be expected from a system dynamics model. Point forecasting means point by point measure of errors. Ex-ante term: system dynamics models provide ex-ante predictions. You don't do curve fitting. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">In statistical model this equation is a model. In system dynamics the curve doesn't even exist. It is outcome of the model. There is a big difference. Everything is done at time 0. The laws are given and you let it go. fig.1.3<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">In comparison, system dynamics has very successful output validity. Real data may very well. Real data may be far more different than statistical model. In fluctuating patterns, real data can be much further. You have noise in real systems and they are auto correlated in real life. Fig 1.4 you can easily get huge errors although you can represent the oscillating pattern.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">System dynamics models provide pattern forecast rather than point forecast. this model says following: I am forecasting with a given set of relations, given set of initial conditions, the behavior of pattern will be damping oscillations, or collapse followed by growth oscillations. This is a forecast about behavior pattern. This distinction is terribly important. You are predicting but never will we compete with other models, even verbal models in the power of point forecasting because ex-ante models are not suitable for this. This is also true for chemical or scientific models.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Ex-ante: very weak point predictors but strong for behavior prediction.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Overall Nature and Selected Tests of Formal Model Validation<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Again you know from IE 550. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Outline:<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Validity testing:<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">first structure validity (big)<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">then behavior validity (smaller)<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Structure validity<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">as you build you make direct tests: <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">structure-confirmation<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">parameter-confirmation<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">direct extreme condition<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">dimensional consistency<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Indirect structure tests: (whole model) structure oriented. Whole system in connections. Does the whole have coherence?<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">You do simulation runs, and by observing runs, can you say something about validity of the model.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">In theory you cannot: in automata theory: a given output can be generated by an infinite number of structures. So by looking at output you cannot deduce structure. <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Thus we do special simulations: extreme condition, phase relationship test...<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Most important: extreme condition test. If you run model under some specifically chosen extreme conditions, prior running the model, you can logically deduce what the result will be like. E.g. population model. Let us run with 0 woman population. You know the population will decay to zero. You know also the pattern of behavior.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Question: is extreme condition so important, if there is a better operating model under normal conditions. <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Response: if the model yields a behavior pattern under extreme conditions. several possibilities exist: <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 34pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Model discovered something weak point in your problem.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 34pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Model does not cover certain ranges of model. You spend your effort in other areas of model. You consciously know that. That is okay. But you have to face it. <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 34pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Model teaches you something. You have such a good model. When you run it, you obtain a pattern you were not expecting. You learn something that you didn't realize. That is the greatest benefit.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">How do you do these indirect tests?<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 34pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Sis software: indirect structure testing software. It does try to automate these dynamical patterns, you can write down the expected outputs. Then the software will make all these runs to categorize the outputs obtained. It recognizes the patterns. There is an attempt to automate the process.<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 34pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">The problem in these indirect tests, you end up with 1000s of simulations and horrendous task to visually check each output. <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">behavior sensitivity: <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Boundary adequacy: two versions: 1. you add a new structure to the model. There is a questionable variable. You run the model with new structure if the model doesn't add a new pattern, the new structure is not necessary.<span style=""> </span>2. You remove some structure that looks unnecessary. <o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 22pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span style="line-height: 150%;font-family:Symbol;font-size:11;" lang="EN-US" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">Phase relationship: important. You don't compare sales to sales in real data. You compare e.g. phase relationships between finished inventory and raw material in the model and reality. This will tell you about weaknesses about delays involved. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">Behavior validity: more statistical. Remember this is about: I know I have a valid structure. Can I establish dynamical behavior pattern of real system by the model. Are they closed enough. Are the patterns closed enough, not the patterns? Then you have to define patterns firstly. Patterns might be trends, oscillations, amplitude, period, slope of damping envelope, curvature of the overshoot and decay, max-min points. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">1. Define patterns<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">2. Measure them<o:p></o:p></span></p> <p class="MsoNormal" style="margin-top: 3pt; line-height: 150%;"><span style="line-height: 150%;" lang="EN-US">3. Compare patterns of reality and model<o:p></o:p></span></p> <p class="MsoNormal" style="margin: 3pt 0cm 0.0001pt 10pt; text-indent: -10pt; line-height: 150%;"><!--[if !supportLists]--><span lang="EN-US" style="font-family:Symbol;"><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="line-height: 150%;" lang="EN-US">We have software</span><span style="line-height: 150%;font-size:11;" lang="EN-US" > for this</span><span style="line-height: 150%;" lang="EN-US">: BTS. </span><span style="" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal"><span style="" lang="EN-US"><o:p> </o:p></span></p><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1139732050769703082006-02-12T09:28:00.000+02:002006-02-12T10:23:30.616+02:00Tips for IntelliJ - 1: Adding a new file template<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1839/1203/1600/IntelliJ-20060212-1.jpg"><img src="http://photos1.blogger.com/blogger/1839/1203/320/IntelliJ-20060212-1.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1839/1203/320/IntelliJ-20060212-1.jpg" alt="" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1839/1203/1600/IntelliJ-20060212-2.jpg"><img src="http://photos1.blogger.com/blogger/1839/1203/320/IntelliJ-20060212-2.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1839/1203/320/IntelliJ-20060212-2.jpg" alt="" border="0" /></a><br />IntelliJ allows you to use his own file templates. For instance, you can define an html file template. Then whenever you let IntelliJ to create a new html file, your file template is ready to fill. To do this, go to File/Settings/File Templates. Add a new template in the Templates tab. Fill the content of the file template. Then go to the Project tree. Insert a new file by pressing Alt+Insert. You will see the new file template is there.<br /><br />To see this in action: <a href="http://img143.imageshack.us/my.php?image=creatinghtmltemplateinintellij.swf">http://img143.imageshack.us/my.php?image=creatinghtmltemplateinintellij.swf</a>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1139389135852492102006-02-08T10:50:00.000+02:002006-02-08T10:58:55.870+02:00Rename A Folder In StarTeamStarTeam doesn't allow to rename a folder. You can rename the folder. But then you will lose the history of the files in this folder. This is not good because the aim of using a configuration management tool is not to lose anything.<br /><br />There is a way to solve this problem. Say that there is a folder called my-folder. You want to rename the folder as your-folder. Create a new folder in local disk named "your-folder" using StarTeam. Then go to "my-folder". Drag the files in this folder to "your-folder". Select my-file and open History tab. You will see the whole history of the file without losing anything. Then delete my-folder.<br /><br />You can use this method when using refactoring commands like "Rename File" or "Rename Folder" of your favorite IDE.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1137917054593401822006-01-22T09:58:00.000+02:002006-01-22T10:04:14.603+02:00Praise for Joel SpolskyThere are some software engineering authors, that I really appreciate. <a href="http://www.paulgraham.com">Paul Graham</a>, <a href="http://www.martinfowler.com">Martin Fowler</a>, <a href="http://www.joelonsoftware.com">Joel Spolsky</a> are some of them. This post is just for Joel Spolsky. He has a good sense of humor. He writes complex ideas in a very simple to understand manner. And his texts are good to learn english :) Therefore I read him with pleasure.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1135539072745529612005-12-25T21:26:00.000+02:002007-03-16T11:39:10.760+02:00Richard Hamming: You and Your ResearchI read <a href="http://paulgraham.com/hamming.html">a great article</a> on having ambitions and pursuing after them. It has many surprising but very smart lessons. I cut and pasted some parts of this long article below. (I hope the author doesn't mind this :))<br /><br /><span id="fullpost"><br />In summary, I claim that some of the reasons why so many people who have greatness within their grasp don't succeed are: they don't work on important problems, they don't become emotionally involved, they don't try and change what is difficult to some other situation which is easily done but is still important, and they keep giving themselves alibis why they don't.<br />...<br />One of the characteristics of successful scientists is having courage. Once you get your courage up and believe that you can do important problems, then you can. If you think you can't, almost surely you are not going to.<br />...<br />When you are famous it is hard to work on small problems. This is what did Shannon in. After information theory, what do you do for an encore? The great scientists often make this error. They fail to continue to plant the little acorns from which the mighty oak trees grow. They try to get the big thing right off.<br />...<br /> ``How can anybody my age know as much as John Tukey does?'' He leaned back in his chair, put his hands behind his head, grinned slightly, and said, ``You would be surprised Hamming, how much you would know if you worked as hard as he did that many years.'' I simply slunk out of the office!<br />...<br />What Bode was saying was this: ``Knowledge and productivity are like compound interest.'' Given two people of approximately the same ability and one person who works ten percent more than the other, the latter will more than twice outproduce the former.<br />...<br />The steady application of effort with a little bit more work, intelligently applied is what does it. That's the trouble; drive, misapplied, doesn't get you anywhere. I've often wondered why so many of my good friends at Bell Labs who worked as hard or harder than I did, didn't have so much to show for it.<br />...<br />There's another trait on the side which I want to talk about; that trait is ambiguity. It took me a while to discover its importance. Most people like to believe something is or is not true. Great scientists tolerate ambiguity very well. They believe the theory enough to go ahead; they doubt it enough to notice the errors and faults so they can step forward and create the new replacement theory. If you believe too much you'll never notice the flaws; if you doubt too much you won't get started. It requires a lovely balance. But most great scientists are well aware of why their theories are true and they are also well aware of some slight misfits which don't quite fit and they don't forget it. Darwin writes in his autobiography that he found it necessary to write down every piece of evidence which appeared to contradict his beliefs because otherwise they would disappear from his mind.<br />...<br />For those who don't get committed to their current problem, the subconscious goofs off on other things and doesn't produce the big result. So the way to manage yourself is that when you have a real important problem you don't let anything else get the center of your attention - you keep your thoughts on the problem.<br />...<br />If you do not work on an important problem, it's unlikely you'll do important work. It's perfectly obvious.<br />...<br /> We didn't work on (1) time travel, (2) teleportation, and (3) antigravity. They are not important problems because we do not have an attack. It's not the consequence that makes a problem important, it is that you have a reasonable attack.<br />...<br />The great scientists, when an opportunity opens up, get after it and they pursue it. They drop all other things.<br />...<br /> I notice that if you have the door to your office closed, you get more work done today and tomorrow, and you are more productive than most. But 10 years later somehow you don't know quite know what problems are worth working on;<br />...<br />The technical person wants to give a highly limited technical talk. Most of the time the audience wants a broad general talk and wants much more survey and background than the speaker is willing to give.<br />You should paint a general picture to say why it's important, and then slowly give a sketch of what was done<br />...<br />John Tukey almost always dressed very casually. He would go into an important office and it would take a long time before the other fellow realized that this is a first-class man and he had better listen.<br /> He is going to dress the way he wants all of the time. It applies not only to dress but to a thousand other things; people will continue to fight the system.<br />...<br /> I am an egotistical person; there is no doubt about it. I knew that most people who took a sabbatical to write a book, didn't finish it on time. So before I left, I told all my friends that when I come back, that book was going to be done! Yes, I would have it done - I'd have been ashamed to come back without it! I used my ego to make myself behave the way I wanted to. I bragged about something so I'd have to perform.<br /><br />The link to the article: <a href="http://paulgraham.com/hamming.html">http://paulgraham.com/hamming.html</a><br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1124107901028215812005-08-15T15:00:00.000+03:002007-03-16T11:39:42.666+02:00A Piece of Lean Thinking in Software DevelopmentThere are two ways doing things when developing software:<br /><br />1. Collect the related things to do. Process all the related work together.<br /><br />2. When started an activity go deeper whenever required without putting work into backlog.<br /><br />Actually these two ways of doing things are very general. They may be applied to any kind of activity. But let's continue with software development.<br /><br /><span id="fullpost"><br />During coding I need to open several parantheses in my head in order the whole module to function properly. Sometimes I postpone them until I finish the current work. But when I finish the work, I forget the postponed activities. So I go on with some other activity, that I can remember. After finishing all the remembered activities, I build and run the software, but it crashes usually. I go back to the point that I had postponed.<br /><br />But sometimes I do things whenever I see the need to do it. This is safer at the end. But it requires a lot of memory too in order to return back, where I stayed.<br /><br />Lean thinking suggests to do things one-by-one. Backlogs and work in process inventories are harmful since they delay the whole project.<br /><br />I believe this is true. But our habits are somehow against it.<br /></span>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1123177433267254322005-08-04T20:43:00.000+03:002005-08-04T20:43:53.276+03:00Architecture - Objects - Layering etc.Architecture solves lots of problems. Sometimes I have to spend lots of time on debugging when I add new features to a software. But there are times that I write code without interruption of bugs. This is due to architecture. Architecture solves lots of problems implicitly saving us from debugging the bugs.<br /><br />One big problem is bad layering. UI, data access, business logic, security and other functionalities are all in one module (I use module in the sense of a whole unit. It may be a function, class or package.) Then lots of problems arise due to mismanagement of data or objects.<br /><br />A big issue that I encounter for the last few days is the coordination of objects' references. There is a huge network of objects. But some of the objects are rotten, that is they are not up to date with the database. But they are referenced by the UI or business layer. <br /><br />I will continue as always :) A friend has arrived...Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1122995714096897202005-08-02T18:08:00.000+03:002005-08-02T18:15:14.103+03:00User Interface Design and Being AgileThere is a very interesting problem that Dave Churchville blogged on: <a href="http://www.extremeplanner.com/blog/2005/07/can-user-interface-design-be-agile.html">Can user interface design be agile?</a><br /><br />He says, by being agile you develop iteratively. You listen the customer a little then develop some of the functionality rapidly. Then you make a meeting and customer gives some more feedback. <br /><br />This is a very valid and effective system. But this style of development brings us to a point, where we cannot understand the actual goal of the users. Instead of building empathy of the user's actual needs, we got to constrain ourselves on the words only. This is good on the one hand. The user steers the project. But there is always a tacit knowledge that the user is unable to express.<br /><br />I will try to write more on this. Now, I have to go home :)Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1122799549019593842005-07-31T11:45:00.000+03:002005-07-31T11:45:49.023+03:00Google MapI liked Google Map a lot. It is unfortunate for us that it doesn't cover Turkey yet. Geographical applications will probably increase their share in the future. <br /><br />We will be able to locate any address, institution through this map applications. 3rd party applications on Google Map will soon emerge. Now it is our turn as developers. We should find new ideas of applications of Google Map.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1122798918224609522005-07-31T11:35:00.000+03:002005-07-31T11:35:18.230+03:00Geography and GIS related BlogI saw GisUser's weblog inside the popular blog list of blogger. It is a great resource for people interested in geographical technologies. The link is: <a href="http://gisuser.blogspot.com/" title="GisUser">http://gisuser.blogspot.com</a>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1122736675761520902005-07-30T18:16:00.000+03:002005-07-30T18:21:17.726+03:00A spectacular view of sun...<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1839/1203/1600/Resim%20Trabzon%204%20058%20-%20Kucuk2.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/1839/1203/320/Resim%20Trabzon%204%20058%20-%20Kucuk2.jpg" border="0" alt="" /></a>Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1122718456098734872005-07-30T13:14:00.000+03:002005-07-30T13:14:16.106+03:00So many appraisals for a bad applicationThere is a timetable scheduling software called as Mimosa. It is totally unusable. There are lots of buttons in each screen that are totally not understandable by their labels. The labels have spelling errors. The graphical layout is totally unorganized. I think the users must have taken lots of training to be able to do something useful. <br /><br />But this software is sold to more than 50 countries around the world. The user comments are very appealing. Let me show some of them:<br /><br />"Thank you very much for your help, the software is excellent for our needs." <br />--- A.H.S., México D.F., Mexico <br /><br />"I have tried the software and have experienced thousand easy steps and all possibility options have been fulfilled. Thanks." <br />--- E.G., Dehradun, India <br /><br />"Mimosa is flexible and user-friendly. It makes creative timetabling possible at an affordable price." <br />--- R.M., Gaborone, Botswana<br /><br />How might this be true? This is totally incredible for me. It is nearly impossible to use this software. How did so many people like it?Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1122716449395499692005-07-30T12:40:00.000+03:002005-07-30T12:40:49.400+03:00w.bloggar does not support unicodeIt is sad for me to have learned that w.bloggar -a very useful desktop blogging client- does not support unicode. I can't post in Turkish with wbloggar. I hope they will soon add this feature.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com2tag:blogger.com,1999:blog-13608213.post-1119545455753886022005-06-23T19:41:00.000+03:002005-06-23T19:50:56.666+03:00Requirements ConfusionI am a software developer. In my projects I usually get into confusion when starting a new project. Every participant of the project has a different idea of the actual requirements. Reaching a real agreement is difficult. It is easy to cover indeterminate or non-agreed issues. But this won't be true.<br /><br />I believe that we engineers should be more competent in negotiation, politics and art of speaking. Making people work harmoniously is much more difficult than producing a software.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1119366566210229532005-06-21T18:04:00.000+03:002005-06-21T18:09:26.226+03:00Seth Godin's BlogThis is the most famous non-programmer I have seen in the blogging world: Seth Godin. He is the writer of "The Purple Cow" and "Permission Based Marketing". Actually I haven't read none of them :) But I have read Arman Kirim's books. He is a very good Turkish business author. I learned Seth Godin from his books. Arman Kirim has a very good understanding of differentiation, how to achieve it. <br /><br />I would recommend you to read his books. But they are only available in Turkish, as much as I know.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1119365554510917292005-06-21T17:28:00.000+03:002005-06-21T17:52:38.380+03:00Being a more productive bloggerKeith continues on being a more productive blogger. He has good advice:<br /><br />- Writing in a story manner. It is more flowing and keeps the reader's concentration high.<br /><br />- Learn from blogging. The comments and responses to your blog usually gives nice hints about the topic.<br /><br />- Use your blog as knowledge management tool. This was the most important reason for me to dive into blogging world. Before I was googling around for some problems. Now I usually collect problems and solutions through other people's blogs. I hope my blog will be useful to other people as well.<br /><br />I have one addition:<br /><br />- Blogging might be used as a corporate knowledge management/sharing tool. <br /><br />Let's say, someone (call Martin) has dealed with some problem. After a few months another person (call Matt) is assigned a similar problem. Matt enters the intranet weblog of the corporate and makes a search about the problem. He finds out that Martin has dealed with this problem before.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1119342803152355932005-06-21T11:33:00.000+03:002005-06-21T11:33:23.156+03:00Traffic DynamicsThree years ago I established a start-up company in order to build an intelligent transportation system for Istanbul. I had two partners. They were friends from my university (Bosphorus University). We had a good time. We made several meetings with the municipal authorities. Our plan was firstly to build a prototype of the simulation software. Then we would be able to obtain some funding from the municipality and other state organizations. Then we would build the actual software.<br /><br />Unfortunately we couldn't build a good enough prototype at that time. There was some nice features of our software but we were not satisfied. So then we broke up and ceased the activity after a few months. <br /><br />Then I decided to learn software development deeper and maybe after one year I would be able to reactivate the company. But when I entered into the business of software development world, I saw that it never ends. Everyday I have to learn new things. Actually I enjoy this. It motivates me and excites me. But nevertheless I still have my determination to reestablish my company. I believe God, He will let me achieve this one day :)<br /><br />Have a nice day...Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0tag:blogger.com,1999:blog-13608213.post-1119339482238569882005-06-21T10:30:00.000+03:002005-06-21T10:38:02.243+03:00Post classification systemNow I am developing a software that should classify several posts according to some rules. It is an interesting problem. But the physical post classification system has not been defined yet. I wonder whether you know some references on such a system?<br /><br />The system should send all the envelopes belonging to the same family all together. But the envelopes don't flow by family. They come randomly. The software should say to the classifier which box to put the envelope. If the envelopes belonging to the whole family are not collected then the system won't allow to send any of the member's envelopes.<br /><br />Maybe we should specify the rules in another way.Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com1tag:blogger.com,1999:blog-13608213.post-1119279733625966082005-06-20T18:02:00.000+03:002005-06-20T18:02:13.626+03:00Second tryThis is my second try for bloggint through sending an email...<br> Mert Nuhogluhttp://www.blogger.com/profile/13791089273448603451noreply@blogger.com0