/* Modeling the global cooling rate expected from a large-scale nuclear exchange */ // Using the competing Reisner and Toon claims on the soot injection of a regional nuclear exchange as a basis, this model extrapolates to estimate the level of cooling expected from a nuclear war of at least 100 detonations. // Black carbon (known as BC or soot) in stratosphere from 100x15kT-warhead nuclear exchange (Tg), all strikes countervalue. Use the Toon estimate of 5Tg as the 95th percentile. Reisner estimates 0.2Tg, but claims this is an overestimate since they assume all combustible material is converted to BC, while the true amount would be 10-100 times less. Denkenberger & Pearce (2018) models the soot-emission factor as lognormally-distributed with 90% CI (1%,4%), which has mean value 2.2%. Hence our lower estimate, which we use as the 5th percentile, is 0.2Tg * 0.022 = 0.0044Tg bc_min_all_countervalue = 0.0044 to 5
/* Modeling the annual probability of cooling events from nuclear winter */ // See this sister model for a fuller explanation for how we determine inputs for soot, cooling etc. : https://squigglehub.org/models/StanP/Modeling-Nuclear-Winter-with-Uncertainty // NUCLEAR WINTER // The annual probability of a nuclear conflict with 100+ detonations. Our CEA estimates this at 0.12%. The three main sub-estimates were 0.06%, 0.10% and 0.13, so I use a Beta distribution with mean 0.12% and with a 90% confidence interval of approximately (0.01%, 0.34%) that includes these sub-estimates annual_prob_100plus_detonations = beta(1.224,998.776)
/* Modeling the probability and severity of nuclear winter under two approaches, and taking the mean of both */ // REISNER bc_min_all_countervalue_Reisner = (0.05 to 0.5) * (0.01 to 0.04) bc_min_all_countervalue = 0.0044 to 5
/* An attempt to crudely model the effects of global climate feedback cycles on uncertainty in global warming projections */ // Based on data from The Breakthrought Institute: https://thebreakthrough.org/issues/energy/flattening-the-curve-of-future-emissions baseline_eoc_warming = 2.2 to 6 current_policy_eoc_warming = 2.2 to 4.1
/* Describe your code here */ a = normal(2, 5)
/* Retired from my nuclear winter model */ // Give mortality rate odds ratios under different adaptation scenarios according to ALLFED's paper on adaptations to a 150Tg scenato none = 0.81/(1-0.81) simple = 0.77/(1-0.77) simple_trade = 0.70/(1-0.7) simple_culling = 0.66/(1-0.66) simple_culling_storage = 0.37/(1-0.37)
/* Learning new squigggle features through https://forum.effectivealtruism.org/posts/BDXnNdBm6jwj6o5nc/five-slightly-more-hardcore-squiggle-models */ solar1 = List.reduce( [ 0.981, 0.981 ^ 2, 0.981 ^ 3, 0.981 ^ 4,
/* Expected reduction in x-risk from developing super-PPE */ ppesuccess = mx(0,1,[0.5,0.5]) relbiorriskreduction = beta(1.0871,39.622) existentialbiorisk = beta(0.18551,12.099)
/* Inspired by https://www.metaculus.com/questions/18174/solar-power-dominates-renewables-by-2031/ Growth rates found by regression on Sheets */ windg = 0.05 to 0.0665 // annual growth in wind power hydrod = 45 to 80 // annual growth in hydr power (units of energy per year) solarg = 0.08 to 0.12755 // annual growth in solar power wind = 10^(3.3278+9*windg) // exponential model
/* For the Metaculus question https://www.metaculus.com/questions/5755/china-to-usa-gdp-ratio-in-2050/ */ uspop = .384 to .496 // projected population in 2050 chinapop = 1.2 to 1.4 globalgrowthfactor = 0.7 to 1.3 usgrowth = normal({p5:0.0194,p95:0.0394})*globalgrowthfactor // average annual GDP per capita growth, 2022-2050 chinagrowth = normal({p5:0.025,p95:0.065})*globalgrowthfactor
/* Estimating the effect size of a resilient food pilot */ allfed = normal({p5:0.04,p95:0.06}) allfedadjusted = 0.75*allfed*(1/0.304796-1)/0.85 pilotsuccess = beta(2.443069469,2.556930531) infradis = beta(1.92,2.08) politicaldis = beta(2,2)
/* An attempt to quantify the biggest sources of uncertainty in a model of the cost-effectiveness of developing resilient foods */ seruptionperiod = 100000 to 175000 seruptionprob = 1 / seruptionperiod asteroidprob = 1 / 500000 * (1 - 0.9265) nwarprob = 0.0003 to 0.009 nwinprob = truncateRight(0.02 to 0.3, 1) shortfallprob = beta(1, 1120)
/* A quick attempt at adapting HLI's CEA for pain relief */ // HLI's CEA: https://forum.effectivealtruism.org/posts/Ne5wzJKNT4fd2SYHX/pain-relief-a-shallow-cause-exploration swbtopainconversionHLI = truncateRight(0.05 to 1,1) // HLI get two very different values for the conversion rate between pain and SWB (each on 0-10 scale). Here the low value, 0.12, is the 25th percentile. I discard the upper estimate of 1.09 as infeasible. swbtopainconversionLiterature = 0.05 to 0.13 // using the rates of 0.5, 0.7 and 1.3 taken in the literature swbtopainconversion = mixture(swbtopainconversionHLI,swbtopainconversionLiterature,[0.5,0.5])
/* A CEA for policy advocacy for banning pesticides used to commit suicide */ suicidereductionUK = 1 to 4 // estimated number of suicides averted in the UK after CO was removed from the gas supply, as a multiple of the annual suicide rate generalizabilitydiscount = 0.2 to 1.2 // CO suicides made up 40% of the UK total before its removal. Target countries could have higher or lower rates of pesticide suicides. There are further reasons why the UK results would not fully generalize. suiciderate = 40 to 230 // for all countries, the rate per million has 5th, 95th percentiles 2.3 and 23. Assume the low-rate countries would not be targeted population = 10 to 300 // population of target country, millions suicidesaverted = suicidereductionUK*generalizabilitydiscount*suiciderate*population