Hide table of contents

See also: List of Tools for Collaborative Truth Seeking

Squiggle is a special-purpose programming language for generating probability distributions, estimates of variables over time, and similar tasks, with reasonable transparency. It was developed by the Quantified Uncertainty Research Institute

It's a broad tool applicable to a lot of tasks with probabilistic elements. It lies somewhere between Guesstimate and full probabilistic programming languages or Python (a good summary of squiggle's features can be found here or here). 

When can Squiggle be Useful?

  • Estimating Return on Investment from projects
  • Estimating probability of a project's success
  • Comparing impact of different career paths
  • Estimate the best time to run a retreat based on predicted COVID numbers
  • Find cruxes where two forecasters disagree by building full models of how they derived their beliefs
  • Give somebody a precise & detailed look at your internal model and assumptions on a topic

Tutorials

The official basics guide is a good written guide if you have experience programming and/or have a specific project in mind already. A video tutorial using a worked example is available here on loom, or below:

There’s also a few simple worked examples to demonstrate Squiggle’s value, and a more complex model based on GiveWell's cost effectiveness analyses. Note that Squiggle is still in development and has several known bugs. If you want to just play around with Squiggle, there's a web implementation for experimenting available here

Here's an example lifted directly from the official documentation of using Squiggle to estimate the number of piano tuners in NYC (a canonical fermi estimation question):

 Examples

 

Personal Experience

Squiggle is fairly easy to get started with if you've got any experience with programming (particularly statistical programming in R or python), and you get a lot of bang for your buck in terms of functionality vs ease of use.

Squiggle's main downside is that it's harder to understand[1] than similar tools like Guesstimate or Causal. This follows pretty naturally from being code-based, and can be mitigated in all the usual ways (suggestive variable names, thorough commenting, etc.), or by integrating it with google docs

With larger models the legibility issue becomes something of a problem. By default, Squiggle outputs a huge list of all outputs in the order they appear in the code. However, if the last line is a variable or object, Squiggle only shows that variable/object; you can use this to query models (see e.g. this model).

Overall, I'd tentatively recommend squiggle for medium-complexity models (say, taking less than 10 hours total to create) if you're already comfortable working with code, and don't anticipate sharing the model with a lot of people (or any people who are especially unfamiliar with code). If you have larger models, the QURI team are happy to be contacted-- squiggle can be useful for larger models, but needs to be set up with VSCode and some other tools. 

If you want simpler models that are easier to share with others, I'd recommend Guesstimate or Causal. If you want more complex models (and don't care about their shareability, or are willing to mitigate this with good documentation), I'd recommend using python or finding a suitable probabilistic programming language (making recommendations here is far beyond the scope of this guide). 

Try it Yourself!

Have a look through the examples above, and think about a forum post you read recently that could benefit from being more quantitative-- make a toy model of it! It should be very simple to start with to check your basic assumptions; you can always add detail later.

Want to make a model to practice, but don't know of what?

Try one of these! I think a Squiggle model could be really useful here.

  • Estimate impact of various factors on shrimp welfare (forum post)
  • Estimate impact of sound therapy for tinnitus (forum post)
  • Compare impact of different cause areas (forum post)

If those are a little intimidating, try these instead (click through to a guesstimate model for some inspiration on how to model the problem, if you like):

Join us at 6pm GMT tomorrow [31/01] for an event in the EA GatherTown discussing the use of squiggle & doing a short exercise with it!

Tomorrow's post will be on forecasting tools of various kinds!

 

Thanks to Ozzie Gooen for comments on the final draft.

  1. ^

    To yourself six months later, or to other people you're sharing your model with

Comments4


Sorted by Click to highlight new comments since:

There's also a version of Squiggle in python if you're more keen to use Python! https://github.com/rethinkpriorities/squigglepy

If you have larger models, the QURI team are happy to be contacted

Confirming this!

How much work would it be to make something like this as a python library, and how much would that reduce its usefulness? I think this is really cool and have been looking for something like this, but I am multiple times more likely to use something if it's a python library as opposed to a brand new language, and I assume others think similarly.

Curated and popular this week
Sam Anschell
 ·  · 6m read
 · 
