/* IQ over years in Picat. For some reason (*) I got interested in the following problem which may - or may not - have some background in real life. A person at age A (say at age 19) got an IQ score of IQ (say 126). What is the probability that A has the same IQ score at a later age (say 68). Or: A did a test at age 19 that gave a Stanine score (https://en.wikipedia.org/wiki/Stanine ) of 9 (of 9), which represents > 126. What is the probability that A at age 68 has a score at least 127, and what are the statistics of that score. Here we assume - by some calculation based on typical values from long-term IQ stability studies (e.g., Scottish Mental Survey, Dunedin Study), that the IQ score declines per year according to "normal-drif" of normal(-0.175,1.7) (which was calculated in collaboration with ChatGPT 4o). This means there is actually some possibility of actual raising the IQ scores per year (The probability of getting a positive score is 1-normal_dist_cdf(-0.175,1.7,0) = 0.459004828588723). Below are some different scenarios. (*) One part of the interest in this problem is that I realized (or rather contemplated about) that the IQ scores are age normed so a person's score at age 19 is not really comparable to the score at later year, say about 50 years later . The age score are only comparable for the same age (age group). And, the IQ scores - before age norming - tends to decline over the year, but the average for each age (group) after age norming is - per definition - 100. Cf my Gamble model gamble_iq_over_years.rkt This program was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ import ppl_distributions, ppl_utils,ppl_common_utils. import util. % import ordset. main => go. /* * Scenario 1 Let's start with the the simple assumptions that the IQ only changes by a random value each year, i.e. just the normal-dift (UseTotalChange == false) and a fixed IQ score at age 19 of 126. var : start iq Probabilities: 126: 1.0000000000000000 mean = 126.0 [len = 10000,min = 126,mean = 126.0,median = 126.0,max = 126,variance = 0.0,stdev = 0.0] HPD intervals: HPD interval (0.5): 126.00000000000000..126.00000000000000 HPD interval (0.84): 126.00000000000000..126.00000000000000 HPD interval (0.9): 126.00000000000000..126.00000000000000 HPD interval (0.94): 126.00000000000000..126.00000000000000 HPD interval (0.99): 126.00000000000000..126.00000000000000 HPD interval (0.99999): 126.00000000000000..126.00000000000000 var : last year iq Probabilities (truncated): 162.155678156403695: 0.0001000000000000 159.726321020080007: 0.0001000000000000 158.10605733563213: 0.0001000000000000 157.845624202984681: 0.0001000000000000 ......... 77.510375987382716: 0.0001000000000000 75.907725081540306: 0.0001000000000000 74.556655126771233: 0.0001000000000000 74.438039542340604: 0.0001000000000000 mean = 117.784 [len = 10000,min = 74.438,mean = 117.784,median = 117.851,max = 162.156,variance = 136.663,stdev = 11.6903] HPD intervals: HPD interval (0.5): 108.68786814311088..124.29417009104863 HPD interval (0.84): 100.52836381621688..133.19117516271970 HPD interval (0.9): 98.47078020438038..136.99400794667625 HPD interval (0.94): 95.14145343892928..139.51052454328718 HPD interval (0.99): 88.80243787813552..148.91772270912205 HPD interval (0.99999): 74.43803954234060..162.15567815640370 var : last year iq ~ 126 Probabilities: false: 0.8969000000000000 true: 0.1031000000000000 mean = 0.1031 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 126 Probabilities: false: 0.7617000000000000 true: 0.2383000000000000 mean = 0.2383 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 132 Probabilities: false: 0.8897000000000000 true: 0.1103000000000000 mean = 0.1103 show_simple_stats: no numeric data HPD intervals: [] var : min iq Probabilities (truncated): 126: 0.0285000000000000 125.997244792062816: 0.0001000000000000 125.984913291944309: 0.0001000000000000 125.983658525297173: 0.0001000000000000 ......... 75.907725081540306: 0.0001000000000000 75.846373455604862: 0.0001000000000000 74.438039542340604: 0.0001000000000000 72.445228710187791: 0.0001000000000000 mean = 112.742 [len = 10000,min = 72.4452,mean = 112.742,median = 113.759,max = 126,variance = 76.4654,stdev = 8.74445] HPD intervals: HPD interval (0.5): 109.79386477741063..121.91331388099952 HPD interval (0.84): 103.91162727528311..126.00000000000000 HPD interval (0.9): 100.84573343483051..126.00000000000000 HPD interval (0.94): 97.82128290404189..126.00000000000000 HPD interval (0.99): 89.39098166503338..126.00000000000000 HPD interval (0.99999): 72.44522871018779..126.00000000000000 var : mean iq Probabilities (truncated): 147.327218013478017: 0.0001000000000000 146.776779949843643: 0.0001000000000000 146.182250984464304: 0.0001000000000000 145.499842775275312: 0.0001000000000000 ......... 99.824073354936559: 0.0001000000000000 98.003303808612884: 0.0001000000000000 97.170819839477616: 0.0001000000000000 95.56952238741772: 0.0001000000000000 mean = 121.931 [len = 10000,min = 95.5695,mean = 121.931,median = 121.923,max = 147.327,variance = 45.4126,stdev = 6.73889] HPD intervals: HPD interval (0.5): 117.71376413033043..126.76072296789492 HPD interval (0.84): 112.53654010920138..131.35655983226727 HPD interval (0.9): 111.16130281840408..133.30964898012300 HPD interval (0.94): 109.25112941683867..134.63749263516351 HPD interval (0.99): 105.05039693576674..138.79815768392859 HPD interval (0.99999): 95.56952238741772..147.32721801347802 var : medianiq Probabilities (truncated): 126: 0.0101000000000000 150.831612274799852: 0.0001000000000000 150.758308180550898: 0.0001000000000000 149.752524543949107: 0.0001000000000000 ......... 95.859105767564003: 0.0001000000000000 95.638669230322236: 0.0001000000000000 93.027634314695689: 0.0001000000000000 91.263731705747205: 0.0001000000000000 mean = 121.914 [len = 10000,min = 91.2637,mean = 121.914,median = 122.32,max = 150.832,variance = 51.2552,stdev = 7.15927] HPD intervals: HPD interval (0.5): 117.90759448017859..126.88937046289807 HPD interval (0.84): 111.73520896923225..131.54767491200585 HPD interval (0.9): 110.14973813442612..133.63367597696472 HPD interval (0.94): 107.77552453982419..135.15091727520857 HPD interval (0.99): 102.15631282811546..139.59426448585890 HPD interval (0.99999): 91.26373170574720..150.83161227479985 var : max iq Probabilities (truncated): 126: 0.1598000000000000 163.952744538926254: 0.0001000000000000 161.92909298619108: 0.0001000000000000 161.267119336991442: 0.0001000000000000 ......... 126.00342765963282: 0.0001000000000000 126.002947132710901: 0.0001000000000000 126.001678714413842: 0.0001000000000000 126.001449287243005: 0.0001000000000000 mean = 131.128 [len = 10000,min = 126,mean = 131.128,median = 129.605,max = 163.953,variance = 27.6666,stdev = 5.25991] HPD intervals: HPD interval (0.5): 126.00000000000000..129.60387616584765 HPD interval (0.84): 126.00000000000000..136.06488033246646 HPD interval (0.9): 126.00000000000000..138.59842465029473 HPD interval (0.94): 126.00000000000000..140.97688887417667 HPD interval (0.99): 126.00000000000000..148.00310135802820 HPD interval (0.99999): 126.00000000000000..163.95274453892625 var : mean diffs Probabilities (truncated): 0.753243294925077: 0.0001000000000000 0.702631687918334: 0.0001000000000000 0.668876194492336: 0.0001000000000000 0.663450504228848: 0.0001000000000000 ......... -1.01020050026286: 0.0001000000000000 -1.043589060801244: 0.0001000000000000 -1.071736351525599: 0.0001000000000000 -1.074207509534571: 0.0001000000000000 mean = -0.171164 [len = 10000,min = -1.07421,mean = -0.171164,median = -0.169765,max = 0.753243,variance = 0.0593157,stdev = 0.243548] HPD intervals: HPD interval (0.5): -0.36066941368519..-0.03553812310315 HPD interval (0.84): -0.53065908716215..0.14981614922333 HPD interval (0.9): -0.57352541240874..0.22904183222242 HPD interval (0.94): -0.64288638668897..0.28146926131848 HPD interval (0.99): -0.77494921087218..0.47745255644004 HPD interval (0.99999): -1.07420750953457..0.75324329492508 In this scenario, the mean of IQ at age 68 is 117.78. The probability of an IQ at age 68 that's about 126 is 10.3%. And it's 23.8% that the IQ has actually increased. * Scenario 2 But it tends to be more complex than that, since life occasionally happens. So let's add two events: - probability that a negative event happen Such as cancer diagnosis, chemotherapy or some other sickness/events of self or of relatives. Or loss of job etc. Let's make this a probability of 0.02 that such negative event happen, and that the score decline for that year is (max 0 (normal 2 1)) - probability that a positive event happen For example getting a new IQ boosting interest or some other happy things that boosts the IQ score. Let's make this a probability of 0.01 that such a positive event happen, and that the score raises for that year is (max 0 (normal 2 1)) var : start iq Probabilities: 126: 1.0000000000000000 mean = 126.0 [len = 10000,min = 126,mean = 126.0,median = 126.0,max = 126,variance = 0.0,stdev = 0.0] HPD intervals: HPD interval (0.5): 126.00000000000000..126.00000000000000 HPD interval (0.84): 126.00000000000000..126.00000000000000 HPD interval (0.9): 126.00000000000000..126.00000000000000 HPD interval (0.94): 126.00000000000000..126.00000000000000 HPD interval (0.99): 126.00000000000000..126.00000000000000 HPD interval (0.99999): 126.00000000000000..126.00000000000000 var : last year iq Probabilities (truncated): 183.505432215012718: 0.0001000000000000 162.283516598480873: 0.0001000000000000 156.24680041126291: 0.0001000000000000 155.967896913814428: 0.0001000000000000 ......... 75.127796284073341: 0.0001000000000000 74.664855505565541: 0.0001000000000000 71.307941981005172: 0.0001000000000000 70.683654161988414: 0.0001000000000000 mean = 116.495 [len = 10000,min = 70.6837,mean = 116.495,median = 116.4,max = 183.505,variance = 140.908,stdev = 11.8705] HPD intervals: HPD interval (0.5): 107.47406390107443..123.57759395594884 HPD interval (0.84): 100.12261205502972..133.23173013914035 HPD interval (0.9): 98.06878019609177..136.78990938175386 HPD interval (0.94): 93.70929608484424..138.24082177348262 HPD interval (0.99): 86.18667597079225..146.62216582430062 HPD interval (0.99999): 70.68365416198841..183.50543221501272 var : last year iq ~ 126 Probabilities: false: 0.8984000000000000 true: 0.1016000000000000 mean = 0.1016 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 126 Probabilities: false: 0.7887999999999999 true: 0.2112000000000000 mean = 0.2112 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 132 Probabilities: false: 0.9032000000000000 true: 0.0968000000000000 mean = 0.0968 show_simple_stats: no numeric data HPD intervals: [] var : min iq Probabilities (truncated): 126: 0.0237000000000000 125.992131014636229: 0.0001000000000000 125.981789131340022: 0.0001000000000000 125.970607775159834: 0.0001000000000000 ......... 73.830795501211526: 0.0001000000000000 72.117455592715785: 0.0001000000000000 71.307941981005172: 0.0001000000000000 69.964657751269428: 0.0001000000000000 mean = 111.608 [len = 10000,min = 69.9647,mean = 111.608,median = 112.479,max = 126,variance = 81.7809,stdev = 9.04328] HPD intervals: HPD interval (0.5): 108.35709125469373..120.80620237039150 HPD interval (0.84): 102.33882145333985..126.00000000000000 HPD interval (0.9): 99.29860894996351..126.00000000000000 HPD interval (0.94): 96.18868501962841..126.00000000000000 HPD interval (0.99): 87.84412232831279..126.00000000000000 HPD interval (0.99999): 69.96465775126943..126.00000000000000 var : mean iq Probabilities (truncated): 153.622951733653309: 0.0001000000000000 150.214054515947169: 0.0001000000000000 146.728325791416495: 0.0001000000000000 145.949239718443806: 0.0001000000000000 ......... 96.598618822609325: 0.0001000000000000 96.429657156336347: 0.0001000000000000 96.291179302235406: 0.0001000000000000 95.057168855961834: 0.0001000000000000 mean = 121.236 [len = 10000,min = 95.0572,mean = 121.236,median = 121.236,max = 153.623,variance = 46.4114,stdev = 6.81259] HPD intervals: HPD interval (0.5): 117.56579575139160..126.62491956781348 HPD interval (0.84): 111.58946850748963..130.61556378960390 HPD interval (0.9): 109.91341865874838..132.25874458228449 HPD interval (0.94): 108.10279538905596..133.63539901725420 HPD interval (0.99): 103.48292654969741..138.34233350376505 HPD interval (0.99999): 95.05716885596183..153.62295173365331 var : medianiq Probabilities (truncated): 126: 0.0126000000000000 153.954214743500273: 0.0001000000000000 153.722722579696438: 0.0001000000000000 149.255159350755207: 0.0001000000000000 ......... 93.951354833381174: 0.0001000000000000 93.782040534700158: 0.0001000000000000 93.714380991759441: 0.0001000000000000 90.838706761588: 0.0001000000000000 mean = 121.246 [len = 10000,min = 90.8387,mean = 121.246,median = 121.701,max = 153.954,variance = 53.0036,stdev = 7.28036] HPD intervals: HPD interval (0.5): 117.81865160101538..126.92770693595580 HPD interval (0.84): 111.26247033988665..131.21926754360427 HPD interval (0.9): 108.91943461381786..132.78474876516998 HPD interval (0.94): 106.65512003444466..134.19282345858261 HPD interval (0.99): 100.76440238299379..139.48525929965840 HPD interval (0.99999): 90.83870676158800..153.95421474350027 var : max iq Probabilities (truncated): 126: 0.1694000000000000 185.237702860844109: 0.0001000000000000 164.280337447104728: 0.0001000000000000 159.696405349403534: 0.0001000000000000 ......... 126.003572551728709: 0.0001000000000000 126.003421611926328: 0.0001000000000000 126.001868954274656: 0.0001000000000000 126.000549298399463: 0.0001000000000000 mean = 130.835 [len = 10000,min = 126,mean = 130.835,median = 129.38,max = 185.238,variance = 25.7142,stdev = 5.07091] HPD intervals: HPD interval (0.5): 126.00000000000000..129.37817608679686 HPD interval (0.84): 126.00000000000000..135.56399271419207 HPD interval (0.9): 126.00000000000000..137.90864433394839 HPD interval (0.94): 126.00000000000000..140.19258719670154 HPD interval (0.99): 126.00000000000000..147.47372031751013 HPD interval (0.99999): 126.00000000000000..185.23770286084411 var : mean diffs Probabilities (truncated): 1.198029837812765: 0.0001000000000000 0.755906595801685: 0.0001000000000000 0.630141675234644: 0.0001000000000000 0.624331185704467: 0.0001000000000000 ......... -1.059837577415139: 0.0001000000000000 -1.069482176967385: 0.0001000000000000 -1.139417875395726: 0.0001000000000000 -1.152423871625241: 0.0001000000000000 mean = -0.198021 [len = 10000,min = -1.15242,mean = -0.198021,median = -0.199991,max = 1.19803,variance = 0.0611578,stdev = 0.247301] HPD intervals: HPD interval (0.5): -0.38595700206095..-0.05046679258440 HPD interval (0.84): -0.53911224885355..0.15066104456542 HPD interval (0.9): -0.58190041258142..0.22478977878654 HPD interval (0.94): -0.67272299823241..0.25501712028089 HPD interval (0.99): -0.82944425060849..0.42962845467293 HPD interval (0.99999): -1.15242387162524..1.19802983781276 Interestingly, the mean value of score at 68 is then 116.5 (vs 117.8 for the normal-drift version) which is perhaps a little surprising result (assuming that all assumptions that is made are reasonable). * Scenario 3 As noted above a Stanine score of 9/9 actually means that the score is > 126, so let's adjust for that by making StartIQ (at age 19) a random variable with the conditional probability: normal(100,15) > 126 min_accepted_samples = 10000 var : start iq Probabilities (truncated): 172.324802499890581: 0.0001000000000000 165.698189350267796: 0.0001000000000000 165.1032678223836: 0.0001000000000000 164.331133776900629: 0.0001000000000000 ......... 126.001818692460787: 0.0001000000000000 126.001788386944767: 0.0001000000000000 126.001243143604114: 0.0001000000000000 126.001149208777846: 0.0001000000000000 mean = 132.125 [len = 10000,min = 126.001,mean = 132.125,median = 130.567,max = 172.325,variance = 30.433,stdev = 5.51661] HPD intervals: HPD interval (0.5): 126.00114920877785..130.56512577003647 HPD interval (0.84): 126.00124314360411..137.23760103099892 HPD interval (0.9): 126.00114920877785..139.65884655633471 HPD interval (0.94): 126.00114920877785..142.33952963748050 HPD interval (0.99): 126.00114920877785..150.59200238568826 HPD interval (0.99999): 126.00114920877785..172.32480249989058 var : last year iq Probabilities (truncated): 179.01030678922109: 0.0001000000000000 175.912024941972845: 0.0001000000000000 173.933636580317909: 0.0001000000000000 173.362649610207285: 0.0001000000000000 ......... 81.492764147705444: 0.0001000000000000 80.557492546405342: 0.0001000000000000 77.940044054256788: 0.0001000000000000 70.597589334712666: 0.0001000000000000 mean = 122.719 [len = 10000,min = 70.5976,mean = 122.719,median = 122.438,max = 179.01,variance = 174.445,stdev = 13.2078] HPD intervals: HPD interval (0.5): 113.73570852334096..131.44275734468548 HPD interval (0.84): 103.14999897841243..140.33841768301139 HPD interval (0.9): 100.91508979255757..144.51017551021994 HPD interval (0.94): 97.69797308588103..147.07355723812938 HPD interval (0.99): 88.64500274315397..155.77286483848926 HPD interval (0.99999): 70.59758933471267..179.01030678922109 var : last year iq ~ 126 Probabilities: false: 0.9089000000000000 true: 0.0911000000000000 mean = 0.0911 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 126 Probabilities: false: 0.7839000000000000 true: 0.2161000000000000 mean = 0.2161 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 132 Probabilities: false: 0.7608000000000000 true: 0.2392000000000000 mean = 0.2392 show_simple_stats: no numeric data HPD intervals: [] var : min iq Probabilities (truncated): 170.634032822717757: 0.0001000000000000 160.495208273966284: 0.0001000000000000 157.17612122479656: 0.0001000000000000 155.524737823463937: 0.0001000000000000 ......... 81.189805030950112: 0.0001000000000000 80.557492546405342: 0.0001000000000000 77.940044054256788: 0.0001000000000000 70.597589334712666: 0.0001000000000000 mean = 117.796 [len = 10000,min = 70.5976,mean = 117.796,median = 118.307,max = 170.634,variance = 114.359,stdev = 10.6939] HPD intervals: HPD interval (0.5): 114.03206211875695..128.05528193734304 HPD interval (0.84): 103.16327040643117..132.79260349431539 HPD interval (0.9): 99.14269186359434..134.19871656257033 HPD interval (0.94): 96.98461473410030..137.06555640827571 HPD interval (0.99): 89.63770141842460..145.79286559148090 HPD interval (0.99999): 70.59758933471267..170.63403282271776 var : mean iq Probabilities (truncated): 174.270010345273846: 0.0001000000000000 168.780592101673903: 0.0001000000000000 167.130219086353293: 0.0001000000000000 167.040161158973035: 0.0001000000000000 ......... 100.534008377669778: 0.0001000000000000 99.590088730747851: 0.0001000000000000 99.112895281097082: 0.0001000000000000 97.878247764736813: 0.0001000000000000 mean = 127.413 [len = 10000,min = 97.8782,mean = 127.413,median = 126.935,max = 174.27,variance = 77.8029,stdev = 8.8206] HPD intervals: HPD interval (0.5): 120.97742428232384..132.28703523557340 HPD interval (0.84): 114.56567689829119..138.61804841002908 HPD interval (0.9): 112.69710429438783..141.37172801054558 HPD interval (0.94): 111.15922677833217..144.56596318149843 HPD interval (0.99): 106.98402553679736..153.05970603392382 HPD interval (0.99999): 97.87824776473681..174.27001034527385 var : medianiq Probabilities (truncated): 174.50549383732502: 0.0001000000000000 169.183348045900772: 0.0001000000000000 168.595991589569536: 0.0001000000000000 167.755319082747178: 0.0001000000000000 ......... 95.488959264769434: 0.0001000000000000 95.338977316778781: 0.0001000000000000 95.270054146728015: 0.0001000000000000 94.946570156132097: 0.0001000000000000 mean = 127.42 [len = 10000,min = 94.9466,mean = 127.42,median = 127.222,max = 174.505,variance = 83.8395,stdev = 9.15639] HPD intervals: HPD interval (0.5): 121.91644789491660..133.38420813307607 HPD interval (0.84): 114.85676621865875..140.02753780716608 HPD interval (0.9): 111.51555535946089..141.62093353531830 HPD interval (0.94): 110.58304939318020..145.62999588449910 HPD interval (0.99): 105.04499658813911..154.08124772757648 HPD interval (0.99999): 94.94657015613210..174.50549383732502 var : max iq Probabilities (truncated): 179.01030678922109: 0.0001000000000000 178.151929872121286: 0.0001000000000000 177.963293649136602: 0.0001000000000000 176.859614808659074: 0.0001000000000000 ......... 126.021777336815433: 0.0001000000000000 126.016743256349969: 0.0001000000000000 126.014911222483306: 0.0001000000000000 126.003211222462994: 0.0001000000000000 mean = 137.022 [len = 10000,min = 126.003,mean = 137.022,median = 135.56,max = 179.01,variance = 56.4342,stdev = 7.51227] HPD intervals: HPD interval (0.5): 128.72366677304035..137.47219224853998 HPD interval (0.84): 126.30992403892643..144.50107204254172 HPD interval (0.9): 126.12579423815333..147.25562315716462 HPD interval (0.94): 126.00321122246299..150.38568280225954 HPD interval (0.99): 126.01491122248331..159.94887590126524 HPD interval (0.99999): 126.00321122246299..179.01030678922109 var : mean diffs Probabilities (truncated): 0.865877043388866: 0.0001000000000000 0.81721471625805: 0.0001000000000000 0.642710845777801: 0.0001000000000000 0.635307023156172: 0.0001000000000000 ......... -1.005983521483821: 0.0001000000000000 -1.02830929357285: 0.0001000000000000 -1.115872418698945: 0.0001000000000000 -1.21637362611168: 0.0001000000000000 mean = -0.195955 [len = 10000,min = -1.21637,mean = -0.195955,median = -0.197147,max = 0.865877,variance = 0.0624019,stdev = 0.249804] HPD intervals: HPD interval (0.5): -0.35898264624494..-0.02774089288588 HPD interval (0.84): -0.54532112106984..0.15701729406833 HPD interval (0.9): -0.59012509412574..0.22806777406122 HPD interval (0.94): -0.66524102181978..0.27472138931888 HPD interval (0.99): -0.81762720259229..0.45503750511311 HPD interval (0.99999): -1.21637362611168..0.86587704338887 Then the mean value of start iq is 132.1. The mean score at age 68 would then be 122.7 (HPD at 0.84: 103.15..140.34). Include both positive and negative events (UseTotalChange == true), but the start IQ is a random normal distribution with IQ > 126. * Scenario 4 Here's a reverse calculation: Given the assumption in Scenario 3, i.e. that we are unsure of the IQ at age 19, and only know that it's > 126. What would the IQ at age 19 have been if the IQ at age 68 is > 132? The model gives that the mean would be 135.3 (HPD at 0.84: 126.0..142.12). var : start iq Probabilities (truncated): 173.969812236770565: 0.0001000000000000 171.533585126418046: 0.0001000000000000 171.504682339104022: 0.0001000000000000 168.344961484435316: 0.0001000000000000 ......... 126.00490340182543: 0.0001000000000000 126.003609928006256: 0.0001000000000000 126.003160513067328: 0.0001000000000000 126.002339677312065: 0.0001000000000000 mean = 135.335 [len = 10000,min = 126.002,mean = 135.335,median = 134.093,max = 173.97,variance = 45.964,stdev = 6.77967] HPD intervals: HPD interval (0.5): 126.11103111573178..134.18099734720846 HPD interval (0.84): 126.00233967731207..142.11787147422388 HPD interval (0.9): 126.00233967731207..144.72746392700378 HPD interval (0.94): 126.00316051306733..147.37732184546039 HPD interval (0.99): 126.00233967731207..155.13216579527750 HPD interval (0.99999): 126.00233967731207..173.96981223677057 var : last year iq Probabilities (truncated): 189.234334356737349: 0.0001000000000000 184.637181289864429: 0.0001000000000000 180.917439995009971: 0.0001000000000000 180.414979755438992: 0.0001000000000000 ......... 132.010048221722883: 0.0001000000000000 132.008029029597964: 0.0001000000000000 132.002382495200891: 0.0001000000000000 132.000166215183242: 0.0001000000000000 mean = 140.098 [len = 10000,min = 132.0,mean = 140.098,median = 138.376,max = 189.234,variance = 46.9441,stdev = 6.85158] HPD intervals: HPD interval (0.5): 132.01004822172288..138.38002275959323 HPD interval (0.84): 132.01004822172288..146.64438745532368 HPD interval (0.9): 132.00016621518324..149.40408699837482 HPD interval (0.94): 132.00016621518324..152.49038696786067 HPD interval (0.99): 132.00016621518324..161.56979068581171 HPD interval (0.99999): 132.00016621518324..189.23433435673735 var : last year iq ~ 126 Probabilities: false: 0.8366000000000000 true: 0.1634000000000000 mean = 0.1634 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 126 Probabilities: true: 0.7446000000000000 false: 0.2554000000000000 mean = 0.7446 show_simple_stats: no numeric data HPD intervals: [] var : last year iq > 132 Probabilities: true: 1.0000000000000000 mean = 1.0 show_simple_stats: no numeric data HPD intervals: [] var : min iq Probabilities (truncated): 162.448337032337207: 0.0001000000000000 161.398935429324638: 0.0001000000000000 158.985466394153832: 0.0001000000000000 157.565176898838729: 0.0001000000000000 ......... 111.200707270174448: 0.0001000000000000 109.998537539348362: 0.0001000000000000 109.466789832786617: 0.0001000000000000 109.324809797163823: 0.0001000000000000 mean = 129.812 [len = 10000,min = 109.325,mean = 129.812,median = 129.258,max = 162.448,variance = 39.0786,stdev = 6.25128] HPD intervals: HPD interval (0.5): 124.94638992973572..132.55862632598217 HPD interval (0.84): 121.37978745110286..138.07949375143181 HPD interval (0.9): 119.50174808849590..139.49604024558008 HPD interval (0.94): 118.44549790104018..142.04912260589143 HPD interval (0.99): 114.30713761942958..148.38253444009950 HPD interval (0.99999): 109.32480979716382..162.44833703233721 var : mean iq Probabilities (truncated): 169.791328497738505: 0.0001000000000000 168.852948566507507: 0.0001000000000000 168.58247145593549: 0.0001000000000000 168.469851791977362: 0.0001000000000000 ......... 121.513229751866746: 0.0001000000000000 121.260626952058672: 0.0001000000000000 121.259085595848831: 0.0001000000000000 119.439638854008194: 0.0001000000000000 mean = 137.732 [len = 10000,min = 119.44,mean = 137.732,median = 137.012,max = 169.791,variance = 41.9412,stdev = 6.47621] HPD intervals: HPD interval (0.5): 132.04997712814435..140.16669060938926 HPD interval (0.84): 128.87495261076464..145.95101236491442 HPD interval (0.9): 127.24619074946288..147.45805552603491 HPD interval (0.94): 126.89957882559288..150.64702455848192 HPD interval (0.99): 123.68819933183161..157.85317538907563 HPD interval (0.99999): 119.43963885400819..169.79132849773850 var : medianiq Probabilities (truncated): 170.421693310219979: 0.0001000000000000 169.708990778803013: 0.0001000000000000 169.47832819232508: 0.0001000000000000 168.665917948434753: 0.0001000000000000 ......... 119.7337574008084: 0.0001000000000000 119.725784728341253: 0.0001000000000000 119.543842723229901: 0.0001000000000000 117.445351452273712: 0.0001000000000000 mean = 137.746 [len = 10000,min = 117.445,mean = 137.746,median = 136.939,max = 170.422,variance = 44.9419,stdev = 6.70387] HPD intervals: HPD interval (0.5): 132.08161176635201..140.47797272073726 HPD interval (0.84): 127.91772335112053..145.63638723138104 HPD interval (0.9): 126.59648097631252..147.56195361018740 HPD interval (0.94): 126.08576393547162..150.58304969127758 HPD interval (0.99): 123.30614020379682..158.63188434552947 HPD interval (0.99999): 117.44535145227371..170.42169331021998 var : max iq Probabilities (truncated): 189.234334356737349: 0.0001000000000000 184.637181289864429: 0.0001000000000000 182.65398258607425: 0.0001000000000000 181.627238530278504: 0.0001000000000000 ......... 132.036237406193436: 0.0001000000000000 132.03047846971748: 0.0001000000000000 132.010382427300556: 0.0001000000000000 132.002382495200891: 0.0001000000000000 mean = 145.616 [len = 10000,min = 132.002,mean = 145.616,median = 144.617,max = 189.234,variance = 50.8737,stdev = 7.13258] HPD intervals: HPD interval (0.5): 138.46840534208891..147.43430983297748 HPD interval (0.84): 135.79597634014536..154.42281873105571 HPD interval (0.9): 134.55944434426223..156.51060203539106 HPD interval (0.94): 133.62914256743599..158.76031393704528 HPD interval (0.99): 132.00238249520089..166.57544505408333 HPD interval (0.99999): 132.00238249520089..189.23433435673735 var : mean diffs Probabilities (truncated): 1.156307049202938: 0.0001000000000000 0.880343541850473: 0.0001000000000000 0.786578201493298: 0.0001000000000000 0.739585009922421: 0.0001000000000000 ......... -0.491053253015631: 0.0001000000000000 -0.516878083068638: 0.0001000000000000 -0.528891393137528: 0.0001000000000000 -0.634902924432726: 0.0001000000000000 mean = 0.0992383 [len = 10000,min = -0.634903,mean = 0.0992383,median = 0.101259,max = 1.15631,variance = 0.027259,stdev = 0.165103] HPD intervals: HPD interval (0.5): -0.00797004859766..0.19327044933393 HPD interval (0.84): -0.13399387955912..0.32320832930582 HPD interval (0.9): -0.16719116280937..0.37883735914847 HPD interval (0.94): -0.21144660112497..0.41995758331812 HPD interval (0.99): -0.37129654110584..0.55352415685799 HPD interval (0.99999): -0.63490292443273..1.15630704920294 */ go ?=> member(Scenario,1..4), Scenario = 4, println(scenario=Scenario), reset_store, if Scenario == 1 ; Scenario == 2 then run_model(10_000,$model(Scenario),[show_probs_trunc,mean, show_simple_stats, show_hpd_intervals,hpd_intervals=[0.5,0.84,0.9,0.94,0.99,0.99999] ]) else % Ensure 10 000 samples for Scenarior 3 as well run_model(10_000,$model(Scenario),[show_probs_trunc,mean, show_simple_stats, show_hpd_intervals,hpd_intervals=[0.5,0.84,0.9,0.94,0.99,0.99999], min_accepted_samples=10_000 % ,show_accepted_samples=true ]) end, nl, % show_store_lengths,nl, fail, nl. go => true. % The normal drift of IQ from year to year normal_drift() = normal_dist(-0.175,1.7). % 2% change of negative impact. Typical impact +1..-4 negative_event_impact() = cond(flip(0.02) == true, max(0,normal_dist(2,1)), 0). % 1% change of negative impact. Typical impact +1..-4 positive_event_impact() = cond(flip(0.01) == true, max(0,normal_dist(2,1)), 0). model(Scenario) => StartAge = 19, EndAge = 68, % Let's first assume that the IQ score % was "exactly" 126 if Scenario == 1 ; Scenario == 2 then StartIQ = 126 else % The Stanine score of 9/9 actually mean > 126 StartIQ = normal_dist(100,15), observe(StartIQ > 126), end, % UseTotalChange = true, if Scenario == 1 then UseTotalChange = false else UseTotalChange = true end, IQs = [StartIQ], ThisAge = StartAge+1, while(ThisAge < EndAge) NormalDrift = normal_drift(), NegativeEventImpact = negative_event_impact(), PositiveEventImpact = positive_event_impact(), TotalChange = NormalDrift - NegativeEventImpact + PositiveEventImpact, Inc = cond(UseTotalChange == true, TotalChange, NormalDrift), ThisScore = IQs.last + Inc, IQs := IQs ++ [ThisScore], ThisAge := ThisAge + 1 end, LastYearIQ = IQs.last, if Scenario == 4 then observe(LastYearIQ > 132) end, MinIQ = IQs.min, MeanIQ = IQs.mean, MedianIQ = IQs.median, MaxIQ = IQs.max, MeanDiffs = IQs.differences.mean, P126 = check( abs(LastYearIQ - StartIQ) <= 2), PGt126 = check( LastYearIQ > StartIQ), PGe132 = check( LastYearIQ > 132), if Scenario == 1 ; Scenario == 2 ; (Scenario == 3,observed_ok) ; (Scenario == 4,observed_ok) then add("start iq",StartIQ), add("last year iq",LastYearIQ), add("last year iq ~ 126",P126), add("last year iq > 126",PGt126), add("last year iq > 132",PGe132), add("min iq",MinIQ), add("mean iq",MeanIQ), add("medianiq",MedianIQ), add("max iq",MaxIQ), add("mean diffs",MeanDiffs), end.