STO4 Competitive storage with price-band backed by public storage
This model is an extension of Miranda and Helmberger (1988) to include a capacity constraint on the public stock level (see also Gouel 2013).
Contents
Model's structure
Response variables Speculative storage (), Increase in public stock level (
), Decrease in public stock level (
), Planned production (
) and Price (
).
State variable Availability () and Public stock (
).
Shock Productivity shocks ().
Parameters Unit physical storage cost (), Interest rate (
), Scale parameter for the production cost function (
), Inverse of supply elasticity (
), Demand price elasticity (
), Floor price (
), Ceiling price (
) and Capacity constraint on public stock (
).
Equilibrium equations
Transition equation
Writing the model
The model is defined in a Yaml file: sto4.yaml.
Create the model object
Mu = 1; sigma = 0.05; model = recsmodel('sto4.yaml',struct('Mu',Mu,'Sigma',sigma^2,'order',7));
Deterministic steady state (equal to first guess) State variables: A Sg _ ___ 1 0.4 Response variables: S H P DSgp DSgm _ _ _ ____ ____ 0 1 1 0 0 Expectations variables: EP EPe __ ___ 1 1
Sgbar = model.params(end-1);
Multiple steady states
In this model, there is no stock depreciation. This assumption implies that there are multiple steady states: as long as the steady-state price is between the floor and ceiling prices, any public stock level between 0 and is a steady state. Actually, the steady-state response variables are unique, only the public stock level is indeterminate as we can see in the examples below:
[sss1,xss1] = recsSS(model,[1 0],model.xss);
Deterministic steady state (equal to first guess) State variables: A Sg _ __ 1 0 Response variables: S H P DSgp DSgm _ _ _ ____ ____ 0 1 1 0 0 Expectations variables: EP EPe __ ___ 1 1
[sss2,xss2] = recsSS(model,[1 0.2],model.xss);
Deterministic steady state (equal to first guess) State variables: A Sg _ ___ 1 0.2 Response variables: S H P DSgp DSgm _ _ _ ____ ____ 0 1 1 0 0 Expectations variables: EP EPe __ ___ 1 1
Define approximation space
[interp,s] = recsinterpinit(20,[0.74 0],[1.4 Sgbar]);
Find a first guess through the perfect foresight solution
interp = recsFirstGuess(interp,model,s,model.sss,model.xss,struct('T',5));
Solve for rational expectations
[interp,x] = recsSolveREE(interp,model,s);
Successive approximation Major Minor Lipschitz Residual 0 0 1.50E-01 (Input point) 1 1 0.8672 6.27E-02 2 1 0.6394 2.84E-02 3 1 0.6901 8.93E-03 4 1 0.7305 2.41E-03 5 1 0.7453 6.14E-04 6 1 0.7509 1.53E-04 7 1 0.7528 3.78E-05 8 1 0.7535 9.32E-06 9 1 0.7537 2.30E-06 10 1 0.7540 5.67E-07 11 1 0.7598 1.40E-07 12 1 0.9398 3.24E-08 13 1 1.0000 0.00E+00 Solution found - Residual lower than absolute tolerance
Simulate the model
options.stat = 1; recsSimul(model,interp,repmat([1 0],1E3,1),200,[],options); subplot(3,3,1) xlabel('Availability') ylabel('Frequency') subplot(3,3,2) xlabel('Public stock') ylabel('Frequency') subplot(3,3,3) xlabel('Speculative storage') ylabel('Frequency') subplot(3,3,4) xlabel('Planned production') ylabel('Frequency') subplot(3,3,5) xlabel('Price') ylabel('Frequency') subplot(3,3,6) xlabel('Increase in public stock level') ylabel('Frequency') subplot(3,3,7) xlabel('Decrease in public stock level') ylabel('Frequency')
Statistics from simulated variables (excluding the first 20 observations): Moments Mean StdDev Skewness Kurtosis Min Max pLB pUB _________ _________ _________ ________ _______ _______ ______ ______ A 1.004 0.050486 0.0050016 2.9912 0.78697 1.2316 NaN NaN Sg 0.13528 0.1159 0.67697 2.4411 0 0.4 NaN NaN S 0.0040365 0.0075183 3.7378 27.244 0 0.1444 35.415 0 H 0.99999 0.0039457 0.54691 6.3107 0.96172 1.0097 0 0 P 1.007 0.12142 2.1476 13.615 0.74116 2.8374 0 0 DSgp 0.0092738 0.019729 2.8634 12.165 0 0.20619 38.557 1.0844 DSgm 0.0089268 0.018965 2.7876 11.426 0 0.19424 26.427 9.2961 Correlation A Sg S H P DSgp DSgm _________ _________ ________ ________ ________ _________ ________ A 1 -0.052898 0.57932 -0.52389 -0.81646 0.71504 -0.69501 Sg -0.052898 1 -0.10746 -0.51905 -0.09671 -0.048125 0.15038 S 0.57932 -0.10746 1 -0.47524 -0.47195 0.28753 -0.24819 H -0.52389 -0.51905 -0.47524 1 0.58195 -0.36285 0.1295 P -0.81646 -0.09671 -0.47195 0.58195 1 -0.40827 0.42106 DSgp 0.71504 -0.048125 0.28753 -0.36285 -0.40827 1 -0.21875 DSgm -0.69501 0.15038 -0.24819 0.1295 0.42106 -0.21875 1 Autocorrelation T1 T2 T3 T4 T5 ________ __________ __________ _________ __________ A 0.041787 -0.02014 -0.015863 -0.02007 -0.016676 Sg 0.93562 0.87078 0.81071 0.75463 0.7032 S 0.16836 0.067865 0.049235 0.035641 0.030582 H 0.49457 0.37386 0.31506 0.26788 0.23226 P 0.079151 0.018209 0.015877 0.01248 0.0091157 DSgp 0.02324 -0.0068244 -0.0071192 -0.013707 -0.010108 DSgm 0.015919 -0.0061996 -0.0038683 -0.010361 -0.0059664