*Disclaimer* I am writing this post in a personal capacity; the opinions I express are my own and do not represent my employer. I think that more people and orgs (especially nonprofits) should consider negotiating the cost of sizable expenses. In my experience, there is usually nothing to lose by respectfully asking to pay less, and doing so can sometimes save thousands or tens of thousands of dollars per hour. This is because negotiating doesn’t take very much time[1], savings can persist across multiple years, and counterparties can be surprisingly generous with discounts. Here are a few examples of expenses that may be negotiable: For organizations * Software or news subscriptions * Of 35 corporate software and news providers I’ve negotiated with, 30 have been willing to provide discounts. These discounts range from 10% to 80%, with an average of around 40%. * Leases * A friend was able to negotiate a 22% reduction in the price per square foot on a corporate lease and secured a couple months of free rent. This led to >$480,000 in savings for their nonprofit. Other negotiable parameters include: * Square footage counted towards rent costs * Lease length * A tenant improvement allowance * Certain physical goods (e.g., smart TVs) * Buying in bulk can be a great lever for negotiating smaller items like covid tests, and can reduce costs by 50% or more. * Event/retreat venues (both venue price and smaller items like food and AV) * Hotel blocks * A quick email with the rates of comparable but more affordable hotel blocks can often save ~10%. * Professional service contracts with large for-profit firms (e.g., IT contracts, office internet coverage) * Insurance premiums (though I am less confident that this is negotiable) For many products and services, a nonprofit can qualify for a discount simply by providing their IRS determination letter or getting verified on platforms like TechSoup. In my experience, most vendors and companies
jackva
 ·  · 3m read
 · 
 [Edits on March 10th for clarity, two sub-sections added] Watching what is happening in the world -- with lots of renegotiation of institutional norms within Western democracies and a parallel fracturing of the post-WW2 institutional order -- I do think we, as a community, should more seriously question our priors on the relative value of surgical/targeted and broad system-level interventions. Speaking somewhat roughly, with EA as a movement coming of age in an era where democratic institutions and the rule-based international order were not fundamentally questioned, it seems easy to underestimate how much the world is currently changing and how much riskier a world of stronger institutional and democratic backsliding and weakened international norms might be. Of course, working on these issues might be intractable and possibly there's nothing highly effective for EAs to do on the margin given much attention to these issues from society at large. So, I am not here to confidently state we should be working on these issues more. But I do think in a situation of more downside risk with regards to broad system-level changes and significantly more fluidity, it seems at least worth rigorously asking whether we should shift more attention to work that is less surgical (working on specific risks) and more systemic (working on institutional quality, indirect risk factors, etc.). While there have been many posts along those lines over the past months and there are of course some EA organizations working on these issues, it stil appears like a niche focus in the community and none of the major EA and EA-adjacent orgs (including the one I work for, though I am writing this in a personal capacity) seem to have taken it up as a serious focus and I worry it might be due to baked-in assumptions about the relative value of such work that are outdated in a time where the importance of systemic work has changed in the face of greater threat and fluidity. When the world seems to
 ·  · 4m read
 · 
Forethought[1] is a new AI macrostrategy research group cofounded by Max Dalton, Will MacAskill, Tom Davidson, and Amrit Sidhu-Brar. We are trying to figure out how to navigate the (potentially rapid) transition to a world with superintelligent AI systems. We aim to tackle the most important questions we can find, unrestricted by the current Overton window. More details on our website. Why we exist We think that AGI might come soon (say, modal timelines to mostly-automated AI R&D in the next 2-8 years), and might significantly accelerate technological progress, leading to many different challenges. We don’t yet have a good understanding of what this change might look like or how to navigate it. Society is not prepared. Moreover, we want the world to not just avoid catastrophe: we want to reach a really great future. We think about what this might be like (incorporating moral uncertainty), and what we can do, now, to build towards a good future. Like all projects, this started out with a plethora of Google docs. We ran a series of seminars to explore the ideas further, and that cascaded into an organization. This area of work feels to us like the early days of EA: we’re exploring unusual, neglected ideas, and finding research progress surprisingly tractable. And while we start out with (literally) galaxy-brained schemes, they often ground out into fairly specific and concrete ideas about what should happen next. Of course, we’re bringing principles like scope sensitivity, impartiality, etc to our thinking, and we think that these issues urgently need more morally dedicated and thoughtful people working on them. Research Research agendas We are currently pursuing the following perspectives: * Preparing for the intelligence explosion: If AI drives explosive growth there will be an enormous number of challenges we have to face. In addition to misalignment risk and biorisk, this potentially includes: how to govern the development of new weapons of mass destr
Recent opportunities in Forecasting
32
Ozzie Gooen
· · 2m read