EnergyInnovation / eps-us

Energy Policy Simulator - United States
GNU General Public License v3.0
22 stars 7 forks source link

Prevent runaway IO feedback in regions with high DLIM values, such as China-iGDP #299

Open jrissman opened 2 months ago

jrissman commented 2 months ago

From @robbieorvis on 6/22/23:

I put together the attached spreadsheet to explore the issue we are seeing in the China model.

DLIM Runaway Effect Example.xlsx

The attached is a little dummy IO model with two industries and 6 time steps.

It replicates the structure of an IO model in the EPS, including feeding the indirect effects back in the following timestep, the way we handle macroeconomic effects.

I also filled out an input-output table for the two industries to create a DLIM table manually.

What you can see is that with certain IO values and resulting DLIM values, the current approach of feeding back macroeconomic effects can create a runaway effect, where each subsequent timestep has increasing direct and indirect effects resulting from the feedback loop. In this case, I fed a $1 change in industry A in time 1, and you can see how the effect on A and B grow with each step.

This happens when an economy is highly self-sufficient, meaning it has comparatively high DLIM values.

This suggests that there might be a methodological issue with the feedback loop structure as it is currently designed in the EPS. I would expect to see this effect in any country that is highly self-sufficient. China is one such country, which explains why we are seeing the effect now.

I’m not entirely sure what to do about it or how to explain the effect.

I think the original thinking was that we wanted to feedback macroeconomic effects to estimate the impact on energy and emissions, but the current approach changes the production values in industry as a way to do this, which results in the feedback into the IO model and the runaway loop we see.

The only way I can think of fixing this is to calculate the industry sector first, feed the results into the IO model like we do now, then only adjust energy and emissions downstream of the IO model in the industry sector to affect final results for that year. That way, we would be calculating the change in production within the IO model and just trueing-up the industry model to match the IO results. That puts the feedback in the same time period and avoids the effect we see here. This only addresses the industry feedback, not others (like transportation service demand or building energy demand).

(Also, definitely want to be sure I didn’t screw something up in the attached spreadsheet, so would be happy to have your eyes on it. I know you are swamped this week, so no rush, but wanted to make this and send it to you while it’s top of mind).