User Tools

Site Tools


howtos:calibration:projecting_into_history

This is an old revision of the document!


Project Data Back Into History

Often you have a variable, say a demand, for which you have measured data over some historical period up to your simulation period. You may need to project that demand back into history.

The best way is to get a ratio of that measured value to some driver like population over the known period. Assuming you have the driver back into “pre-history”, you can then project the ratio back in several ways as described below

Linear Trend - lintrend

The simplest way is to linear trend it back into history and then multiply it against the known driver in “pre-history”. For example getting families in from 1910 to 1977 when we know families and population over historic time th.

local ratioFamPerPer[cr,t19782006] = familiesTot[cr,t19782006] / CTotPop[cr,t19782006]
local ratioFamPerPerPH[cr,t19101977] = lintrend (ratioFamPerPer[cr,t19782006]; time=1910)
familiesPH[cr,t19101977] = extract (CTotPopPH[cr,t18511990]; time:1910..1977) * ratioFamPerPerPH[cr,t19101977]

The main danger here is that your linear trend variable, ratioFamPerPerPH[cr,t19101977], goes negative

log and exponential lintrend

Another way is to use lintrend with logarithm and exponential

local ratioFamPerPer[cr,t19782006] = familiesTot[cr,t19782006] / CTotPop[cr,t19782006]
local ratioFamPerPerPH[cr,t19101977] = exp (max (lintrend (loge (ratioFamPerPer[cr,t19782006]); time=1910), 0))
familiesPH[cr,t19101977] = extract (CEEFpop[cr,t18511990]; time:1910..1977) * ratioFamPerPerPH[cr,t19101977]

Ratio with linint

A safer way is to create an extra variable which is the ratio of the first year of pre-history to the first year of history and then linear interpret between these 2 points for the historic period.

local ratioFamPerPer[cr,t19782006] = familiesTot[cr,t19782006] / CTotPop[cr,t19782006]
local ratioFamPerPerPHx[cr,t19101977] = changeseq (copyshape (ratioFamPerPer[cr,t19782006]); dim=time, start=1910)
ratioFamPerPerPHx[cr,t19101977] = insert (ratioFamPerPer[cr,t19782006]; time->time:1978)
ratioFamPerPerPHx[cr,t19101977] = insert (extract (ratioFamPerPer[cr,t19782006]; time:1978, shrink=on) * \
	ratioFamPerPer1910to1978[cr]; time:1910)

local ratioFamPerPerPH[cr,t19101977]  = extract (linint (ratioFamPerPerPHx[cr,t19101977]); time:+0..1977)

familiesPH[cr,t19101977] = extract (CEEFpop[cr,t18511990]; time:1910..1977) * ratioFamPerPerPH[cr,t19101977]

The main problem with this approach is that it is very flat over pre-history time

howtos/calibration/projecting_into_history.1259675828.txt.gz · Last modified: 2009/12/01 13:57 by shona.weldon