Putting cadCAD in Context

The team at BlockScience that built the cadCAD package has a mixture of backgrounds (computer science, economics, accounting, systems engineering, robotics and automation) but what we have in common is a passion for applying data technologies to drive outcomes in the real world. The open source cadCAD package that is available today fits into a large stack of tools and capabilities ranging from data science and data engineering, to cloud services which range from decision support analytics to real-time decision systems.

Impact Iceberg

The deep work of developing a package like cadCAD creates value by enabling the development of custom models which represent our human understanding a complex system. It is important to remember that data is always interpreted in the context of some model. Blackbox machine learning models have embedded structures that help tease out relationships hidden in data sets but the assumptions of those models directly affect the conclusions. When the assumptions don’t fit well, the conclusions can be misleading. Complex Systems are highly non-linear and it is common for models to breakdown because the conditions under which they are effective are not met. In many cases that requirement is a need for massive amounts of data. In the case of time series, this criteria is almost never met since we are only observing one realization (sequence of events in time).

This can lead us to think it is not possible to answer meaningful questions about complex systems using computers and data, but do not despair! This challenge has been front and center in Robotics, Aerospace and Defense for as long as these fields has existed and yet these fields have flourished. The secret to dealing with time series data is system specific mathematical models which encode the human understanding of the system in addition to the data driven understanding. The process of synthesizing human derived system model’s with data from sensors is called System Identification. System Identification includes designing experiments for which the resulting data is maximally informative for refining models, and the design of algorithms for estimating system parameters from data.

While cadCAD is useful for running simulations of systems modeled by humans and fit with data collected from external data sources, the real vision for cadCAD is to replicate the decision systems architectures used in complex physical systems for social and economic systems. While any argue this kind of model-based data-driven control of complex systems cannot be done, it has in fact already been done. Safety critical CyberPhysical Systems such as the power grid are managed using model-based data-driven control systems.


Source: Cyber-Physical Systems - a Concept Map

We are interested in Social and Economic Systems which are…

…controlled or monitored by computer-based algorithms, tightly integrated with the Internet and its users. In cyber-physical systems, physical and software components are deeply intertwined, each operating on different spatial and temporal scales, exhibiting multiple and distinct behavioral modalities, and interacting with each other in a lot of ways that change with context.

Source: Cyber–physical system - Wikipedia

As a result of the observation that our social and economic systems are increasingly coupled with recommendation algorithms, platforms and peer-to-peer protocols, we have adapted an architecture for decision support systems which merges the data science stack for business analytics with the robotics and control stack for managing complex systems.

Our research and development work has centered around systems being built on decentralized ledger technology due to the unprecedented degree of observability and controllability guarantees for these systems relative to other economic systems. Not all states need to be observable and/or controllable but these mathematical properties are foundational to the use of methods derived from the field of robotics.

Our vision for the future is that communities, corporations, commons and more, will be governed with a higher degree of transparency into the consequences of decisions that change those systems through the use of digital twins made possible by combining computational social science with systems engineering and enabled by cryptographically secure multi-party computation. That vision is outlined by Jeff Emmett in this article:
https://medium.com/block-science/computer-aided-governance-cag-a-revolution-in-automated-decision-support-systems-9faa009e57a2

6 Likes

@colin this explains pretty well, why by generating data to represent agent (user) behavior - we effectively are fixing the system to represent only that one behavor → hence the agent is not really modelled, in cadCAD it should be then input as an “environmental process”; if we model the agent (user) with a behavorial logic/assumptions than that model should generate the data (and will generate differently in different simulations runs, and hence effectively explaining potentially complex system behavior, e.g. after usage incentive mechanisms). This is important to learn/see. Agreed, that for “hackahton” purposes we need data generated and some instances to be fixed (But I’d still prefer all hackers to learn sth. than one of them to win money :wink: - the potential winner will disagree maybe :smiley: )

2 Likes

For reference, including these image from one of my presentations, describing cadCAD digital twins.


For more details and examples, see my MIT CES talk:

This topic will start to pickup again the forums as BlockScience has some new cadCAD based digital twins under development with clients.

We will continue to use this space to share our work and teach methods.

4 Likes

Hi I’m new to cadCAD,
But I have created fully functional macro economic models in spreadsheets. These consist of 260 indicators. These are recursive systems. Like C = 0.8 Y + 600 while Y = C + I + E - M

M, E , I are also functions of Y.

You have a time period of say 30 years to solve.

Can this be done in cadCAD?

Would love to move from Excel to cadCAD if possible.

Runy

You would be able to program such a model in cadCAD. Generally, the modeling is the bottleneck more so than the programming so if you already have the model in excel. Your best bet is probably to map out our state variables, decide what schema you want to store them in, then start breaking the update logic into intuitive logical chunks so you can implement it as a sequence of partial state update blocks.

Thanks. That sounds promising. I’m going to start with my first tutorial and code and setting up my system in Anaconda.

Will come back here and give an update in a month.

Runy