STO2 Competitive storage with floor-price backed by public storage
This model is close to one of the models presented in Wright and Williams (1988).
Contents
Model's structure
Response variables Speculative storage (), Public storage (), Planned production () and Price ().
State variable Availability ().
Shock Productivity shocks ().
Parameters Unit physical storage cost (), Depreciation share (), Interest rate (), Scale parameter for the production cost function (), Inverse of supply elasticity (), Demand price elasticity (), Floor price () and Capacity constraint on public stock ().
Equilibrium equations
Transition equation
Writing the model
The model is defined in a Yaml file: sto2.yaml.
Create the model object
Mu = 1; sigma = 0.05; model = recsmodel('sto2.yaml',struct('Mu',Mu,'Sigma',sigma^2,'order',7));
Deterministic steady state (different from first guess, max(|delta|)=0.392101) State variables: A ______ 1.3921 Response variables: S H P Sg __________ _____ ____ _______ 6.0863e-15 1.004 1.02 0.39605 Expectations variables: EP EPe ____ ____ 1.02 1.02
Define approximation space
[interp,s] = recsinterpinit(50,0.7,2);
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 3.02E-02 (Input point) 1 1 1.0269 1.39E-02 2 1 0.9062 8.27E-03 3 1 0.9942 1.07E-03 4 1 1.0897 5.32E-04 5 1 0.7831 1.17E-04 6 1 0.8366 1.91E-05 7 1 0.8449 2.97E-06 8 1 0.8459 4.57E-07 9 1 0.8460 7.04E-08 10 1 1.0000 0.00E+00 Solution found - Residual lower than absolute tolerance
Plot storage and price rules
subplot(2,1,1) plot(s,x(:,[1 4])) leg = legend('Private stock','Public stock'); set(leg,'Location','NorthWest') set(leg,'Box','off') xlabel('Availability') ylabel('Stock') subplot(2,1,2) plot(s,x(:,3)) xlabel('Availability') ylabel('Price')