$offsymxref offsymlist **Program for Jeff and Larry's GAME formulation **Based on "gamemc.gms" for estimating mixed strategies of Airlines UA and AA **DATE: July, 1995 **AA is indexed 1 and UA is indexed 2 set i index /1*9/ j index /1*3/ j1 index /1*3/ jb index /1*3/ * jb index /1*6/ k index /1*20/ h index /1*3/ w index /1*3/ l index /1*15/ z1 index /1*15/ z2 index /1*16/ o index /1*5/ g index /1*1/ ; **Note: o is the OLS index **Note z1 Variable index for airline data ** z2 is City index alias (k,k1); alias (k,k2); *set k1(k) * k2(k) *; *k1(k) = yes; *k2(k) = yes; parameter alpha(j,k) parameter space for each RHS var and observation datajeff(z2,l,o) alphab1(j,k) parameter space for RHS var correspond to y=1 T4Q84(z2,z1) Airline table T1Q85(z2,z1) Airline table T2Q85(z2,z1) Airline table T3Q85(z2,z1) Airline table T4Q85(z2,z1) Airline table T1Q86(z2,z1) Airline table T2Q86(z2,z1) Airline table T3Q86(z2,z1) Airline table T4Q86(z2,z1) Airline table T1Q87(z2,z1) Airline table T2Q87(z2,z1) Airline table T3Q87(z2,z1) Airline table T4Q87(z2,z1) Airline table T2Q88(z2,z1) Airline table T4Q88(z2,z1) Airline table ue(l,z2) unemployment data cityue(l) unemploy for city z2 predq1(l) predicted val of q1 predq2(l) predicted val of q1 dq1(l) distance between q1 and predicted q1 dq2(l) distance between q2 and predicted q2 airvar(l,z2,z1) time series cross section airlines data airtheta theta for calculating cost pf airlines MC1(l,z2) marginal cost AA MC2(l,z2) marginal cost UA cost1a(l) cost per city of AA cost2a(l) cost per city of UA cost1 cost2 quant1(l) quantity for estimating D params AA quant2(l) quantity for estimating D params UA avq1 avq2 varq1 variance quant1 varq2 variance quant2 sdq1 standard deviation q1 sdq2 standard deviation q2 avpq1 average predicted q1 avpq2 average predicted q2 varpq1 var pred q 1 varpq2 var pred q 2 rhoq1 correlation betweem predicted and correct q1 rhoq2 correlation betweem predicted and correct q2 covq1 covarince for q 1 covq2 covarince for q 2 op1(l) observed price for 1 op2(l) observed price for 2 avop1 average observed price for firm 1 avop2 average observed price for firm 2 varop1 var of op1 varop2 var of op2 sdop1 sd of op1 sdop2 sd of op2 quant1a(l,z2) quantity for estimating D params AA quant2a(l,z2) quantity for estimating D params UA ind1(k) index ind2(k) index x(i,k) data xols1(l,o) data for OLS firm 1 xols2(l,o) data for OLS firm 2 totq(l) total quantity in all other cities qb1(k) priors for pb1 qb2(k) priors for pb2 qbet1(k) priors for beta1 qbet2(k) priors for beta2 qe1(l,h) prior probabilities for firm's 1 errors qe2(l,h) prior probabilities for firm's 2 errors sumy1 total Y1 sumy2 total Y2 error(i) estimated errors error1(i) estimated errors for betas beta1(g,k) estimated espected value of oefficients delta Weight factor for objective functional p1(i) temporary for data generation p2(i) temporary for data generation p3(i) temporary for data generation pb10(g,k) recovered alphas for firm 1 pb20(g,k) recovered alphas for firm 2 pbet10(g,k) recovered betas for firm 1 pbet20(g,k) recovered betas for firm 2 f1(g,l,k) temporary f2(g,l,k) temporary freq1(g,k) price frequency per sample firm 1 freq2(g,k) price frequency per sample firm 2 avfreq1(k) average price frequency firm 1 avfreq2(k) average price frequency firm 2 avpb1(k) averages value of recovered startegies alpha for 1 avpb2(k) averages value of recovered startegies alpha for 2 EY1A(g) expected profit for 1 EY2A(g) expected profit for 2 avEY1A average expected profit for 1 avEY2A average expected profit for 2 ecoeff(g,jb) recovered demand coeff avcoeff(jb) average value of recovered demand coefficients totvarb1 total variance of alpha1 totvarb2 total variance of alpha2 totvarbb1 total variance of beta1 totvarbb2 total variance of beta2 exp1(g) recovered equilibrium price of firm 1 exp2(g) recovered equilibrium price of firm 2 avexp1 recovered (over samples) equilibrium price of firm 1 avexp2 recovered (over samples) equilibrium price of firm 2 varpbet1(k) variance of recovered startegies betas for 1 varpbet2(k) variance of recovered startegies betas for 2 avpbet1(k) averages value of recovered startegies betas for 1 avpbet2(k) averages value of recovered startegies betas for 2 varpb1(k) variance of recovered startegies alpha for 1 varpb2(k) variance of recovered startegies alpha for 2 entropy Entropy value (value of objective fn) MSE1(g) mean sq. error firm 1 MSE2(g) mean sq. error firm 2 MSEf1(g) mean sq. error frequencies firm 1 MSEf2(g) mean sq. error frequencies firm 2 MSEy(g) mean sq. error MSEg(g) mean sq. error for gamma MSEth(g) mean sq. error for ols MSErho(g) mean sq. error thetag(k,g) recovered OLS coeff avtheta(k) av OLS coeff distz(g) distance between recovered and correct z distz1(g) distance between recovered and correct z with noise distse(g,i) distance measure for recoverd errors SSE(g) sum of sq errors per sample avsse sum of sq. errors avdistz average value of distance z avdistz1 average value of distance z with noise entp1(g) normalized ent for alpha's of firm 1 entp2(g) normalized ent for alpha's of firm 2 entpi(g,i) normalized ent for each i entpe(g) normalized ent for errors aventp1 average ent for alpha's of firm 1 aventp2 average ent for alpha's of firm 2 avstotal total normalized entropy varentp var of ent for p's aventpi(i) average ent per i varentpi(i) var of ent per i aventpe average ent per errors varentpe var ent per errors avmse1 average MSE firm 1 avmse2 average MSE firm 2 avmsef1 average MSE price frequency firm 1 avmsef2 average MSE price frequency firm 2 avmsey average MSE avmseg average MSEg avmseth average MSE ols avmserho average MSE varmse var MSE dist1(g,k) distance between correct and estimated betas dist2(g,k) distance between correct and estimated betas distf1(g,k) distance between correct and frequency alphas distf2(g,k) distance between correct and frequency alphas distth(g,k) avbeta1(k) average values of betas varbeta1(k) var of betas varmiss var of misses rho first order autocorr coeff JJ number of parameters in param space (size of j) JJ1 number of parameters in param space (size of j) JJB number of parameters in param space (size of j) II number of states (size of i) HH number of param space for errors (size of h) NN total number of categories (i.e., index n) GG number of experiments KKK LL number of observations x1min x2min x1max x2max x1step x2step xxmin xxmax xxstep time1(l) time var for demand time2(l) square term time var for demand time3(l) cubic term time var for demand op1sq(l) squared observed price firm 1 for demand op2sq(l) squared observed price firm 2 for demand op1op2(l) joint price term for demand pbert1 bertrand solution based on estimated demand params pbert2 bertrand solution based on estimated demand params pcollus1 collusive solution based on estimated demand params pcollus2 collusive solution based on estimated demand params pcour1 cournot solution (price) based on estimated demand params pcour2 cournot solution (price) based on estimated demand params qcour1 cournot solution based on estimated demand params qcour2 cournot solution based on estimated demand params pcoura1 cournot collusive solution based on estimated demand params pcoura2 cournot collusive solution based on estimated demand params qcoura1 cournot collusive solution based on estimated demand params qcoura2 cournot collusive solution based on estimated demand params conjv1(l) conjecture var firm 1 conjv2(l) conjecture var firm 2 avconjv1 average conjecture var firm 1 avconjv2 average conjecture var firm 2 conjl1(l) Cournot conjecture var firm 1 conjl2(l) Cournot conjecture var firm 2 avconjl1 average Cournot conjecture var firm 1 avconjl2 average Cournot conjecture var firm 2 bbeta1 bbeta2 delta1 delta2 owne1 own demand elasticity firm 1 owne2 own demand elasticity firm 2 cross1 cross demand elasticity 1 cross2 cross demand elasticity 2 ratio1(l) price quantity ratio firm 1 ratio2(l) price quantity ratio firm 2 minratio1 minimum level of ratio1 minratio2 minimum level of ratio2 avratio2 average level of ratio2 avratio1 average level of ratio1 ; JJB=3; JJ1=3; KKK=20; LL=15; NN=3; JJ=3; II=9; GG=1; HH=3; delta=0.5; airtheta = 0.43; parameter t1(i) t2(i) t1a(i) t2a(i) t3(i) td1(l) palpha(i) td2(l) td1a(l) td2a(l) noise1(i) noise2(i) xdata(i,k) the data b0(i) the correct LHS variable (category) alpha10(k) mixed strategy for 1 (1st stage estimation of MC) alpha20(k) mixed strategy for 2 (1st stage estimation of MC) sum11 sum12 sum13 sum14 sum15 sum16 sum17 sum18 sum21 sum22 sum23 sum24 sum25 sum26 sum27 sum28 nk1(k) freq for data consist 1 nk2(k) freq for data consist 2 ; parameter time1(l) / 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 /; time2(l) = time1(l)*time1(l); time3(l) = time2(l)*time1(l); *parameter beta10(k)/ ***the correct beta's */; table T4Q84(z2,z1) airline data * 4Q84 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 134 109.20 241 106.33 450 946 116.32 93 112.97 78 389 .1314 .1189 831 773 2 467 128.96 1044 130.29 998 2129 191.46 126 186.82 58 215 .1314 .1189 831 773 3 522 148.64 775 145.87 955 1756 186.81 92 188.27 62 170 .1314 .1189 831 773 4 591 162.80 221 171.09 430 666 195.06 66 202.20 73 160 .1314 .1189 831 773 5 601 120.65 1113 137.71 550 1665 203.17 123 210.25 55 179 .1314 .1189 831 773 6 692 148.33 747 164.97 374 1121 223.89 83 216.89 37 122 .1314 .1189 831 773 7 717 148.33 888 165.71 405 1293 246.73 106 245.20 33 139 .1314 .1189 831 773 8 778 130.59 1678 152.37 2973 4657 248.29 144 232.87 133 280 .1314 .1189 831 773 9 842 145.59 619 156.56 729 1355 248.34 82 242.56 41 124 .1314 .1189 831 773 10 972 140.07 555 141.17 322 898 257.86 26 338.88 6 50 .1314 .1189 831 773 11 1441 174.20 762 175.95 535 1298 235.36 5 218.67 6 11 .1314 .1189 831 773 12 1521 208.63 938 145.77 2919 3874 302.18 25 284.53 27 63 .1314 .1189 831 773 13 1680 219.07 223 211.82 267 515 321.46 11 334.12 7 22 .1314 .1189 831 773 14 1707 257.19 302 251.16 474 852 348.94 38 306.96 17 106 .1314 .1189 831 773 15 1790 203.56 276 196.31 546 822 342.52 14 334.87 12 26 .1314 .1189 831 773 16 1837 281.16 353 289.14 500 854 350.71 32 363.91 29 67 .1314 .1189 831 773 ; table T1Q85(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 1Q85 1 134 96.96 286 102.78 412 910 118.48 144 113.00 83 592 .1233 .1261 802 751 2 467 134.05 882 132.98 825 1755 195.60 127 189.64 82 237 .1233 .1261 802 751 3 522 156.33 749 146.11 715 1472 191.04 161 207.86 59 237 .1233 .1261 802 751 4 591 135.07 222 146.52 523 765 198.84 57 197.74 51 125 .1233 .1261 802 751 5 601 139.42 791 144.89 470 1261 208.13 130 198.59 66 196 .1233 .1261 802 751 6 692 173.43 662 169.40 589 1251 224.45 157 233.47 70 228 .1233 .1261 802 751 7 717 152.63 612 156.07 396 1008 240.82 143 251.90 54 197 .1233 .1261 802 751 8 778 161.34 1130 169.68 2268 3403 246.49 153 243.55 135 296 .1233 .1261 802 751 9 842 147.01 519 168.91 576 1095 250.81 83 243.83 47 131 .1233 .1261 802 751 10 972 151.34 519 143.33 183 710 243.04 35 227.37 16 58 .1233 .1261 802 751 11 1441 170.02 724 137.15 862 1592 304.98 28 322.32 9 55 .1233 .1261 802 751 12 1521 195.18 773 133.67 3097 3884 305.55 56 308.58 29 96 .1233 .1261 802 751 13 1680 184.22 234 147.60 387 623 334.11 13 363.88 7 20 .1233 .1261 802 751 14 1707 189.97 495 176.81 830 1499 345.63 49 358.73 32 153 .1233 .1261 802 751 15 1790 193.47 186 174.67 629 815 365.42 18 370.76 7 26 .1233 .1261 802 751 16 1837 253.26 447 235.74 699 1146 382.01 72 371.42 40 113 .1233 .1261 802 751 ; table T2Q85(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 2Q85 1 134 96.06 576 101.05 404 1087 116.57 217 112.31 57 392 .1233 .1261 802 751 2 467 121.70 1435 110.11 881 2346 192.49 188 184.71 59 255 .1233 .1261 802 751 3 522 143.72 1137 132.47 700 1851 193.23 162 208.01 49 220 .1233 .1261 802 751 4 591 133.89 615 131.29 361 993 196.22 129 196.09 37 173 .1233 .1261 802 751 5 601 134.49 991 122.78 459 1468 209.86 158 198.64 30 189 .1233 .1261 802 751 6 692 133.52 925 129.32 572 1542 223.63 118 208.93 40 160 .1233 .1261 802 751 7 717 150.17 1124 130.72 403 1527 246.20 150 242.19 28 178 .1233 .1261 802 751 8 778 143.84 2077 149.27 2207 4296 242.14 254 236.87 116 374 .1233 .1261 802 751 9 842 132.17 1051 139.85 588 1640 250.24 129 225.68 39 168 .1233 .1261 802 751 10 972 140.78 823 103.98 201 1032 242.86 34 235.31 7 78 .1233 .1261 802 751 11 1441 161.45 795 121.29 523 1374 289.99 35 235.36 10 89 .1233 .1261 802 751 12 1521 173.57 1298 116.35 2640 3975 314.74 41 256.32 18 433 .1233 .1261 802 751 13 1680 185.62 278 135.41 484 842 290.24 17 301.69 6 34 .1233 .1261 802 751 14 1707 170.29 928 145.44 1171 2103 359.57 54 345.18 10 68 .1233 .1261 802 751 15 1790 182.34 414 156.51 585 1035 362.56 21 374.68 9 50 .1233 .1261 802 751 16 1837 214.26 796 185.85 889 1696 361.25 74 352.88 32 111 .1233 .1261 802 751 ; table T3Q85(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 3Q85 1 134 96.49 558 101.30 602 1206 114.72 193 110.10 86 290 .1233 .1261 802 751 2 467 124.37 1070 128.98 1242 2315 189.58 191 184.57 67 260 .1233 .1261 802 751 3 522 152.59 987 153.13 833 1827 204.99 173 196.93 39 215 .1233 .1261 802 751 4 591 149.69 575 156.85 436 1026 207.82 156 204.70 60 219 .1233 .1261 802 751 5 601 137.30 811 149.94 710 1521 220.00 115 230.49 49 164 .1233 .1261 802 751 6 692 150.55 783 168.61 597 1456 223.08 151 217.68 68 221 .1233 .1261 802 751 7 717 138.42 1031 148.19 583 1614 234.31 141 243.70 39 181 .1233 .1261 802 751 8 778 152.31 1345 163.33 2737 4088 249.20 160 244.07 107 271 .1233 .1261 802 751 9 842 135.45 862 156.45 777 1647 249.60 109 244.52 43 158 .1233 .1261 802 751 10 972 128.21 728 102.85 151 928 215.47 14 111.11 1 61 .1233 .1261 802 751 11 1441 140.15 785 150.28 371 1195 327.91 33 323.69 20 62 .1233 .1261 802 751 12 1521 145.20 1811 127.81 2630 4560 307.40 31 281.80 23 483 .1233 .1261 802 751 13 1680 145.71 336 155.16 468 828 339.50 15 269.44 6 49 .1233 .1261 802 751 14 1707 168.81 761 170.82 1009 1772 364.74 58 336.92 25 84 .1233 .1261 802 751 15 1790 183.65 355 199.47 604 983 369.61 16 351.69 12 70 .1233 .1261 802 751 16 1837 217.45 652 229.92 935 1611 380.36 92 367.14 58 150 .1233 .1261 802 751 ; table T4Q85(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 4Q85 1 134 94.10 601 96.16 565 1168 107.40 266 109.58 100 366 .1233 .1261 802 751 2 467 129.07 776 128.06 1055 1841 195.67 140 193.02 73 213 .1233 .1261 802 751 3 522 153.74 783 157.03 854 1644 215.13 137 218.20 42 180 .1233 .1261 802 751 4 591 147.93 394 168.51 297 694 231.33 118 233.00 59 177 .1233 .1261 802 751 5 601 148.91 635 149.06 661 1296 226.42 93 228.74 45 139 .1233 .1261 802 751 6 692 155.22 635 155.79 514 1167 223.32 124 219.06 51 176 .1233 .1261 802 751 7 717 148.39 683 155.69 469 1162 240.94 92 239.05 38 133 .1233 .1261 802 751 8 778 152.52 997 171.46 2597 3615 261.51 104 256.12 99 205 .1233 .1261 802 751 9 842 143.47 575 164.44 779 1356 264.92 76 264.51 37 115 .1233 .1261 802 751 10 972 128.92 558 140.12 291 881 253.57 15 210.52 11 74 .1233 .1261 802 751 11 1441 146.13 886 149.57 494 1422 309.65 30 320.16 14 65 .1233 .1261 802 751 12 1521 142.17 1551 117.39 2535 4521 258.56 24 295.77 32 374 .1233 .1261 802 751 13 1680 152.85 243 145.92 398 692 321.66 15 382.12 10 63 .1233 .1261 802 751 14 1707 176.92 768 179.38 845 1617 371.71 41 348.83 32 75 .1233 .1261 802 751 15 1790 181.93 271 205.08 410 703 384.93 23 317.75 11 45 .1233 .1261 802 751 16 1837 201.60 579 238.12 672 1260 374.27 68 359.25 32 104 .1233 .1261 802 751 ; table T1Q86(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 1Q86 1 134 90.99 958 97.35 637 1596 109.42 417 107.33 142 561 .1127 .11 769 745 2 467 126.25 1234 139.75 835 2072 198.74 245 194.88 103 349 .1127 .11 769 745 3 522 155.16 1159 168.96 631 1798 221.73 254 224.52 64 328 .1127 .11 769 745 4 591 144.04 524 171.35 360 884 228.89 182 223.48 101 283 .1127 .11 769 745 5 601 150.12 951 158.22 496 1447 230.54 182 231.05 72 254 .1127 .11 769 745 6 692 154.47 947 182.71 431 1404 225.03 213 224.24 94 322 .1127 .11 769 745 7 717 146.04 1060 163.57 363 1429 245.89 180 240.03 54 238 .1127 .11 769 745 8 778 155.62 1387 180.37 2188 3584 258.45 222 263.10 135 357 .1127 .11 769 745 9 842 139.63 826 177.77 568 1394 265.74 128 258.41 64 193 .1127 .11 769 745 10 972 121.65 940 117.78 408 1370 245.62 18 164.05 11 77 .1127 .11 769 745 11 1441 132.22 1642 133.84 665 2322 315.27 42 294.44 13 57 .1127 .11 769 745 12 1521 136.19 2563 103.75 2547 6362 245.16 36 293.44 39 553 .1127 .11 769 745 13 1680 143.89 433 131.91 395 853 325.64 20 261.63 7 28 .1127 .11 769 745 14 1707 164.49 1175 170.74 745 1927 364.34 58 343.30 18 78 .1127 .11 769 745 15 1790 182.30 390 195.33 392 790 380.92 35 341.99 11 48 .1127 .11 769 745 16 1837 203.95 805 206.80 678 1496 379.11 96 403.98 38 135 .1127 .11 769 745 ; table T2Q86(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 2Q86 1 134 99.88 638 105.90 665 1303 112.74 185 116.66 107 292 .1127 .11 769 745 2 467 118.72 1322 126.86 1150 2472 206.40 127 188.78 60 187 .1127 .11 769 745 3 522 154.74 862 155.47 883 1748 227.76 128 243.08 66 195 .1127 .11 769 745 4 591 161.90 408 160.66 524 933 221.29 70 219.24 60 130 .1127 .11 769 745 5 601 146.89 769 151.10 747 1523 246.45 112 224.58 43 155 .1127 .11 769 745 6 692 142.01 752 155.94 475 1447 225.70 83 215.52 43 275 .1127 .11 769 745 7 717 139.76 880 159.54 571 1452 248.65 108 235.20 41 149 .1127 .11 769 745 8 778 166.70 1146 168.29 3016 4193 259.43 166 256.46 169 344 .1127 .11 769 745 9 842 150.59 736 162.55 837 1575 273.55 73 281.39 53 126 .1127 .11 769 745 10 972 137.01 528 133.97 457 1073 215.50 20 186.01 10 192 .1127 .11 769 745 11 1441 141.09 659 133.11 347 1025 323.87 14 299.99 13 27 .1127 .11 769 745 12 1521 137.34 1380 114.92 2528 5412 218.83 23 247.95 49 534 .1127 .11 769 745 13 1680 154.05 258 116.29 622 881 303.32 5 339.91 9 14 .1127 .11 769 745 14 1707 166.07 714 171.77 660 1386 328.39 21 306.83 18 41 .1127 .11 769 745 15 1790 188.14 271 168.45 493 783 389.57 12 364.41 14 28 .1127 .11 769 745 16 1837 197.09 517 221.03 735 1255 377.22 27 333.29 25 53 .1127 .11 769 745 ; table T3Q86(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 3Q86 1 134 101.50 554 103.85 656 1210 114.87 131 112.42 101 232 .1127 .11 769 745 2 467 131.41 1110 125.72 1250 2366 204.33 126 187.75 72 201 .1127 .11 769 745 3 522 157.04 626 155.61 790 1417 227.60 77 208.72 78 155 .1127 .11 769 745 4 591 169.43 300 169.30 522 823 220.27 76 205.43 72 148 .1127 .11 769 745 5 601 157.67 717 154.06 639 1362 258.22 71 203.68 50 121 .1127 .11 769 745 6 692 144.70 556 156.14 547 1354 224.35 26 194.14 34 281 .1127 .11 769 745 7 717 142.05 872 150.13 714 1586 249.85 97 231.46 55 153 .1127 .11 769 745 8 778 169.63 1049 165.47 3249 4335 259.12 121 239.34 157 285 .1127 .11 769 745 9 842 154.81 730 161.10 797 1538 278.93 88 255.55 55 143 .1127 .11 769 745 10 972 139.07 467 152.97 455 1089 199.99 11 172.03 10 280 .1127 .11 769 745 11 1441 149.35 410 132.10 320 749 319.44 3 240.73 10 29 .1127 .11 769 745 12 1521 144.64 1006 113.39 2443 6813 225.46 20 234.11 19 304 .1127 .11 769 745 13 1680 155.29 313 116.82 537 855 374.46 7 355.94 7 14 .1127 .11 769 745 14 1707 183.51 488 187.63 598 1091 358.58 11 308.02 21 38 .1127 .11 769 745 15 1790 206.43 199 200.78 483 682 337.03 12 294.44 10 24 .1127 .11 769 745 16 1837 220.43 459 215.77 775 1238 410.17 36 385.97 22 60 .1127 .11 769 745 ; table T4Q86(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 4Q86 1 134 114.26 549 117.31 636 1190 127.07 151 119.24 82 235 .1127 .11 769 745 2 467 148.13 716 146.69 883 1599 231.16 114 197.95 59 173 .1127 .11 769 745 3 522 172.26 644 173.51 726 1370 263.69 69 240.33 62 131 .1127 .11 769 745 4 591 173.80 276 179.49 406 683 231.80 74 220.85 42 116 .1127 .11 769 745 5 601 157.89 558 161.27 525 1084 251.46 53 219.98 46 100 .1127 .11 769 745 6 692 140.95 576 155.10 473 1270 207.40 18 204.62 20 297 .1127 .11 769 745 7 717 143.82 559 162.30 551 1112 271.84 59 235.99 39 98 .1127 .11 769 745 8 778 167.98 959 181.94 2587 3551 267.11 108 257.98 111 221 .1127 .11 769 745 9 842 157.83 610 176.42 628 1252 287.60 60 280.93 39 99 .1127 .11 769 745 10 972 147.51 411 156.66 344 879 226.78 14 259.12 7 208 .1127 .11 769 745 11 1441 130.39 709 135.02 695 1481 304.24 12 361.47 15 34 .1127 .11 769 745 12 1521 154.65 1061 114.89 2583 5899 186.89 32 274.78 31 363 .1127 .11 769 745 13 1680 140.74 255 126.02 448 716 360.18 3 285.64 12 43 .1127 .11 769 745 14 1707 164.31 557 170.92 670 1234 394.70 31 335.37 14 46 .1127 .11 769 745 15 1790 176.18 274 181.27 500 792 416.86 9 263.57 18 32 .1127 .11 769 745 16 1837 198.71 462 205.39 791 1257 415.58 44 396.79 20 64 .1127 .11 769 745 ; table T1Q87(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 1Q87 1 134 88.04 405 106.60 795 1201 129.21 293 125.51 103 398 .1189 .1142 729 759 2 467 121.02 528 135.47 939 1475 233.03 328 214.46 86 415 .1189 .1142 729 759 3 522 147.83 417 158.51 748 1178 268.49 268 258.70 88 357 .1189 .1142 729 759 4 591 95.51 307 146.87 531 843 232.74 214 242.96 67 281 .1189 .1142 729 759 5 601 110.91 433 148.17 626 1059 267.61 138 216.57 51 189 .1189 .1142 729 759 6 692 124.68 502 141.66 487 1138 224.68 70 215.29 23 329 .1189 .1142 729 759 7 717 117.41 413 142.63 631 1045 271.80 181 258.52 62 243 .1189 .1142 729 759 8 778 124.81 638 172.67 2593 3234 294.76 250 263.33 196 449 .1189 .1152 729 759 9 842 111.01 424 145.78 827 1290 290.92 147 271.06 64 211 .1189 .1142 729 759 10 972 148.66 381 154.89 457 915 276.97 22 265.23 11 164 .1189 .1142 729 759 11 1441 113.18 863 109.19 752 1716 328.93 54 263.58 31 88 .1189 .1142 729 759 12 1521 130.80 958 109.12 2169 5656 212.97 79 254.85 37 1137 .1189 .1142 729 759 13 1680 129.69 239 124.14 507 780 212.77 15 400.20 13 63 .1189 .1142 729 759 14 1707 121.84 647 138.48 813 1517 361.63 66 314.28 23 101 .1189 .1142 729 759 15 1790 167.11 183 150.14 642 830 378.04 30 284.25 9 45 .1189 .1142 729 759 16 1837 174.01 349 169.44 893 1243 419.93 74 417.58 26 100 .1189 .1142 729 759 ; table T2Q87(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 2Q87 1 134 75.24 305 119.96 753 1076 141.23 509 125.50 128 637 .1189 .1142 729 759 2 467 96.21 562 146.56 1011 1575 271.14 393 246.83 96 491 .1189 .1142 729 759 3 522 124.38 714 145.81 798 1522 280.71 272 244.18 65 342 .1189 .1142 729 759 4 591 86.15 304 140.90 466 791 242.69 217 252.51 57 275 .1189 .1142 729 759 5 601 110.17 736 132.49 557 1296 278.50 192 250.73 30 223 .1189 .1142 729 759 6 692 104.64 563 128.12 558 1319 239.86 202 234.23 35 473 .1189 .1142 729 759 7 717 105.14 606 152.41 676 1285 290.70 260 248.30 76 336 .1189 .1142 729 759 8 778 103.45 1223 170.58 2248 3527 300.04 709 262.53 308 1022 .1189 .1142 729 759 9 842 96.74 657 139.65 1083 1771 296.53 197 267.95 48 250 .1189 .1142 729 759 10 972 131.20 561 150.77 449 1117 273.07 40 251.00 11 191 .1189 .1142 729 759 11 1441 109.53 590 123.08 582 1241 315.31 77 332.88 21 102 .1189 .1142 729 759 12 1521 115.53 1141 106.41 1772 4490 211.83 73 288.04 34 1712 .1189 .1142 729 759 13 1680 124.48 350 124.00 565 930 345.43 13 323.76 15 41 .1189 .1142 729 759 14 1707 117.68 556 163.03 542 1281 391.66 106 327.13 13 125 .1189 .1142 729 759 15 1790 132.35 433 149.91 607 1058 392.80 69 386.91 16 98 .1189 .1142 729 759 16 1837 129.32 414 189.20 807 1236 416.22 127 360.35 38 168 .1189 .1142 729 759 ; table T3Q87(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 3Q87 1 134 108.57 152 144.57 559 735 153.48 379 150.70 108 526 .1189 .1142 729 759 2 467 119.99 375 171.27 893 1288 272.77 347 255.34 100 449 .1189 .1142 729 759 3 522 180.31 653 163.69 410 1064 296.49 94 203.63 28 122 .1189 .1142 729 759 4 591 129.08 132 189.01 372 526 254.78 200 233.94 99 306 .1189 .1142 729 759 5 601 156.61 662 143.14 330 997 281.39 76 240.81 13 89 .1189 .1142 729 759 6 692 102.62 340 169.71 163 738 248.86 334 236.91 45 692 .1189 .1142 729 759 7 717 132.95 457 212.97 532 1027 313.80 257 294.95 68 327 .1189 .1142 729 759 8 778 131.83 828 199.07 2167 3202 310.34 522 263.48 290 836 .1189 .1142 729 759 9 842 124.76 531 170.82 1046 1648 301.60 192 272.07 79 279 .1189 .1142 729 759 10 972 148.05 495 163.69 345 1071 251.87 45 218.40 8 221 .1189 .1142 729 759 11 1441 134.00 332 156.34 306 724 293.25 39 287.03 8 52 .1189 .1142 729 759 12 1521 100.91 1632 96.64 2399 6512 156.05 46 238.03 13 1942 .1189 .1142 729 759 13 1680 140.17 282 139.57 359 675 321.40 17 365.37 18 41 .1189 .1142 729 759 14 1707 149.93 317 218.07 374 817 379.51 75 351.11 39 123 .1189 .1142 729 759 15 1790 163.50 224 253.32 192 455 428.71 57 354.39 20 98 .1189 .1142 729 759 16 1837 167.12 241 248.23 549 820 450.68 90 396.45 44 136 .1189 .1142 729 759 ; table T4Q87(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 4Q87 1 134 119.79 129 151.83 545 693 153.92 325 148.08 73 438 .1189 .1142 729 759 2 467 131.34 277 193.36 633 928 277.53 311 270.30 87 402 .1189 .1142 729 759 3 522 194.93 614 183.10 425 1042 299.67 101 231.40 48 153 .1189 .1142 729 759 4 591 179.56 198 202.13 229 444 256.14 164 251.25 45 210 .1189 .1142 729 759 5 601 166.23 530 178.78 344 881 316.48 84 210.86 23 107 .1189 .1142 729 759 6 692 160.44 243 175.75 194 755 257.72 232 240.13 32 713 .1189 .1142 729 759 7 717 141.33 309 211.28 339 652 327.94 219 263.18 53 272 .1189 .1142 729 759 8 778 146.62 617 222.83 1661 2339 315.11 482 260.56 205 692 .1189 .1142 729 759 9 842 136.56 324 186.38 669 1013 314.43 166 275.51 77 244 .1189 .1142 729 759 10 972 168.88 365 184.75 304 876 281.55 76 240.41 20 298 .1189 .1142 729 759 11 1441 147.74 494 155.64 433 1096 376.46 59 313.85 29 93 .1189 .1142 729 759 12 1521 107.97 1978 116.87 1612 6185 209.71 57 296.58 32 2138 .1189 .1142 729 759 13 1680 151.84 308 160.06 255 585 258.02 9 221.16 7 17 .1189 .1142 729 759 14 1707 165.47 402 225.92 376 802 414.16 133 354.24 27 176 .1189 .1142 729 759 15 1790 182.56 209 254.94 198 422 448.02 41 348.25 17 67 .1189 .1142 729 759 16 1837 174.21 281 255.63 554 855 441.69 77 351.49 34 117 .1189 .1142 729 759 ; table T2Q88(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 2Q88 1 134 98.36 228 154.58 637 898 158.08 354 133.47 105 464 .1207 .1157 715 796 2 467 103.56 615 160.17 828 1470 288.57 391 229.25 129 535 .1207 .1157 715 796 3 522 105.77 1568 205.68 473 2122 266.67 582 278.47 107 690 .1207 .1157 715 796 4 591 194.63 190 196.78 441 634 260.75 95 241.94 86 181 .1207 .1157 715 796 5 601 111.24 602 183.61 420 1027 324.38 236 273.79 43 283 .1207 .1157 715 796 6 692 146.85 494 167.66 147 920 268.00 242 271.72 28 690 .1207 .1157 715 796 7 717 134.64 520 192.35 464 1015 330.28 329 252.70 50 379 .1207 .1157 715 796 8 778 140.20 785 218.03 774 1729 331.09 608 266.40 237 854 .1207 .1157 715 796 9 842 133.71 431 195.32 376 868 320.52 224 285.87 73 304 .1207 .1157 715 796 10 972 163.38 495 203.47 411 984 301.40 109 263.44 27 309 .1207 .1157 715 796 11 1441 136.98 547 163.90 60 669 373.14 91 258.79 4 97 .1207 .1157 715 796 12 1521 112.12 1983 146.15 530 4457 287.32 54 323.14 10 631 .1207 .1157 715 796 13 1680 147.88 285 145.60 187 473 348.42 26 461.10 3 30 .1207 .1157 715 796 14 1707 166.52 722 182.22 836 1586 393.78 114 273.05 10 145 .1207 .1157 715 796 15 1790 166.24 500 181.73 703 1220 406.80 37 293.30 9 72 .1207 .1157 715 796 16 1837 177.04 727 239.54 811 1558 396.90 169 350.77 38 212 .1207 .1157 715 796 ; table T4Q88(z2,z1) airline data 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 * 4Q88 1 134 92.97 297 109.40 292 603 140.31 46 139.23 19 90 .1207 .1157 715 796 2 467 134.48 708 121.40 874 1609 256.23 239 248.85 87 328 .1207 .1157 715 796 3 522 120.72 1404 184.11 773 2201 225.14 472 248.73 122 594 .1207 .1157 715 796 4 591 126.60 222 127.65 628 850 282.36 80 283.06 49 129 .1207 .1157 715 796 5 601 147.32 517 177.17 439 1006 306.78 167 260.44 74 241 .1207 .1157 715 796 6 692 136.90 349 171.87 242 830 277.71 202 274.94 36 803 .1207 .1157 715 796 7 717 114.36 399 170.47 338 741 326.54 328 301.36 78 406 .1207 .1157 715 796 8 778 133.80 660 175.54 1074 1839 339.13 494 307.06 375 871 .1207 .1157 715 796 9 842 130.59 864 130.55 725 1599 303.05 26 278.43 21 47 .1207 .1157 715 796 10 972 174.68 321 198.55 213 654 332.99 90 279.78 40 213 .1207 .1157 715 796 11 1441 150.28 570 152.13 70 672 368.63 78 430.03 9 89 .1207 .1157 715 796 12 1521 132.03 1643 133.87 1077 4856 283.46 42 285.30 15 393 .1207 .1157 715 796 13 1680 169.67 337 143.85 171 528 379.73 34 0.00 0 43 .1207 .1157 715 796 14 1707 165.27 993 155.80 850 1884 441.98 90 476.90 43 167 .1207 .1157 715 796 15 1790 192.61 359 185.79 570 939 474.96 35 463.60 30 67 .1207 .1157 715 796 16 1837 199.37 829 200.78 742 1608 453.81 145 468.16 46 205 .1207 .1157 715 796 ; table ue(l,z2) **unemployment rates without Ontario, CA denoted by ZERO **Note: Grand Rapids is missing some observations denoted by ZERO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 9.20000 7.7333 5.26667 5.90000 5.63333 5.40000 5.33333 4.03333 4.63333 3.06667 4.06667 8.23333 5.73333 0 7.4333 4.33333 2 0 7.9000 5.66667 5.76667 6.20000 6.63333 5.70000 5.06667 5.33333 3.80000 5.23333 8.63333 6.90000 0 8.3333 5.00000 3 0 7.5333 5.36667 4.93333 5.90000 5.93333 5.26667 4.50000 5.06667 4.13333 5.20000 8.50000 6.13333 0 7.0667 5.20000 4 0 6.9333 4.93333 5.36667 5.66667 5.60000 4.93333 4.60000 4.36667 4.73333 5.30000 8.80000 5.96667 0 6.9667 6.06667 5 6.70000 6.8000 5.00000 5.36667 5.93333 5.80000 4.96667 4.03333 3.90000 4.66667 5.33333 8.63333 6.96667 0 6.6000 5.46667 6 7.65000 8.4667 6.26667 6.10000 8.20000 6.06667 6.16667 4.10000 4.80000 5.10000 5.46667 6.50000 6.30000 0 7.0667 6.23333 7 7.90000 7.3000 5.76667 6.00000 7.63333 6.53333 5.23333 3.13333 3.96667 5.80000 5.73333 5.96667 4.76667 0 6.1667 5.76667 8 7.26667 7.0667 5.56667 6.00000 7.16667 7.76667 4.80000 3.16667 3.93333 5.76667 5.83333 5.76667 4.16667 0 5.6333 5.70000 9 6.90000 6.1333 5.16667 5.83333 6.73333 6.46667 4.60000 3.03333 3.50000 5.86667 5.96667 5.60000 4.55000 0 6.0000 5.40000 10 6.73333 6.6000 5.33333 6.26667 7.06667 6.86667 4.93333 3.53333 4.33333 6.43333 6.50000 6.30000 6.20000 0 6.6000 5.43333 11 6.56667 5.2333 4.36667 4.66667 5.96667 6.20000 3.80000 2.93333 3.86667 6.70000 5.30000 5.96667 5.16667 0 5.2000 4.46667 12 6.26667 5.3667 4.13333 4.30000 5.73333 5.60000 3.60000 2.80000 3.50000 6.73333 4.76667 6.16667 4.73333 0 5.2667 4.40000 13 5.46667 5.1000 3.93333 4.46667 5.70000 5.23333 3.60000 2.83333 3.13333 6.03333 4.80000 6.13333 5.30000 0 5.3000 3.90000 14 4.83333 4.3667 3.26667 5.23333 3.86667 5.56667 3.16667 2.53333 3.06667 6.16667 5.40000 5.83333 4.70000 0 5.5667 4.16667 15 5.23333 5.1333 3.90000 4.56667 4.40000 5.10000 3.73333 2.96667 2.33333 5.30000 5.26667 4.50000 3.90000 0 4.8667 3.60000 ; airvar(l,z2,z1) = 0; airvar("1",z2,z1) = T4Q84(z2,z1); airvar("2",z2,z1) = T1Q85(z2,z1); airvar("3",z2,z1) = T2Q85(z2,z1); airvar("4",z2,z1) = T3Q85(z2,z1); airvar("5",z2,z1) = T4Q85(z2,z1); airvar("6",z2,z1) = T1Q86(z2,z1); airvar("7",z2,z1) = T2Q86(z2,z1); airvar("8",z2,z1) = T3Q86(z2,z1); airvar("9",z2,z1) = T4Q86(z2,z1); airvar("10",z2,z1) = T1Q87(z2,z1); airvar("11",z2,z1) = T2Q87(z2,z1); airvar("12",z2,z1) = T3Q87(z2,z1); airvar("13",z2,z1) = T4Q87(z2,z1); airvar("14",z2,z1) = T2Q88(z2,z1); airvar("15",z2,z1) = T4Q88(z2,z1); **End of reading Airline vars **Arranging the quantity vars quant1a(l,z2) = airvar(l,z2,"3") + airvar(l,z2,"8"); quant2a(l,z2) = airvar(l,z2,"5") + airvar(l,z2,"10"); quant1(l) = quant1a(l,"4"); quant2(l) = quant2a(l,"4"); totq(l) = sum(z2,(quant1a(l,z2)+quant2a(l,z2)))-(quant1(l) + quant2(l)); cityue(l) = ue(l,"4"); *** cityue(l) = 0; *** avq1 = sum(l,quant1(l))/LL; varq1=sum(l,(quant1(l)-avq1)*(quant1(l)-avq1)) / (LL-1); *varq1=sum(l,(quant1(l)-avq1)*(quant1(l)-avq1)); avq2 = sum(l,quant2(l))/LL; *varq2=sum(l,(quant2(l)-avq2)*(quant2(l)-avq2)); varq2=sum(l,(quant2(l)-avq2)*(quant2(l)-avq2)) / (LL-1); sdq1=sqrt(varq1); sdq2=sqrt(varq2); **CPI index *The following is the nation-wide CPI (All Urban consumers). M1-M12 stands for *months: jan-december. As we want quarter CPI, I guess we should use the *value for the middle of each quarter. For example, I'd use M02 for the first *quarter and M05 for the second quarter. If you prefer, we could use the *average of the three months w/in a quarter. (Ignore the last two columns w/ *N's). parameter CPI(l) consumer price index for period l / * 1983 M01 97.90 N N * 1983 M02 98.00 N N * 1983 M03 98.10 N N * 1983 M04 98.80 N N * 1983 M05 99.20 N N * 1983 M06 99.40 N N * 1983 M07 99.80 N N * 1983 M08 100.10 N N * 1983 M09 100.40 N N * 1983 M10 100.80 N N * 1983 M11 101.10 N N * 1983 M12 101.40 N N * 1984 M01 102.10 N N * 1984 M02 102.60 N N * 1984 M03 102.90 N N * 1984 M04 103.30 N N * 1984 M05 103.50 N N * 1984 M06 103.70 N N * 1984 M07 104.10 N N * 1984 M08 104.40 N N * 1984 M09 104.70 N N * 1984 M10 105.10 N N 1 105.30 * 1984 M12 105.50 N N * 1985 M01 105.70 N N 2 106.30 * 1985 M03 106.80 N N * 1985 M04 107.00 N N 3 107.20 * 1985 M06 107.50 N N * 1985 M07 107.70 N N 4 107.90 * 1985 M09 108.10 N N * 1985 M10 108.50 N N 5 109.00 * 1985 M12 109.50 N N * 1986 M01 109.90 N N 6 109.70 * 1986 M03 109.10 N N * 1986 M04 108.70 N N 7 109.00 * 1986 M06 109.40 N N * 1986 M07 109.50 N N 8 109.60 * 1986 M09 110.00 N N * 1986 M10 110.20 N N 9 110.40 * 1986 M12 110.80 N N * 1987 M01 111.50 N N 10 111.90 * 1987 M03 112.30 N N * 1987 M04 112.80 N N 11 113.10 * 1987 M06 113.60 N N * 1987 M07 113.90 N N 12 114.40 * 1987 M09 114.80 N N * 1987 M10 115.10 N N 13 115.50 * 1987 M12 115.70 N N * 1988 M01 116.10 N N * 1988 M02 116.20 N N * 1988 M03 116.60 N N * 1988 M04 117.20 N N 14 117.60 * 1988 M06 118.10 N N * 1988 M07 118.60 N N * 1988 M08 119.00 N N * 1988 M09 119.60 N N * 1988 M10 120.00 N N 15 120.40 * 1988 M12 120.80 N N * 1989 M01 121.30 N N * 1989 M02 121.70 N N * 1989 M03 122.30 N N * 1989 M04 123.20 N N * 1989 M05 123.80 N N * 1989 M06 124.10 N N * 1989 M07 124.60 N N * 1989 M08 124.60 N N * 1989 M09 124.90 N N * 1989 M10 125.50 N N * 1989 M11 125.90 N N * 1989 M12 126.40 N N * 1990 M01 127.60 N N * 1990 M02 128.10 N N * 1990 M03 128.60 N N * 1990 M04 129.00 N N * 1990 M05 129.20 N N * 1990 M06 130.00 N N * 1990 M07 130.60 N N * 1990 M08 131.70 N N * 1990 M09 132.60 N N * 1990 M10 133.50 N N * 1990 M11 133.80 N N * 1990 M12 134.30 N N * 1991 M01 134.80 N N * 1991 M02 134.90 N N * 1991 M03 134.90 N N * 1991 M04 135.30 N N * 1991 M05 135.70 N N * 1991 M06 136.00 N N * 1991 M07 136.30 N N * 1991 M08 136.70 N N * 1991 M09 137.10 N N * 1991 M10 137.30 N N * 1991 M11 137.90 N N * 1991 M12 138.30 N N * 1992 M01 138.40 N N * 1992 M02 138.70 N N * 1992 M03 139.20 N N * 1992 M04 139.50 N N * 1992 M05 139.80 N N * 1992 M06 140.20 N N * 1992 M07 140.60 N N * 1992 M08 140.90 N N * 1992 M09 141.20 N N * 1992 M10 141.80 N N * 1992 M11 142.10 N N * 1992 M12 142.40 N N * 1993 M01 142.80 N N * 1993 M02 143.20 N N * 1993 M03 143.50 N N * 1993 M04 144.00 N N * 1993 M05 144.30 N N * 1993 M06 144.40 N N * 1993 M07 144.60 N N * 1993 M08 144.90 N N * 1993 M09 145.00 N N * 1993 M10 145.70 N N * 1993 M11 146.00 N N * 1993 M12 146.30 N N * 1994 M01 146.40 N N * 1994 M02 146.80 N N * 1994 M03 147.10 N N * 1994 M04 147.40 N N * 1994 M05 147.60 N N * 1994 M06 148.10 N N * 1994 M07 148.50 N N * 1994 M08 149.10 N N * 1994 M09 149.40 N N * 1994 M10 149.60 N N * 1994 M11 149.80 N N * 1994 M12 150.10 N N * 1995 M01 150.60 N N * 1995 M02 151.00 N N * 1995 M03 151.30 N N * 1995 M04 151.90 N N * 1995 M05 152.30 N N * 1995 M06 152.50 N N /; **Discounting the prices by CPI airvar(l,z2,"2") = (airvar(l,z2,"2")*CPI("1")) / CPI(l); airvar(l,z2,"4") = (airvar(l,z2,"4")*CPI("1")) / CPI(l); airvar(l,z2,"7") = (airvar(l,z2,"7")*CPI("1")) / CPI(l); airvar(l,z2,"9") = (airvar(l,z2,"9")*CPI("1")) / CPI(l); **Calculating Marginal Cost per airline MC1(l,z2) = airvar(l,z2,"1") * airvar(l,z2,"12") * (airvar(l,z2,"1")/airvar(l,z2,"14")) ** airtheta; MC2(l,z2) = airvar(l,z2,"1") * airvar(l,z2,"13") * (airvar(l,z2,"1")/airvar(l,z2,"15")) ** airtheta; cost1a(l)=MC1(l,"4"); cost2a(l)=MC2(l,"4"); **Discounting Costs cost1a(l)=(cost1a(l)*CPI("1")) / CPI(l); cost2a(l)=(cost2a(l)*CPI("1")) / CPI(l); **Averaging Costs for simplicity cost1 = sum(l,cost1a(l))/LL; cost2 = sum(l,cost2a(l))/LL; display cost1a; display cost2a; display cost1; display cost2; *table alphab1(j,k) param space for beta1 * 1 2 3 *1 0 -10 -10 *2 15 0 0 *3 30 10 10 *; parameter palpha(i) prob of gammas/ 1 .05 2 .075 3 .125 4 .15 5 .2 6 .15 7 .125 8 .075 9 .05 /; parameter xx(k) data **Note: Data points are similar across states / 1 70 2 80 3 90 4 100 5 110 6 120 7 130 8 140 9 150 *1 60.3 *2 73 *3 81.7 *4 90 *5 97.531 *6 112 *7 115.98763 *8 123.98719 *9 133.31 *1 70 *2 75 *3 80 *4 85 *5 90 *6 95 *7 100 *8 105 *9 110 *10 115 *11 120 *12 125 *13 130 /; x(i,k) = xx(k); *display x; parameter op1g(g) average observed price per sample for 1 op2g(g) average observed price per sample for 2 op1a(l,z2) observed average prices AA op2a(l,z2) observed average prices UA y1(i) observed prices of firm 1 y2(i) observed prices of firm 2 d1(i,k) demand price of 1 d1(i,k) demand price of 2 q1(i,k) demand quantity of 1 q2(i,k) demand quantity of 2 a pure intercept for demand fn a1(i) noisy demand intercept for firm 1 a2(i) noisy demand intercept for firm 2 b demand param d demand param dd demand param cost c1(i) cost of 1 c2(i) cost of 2 ; parameter xk(k) For frequency count / 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 /; parameter alphae(h) param space for data-consistency errors **See case for Endogenously determined bounds in Loop below / 1 -0.26 2 0.0 3 0.26 *1 0.0 *2 0 *3 0.0 /; **Endogenously determined bounds **See in MC loop below parameter alphan(h) param space for errors of nash eqs / 1 -.05 2 0.0 3 .05 *1 0 /; parameter alphava(h) param space for autocorr demand eqs */ *1 -1500 *2 0.0 *3 1500 */ ; parameter alphaed(h) param space for errors demand eqs */ *1 -1500 *2 0.0 *3 1500 */ ; **Endogenously determined bounds **alphaed("1") = -0.9*sdq1; **alphaed("2") = 0; **alphaed("3") = 0.9*sdq1; alphaed("1") = -3*sdq1; alphaed("2") = 0; alphaed("3") = 3*sdq1; **Definning error support for autocor alphava(h) = alphaed(h); *alphava(h) = (1/3)*alphaed(h); parameter alphal(h) param space for errors of elasticity constraints / 1 -.2 2 0.0 3 .2 *1 0 *2 0 *3 0 /; parameter alphap(h) param space for errors of random coeff - strategies / *1 -.05 *2 0.0 *3 .05 1 -.01 2 0.0 3 .01 *1 0 *2 0 *3 0 /; parameter alphaue(j1) param space for unemployment coeff / 1 -100 2 0.0 3 100 /; parameter alphaeu(h) param space for PURE-STRATEGY errors / 1 -.25 2 0.0 3 .25 /; parameter alphav(h) param space for FOC errors / 1 -100 2 0 3 100 /; parameter alphab(j1,jb) param space for demand coeff a b d ; table alphab(j1,jb) * 1 2 3 4 5 6 **City 4 1 2 3 1 0 -18 0 2 1200 -9 5 3 2400 0 10 **City 9 *1 0 -24 0 *2 1800 -12 5 *3 3600 0 10 **City 12 *1 0 -50 0 *2 2000 -25 15 *3 4000 0 30 **City 15 *1 0 -10 0 *2 1300 -5 1 *3 2600 0 2 *1 -1400 -20 -20 *2 0 -5 0 *3 1400 20 20 *1 -1400 -20 -20 -20 -20 -20 *2 0 0 0 0 0 0 *3 1400 20 20 20 20 20 ; *alphab(j1,jb) = 4*alphab(j1,jb); variables ey1(l) error coefficients for consistency constraints (firm 1) ey2(l) error coefficients for consistency constraints (firm 2) eya1(k) eya2(k) epure1 noise for eqpure1 epure2 noise for eqpure1 v1a(k) errors for foc 1a v1b(k) errors for foc 1b v2a(k) errors for foc 2a v2b(k) errors for foc 2a b1(k) beta1 theta(k) coeff for ols theta1(o) OLS coeff for 1 theta2(o) OLS coeff for 2 YY1(i) expected profit for 1 in state i YY2(i) expected profit for 2 in state i YY1a expected profit for 1 in observation l YY2a expected profit for 2 in observation l erand1(k) error for random coeff pb1 erand2(k) error for random coeff pb2 erande1(k) error for random coeff pbeta1 erande2(k) error for random coeff pbeta2 enash1 error for nash eq firm 1 enash2 error for nash eq firm 2 coeff(jb) demand coefficients a b d coeff1(jb) demand coefficients a b d coeff2(jb) demand coefficients a b d coefa(l) demand coefficient a intercept per period relast1(l) recovered errors for elasticity eqs 1 relast2(l) recovered errors for elasticity eqs 2 ed1(l) error for demand1 ed2(l) error for demand2 vauto1(l) autocor error demand 1 vauto2(l) autocor error demand 2 rhohata autocorr coeff demand 1 rhohata2 Second order autocorr coeff demand 1 rhohata3 Third order 3autocorr coeff demand 1 rhohatb autocorr coeff demand 2 rhohatb2 Second order autocorr coeff demand 2 rhohatb3 Third order autocorr coeff demand 2 ue1 unemployment coeff firm 1 ue2 unemployment coeff firm 2 ; positive variables prand1(k,h) probabilities for random coeff pb1 - the strategies prand2(k,h) probabilities for random coeff pb2 - the strategies prande1(k,h) probabilities for random coeff pbeta1 prande2(k,h) probabilities for random coeff pbeta2 pb1a(i,k) strategy in state i pb2a(i,k) strategy in state i pb1(k) strategies (alphas) of firm 1 - probabilities pb2(k) strategies (alphas) of firm 2 - probabilities pbeta1(k) expectations of firm 1 about firm 2 pbeta2(k) expectations of firm 2 about firm 1 pue1(j1) prob for unemployment 1 pue2(j1) prob for unemployment 1 pey1(l,h) probabilities for y1 (firm 1) errors pey2(l,h) probabilities for y2 (firm 2) errors pu1(h) probs for epure1 pu2(h) probs for epure2 pnash1(h) probs for nash eq pnash2(h) probs for nash eq pv1a(k,h) probabilities for v1a pv1b(k,h) probabilities for v1b pv2a(k,h) probabilities for v2a pv2b(k,h) probabilities for v2b pcoef(jb,j1) probs for demand coeff pcoef1(jb,j1) probs for demand coeff pcoef2(jb,j1) probs for demand coeff pcoefa(l,j1) probs for demand intercept a coeff for each period pelast1(l,h) probs for elasticity constraint 1 pelast2(l,h) probs for elasticity constraint 2 ped1(l,h) error prob for demand eq 1 ped2(l,h) error prob for demand eq 2 pauto1(l,h) prob for autocorr demand pauto2(l,h) prob for autocorr demand peya1(k,h) probabilities for y1 (firm 1) errors peya2(k,h) probabilities for y1 (firm 1) errors ; variables obj objective function ; equations objective ME objective function objectivd ME objective function with demand coeff objectivef GME freq objective function objectauto ME objective function with demand coeff and Autocorr objdemand ME objective function just for demand coeff objective1 CE objective function obj1 OLS objective function obj2 OLS objective function objdata objective for generating data objfreq objective for simple frequencu GME addpb1 adding up for pb1 addpb2 adding up for pb2 addpb1a(i) adding up for pb1a addpb2a(i) adding up for pb2a eqalpha1(k) adding up over states for pb1 eqalpha2(k) adding up over states for pb2 addpbb1 adding up for pbeta1 addpbb2 adding up for pbeta2 addpue1 adding up for unemploy prob 1 addpue2 adding up for unemploy prob 2 eqpue1 definition unemploy 1 eqpue2 definition unemploy 2 addeya1(k) adding up for firm's 1 errors addeya2(k) adding up for firm's 1 errors eqeya1(k) eqeya2(k) addey1(l) adding up for firm's 1 errors addey2(l) adding up for firm's 2 errors addpu1 adding up for pu1 addpu2 adding up for pu2 adde1(l) adding up for ped1 adde2(l) adding up for ped2 eqde1(l) definition for ed1 eqde2(l) definition for ed2 addaut1(l) adding up for ped1 addaut2(l) adding up for ped2 eqaut1(l) definition for ed1 eqaut2(l) definition for ed2 addr1(k) adding up for prand1 addr2(k) adding up for prand2 eqr1(k) errors definitions for rand1 eqr2(k) errors definitions for rand2 addre1(k) adding up for prande1 addre2(k) adding up for prande2 eqre1(k) errors definitions for rande1 eqre2(k) errors definitions for rande2 e10(l) ey1 coefficients e20(l) ey2 coefficients addnash1 adding up nash errors 1 addnash2 adding up nash errors 2 eqnash1 definition nash 1 eqnash2 definition nash 2 addv(i) adding up for z errors addeu(i) adding up for errors in SD consist e10(l) e1k coefficients e20(l) e1k coefficients v0(i) v coefficients u0(i) u coefficients b1k(k) b1 coeff eqpu1 epure1 coeff eqpu2 epure2 coeff **Consistencies below are Not necessary consist1(i) consistency relations for firm 1 consist2(i) consistency relations for firm 2 **Consistencies for simulation and data below consist1a(l) consistency relations for firm 1 consist2a(l) consistency relations for firm 2 **freq consistencies consfreq1(k) consfreq2(k) *foc1a(l,k) FOC (equality) for for firm 1 *foc1b(l,k) FOC (ineq) for for firm 1 *foc2a(l,k) FOC (equality) for for firm 2 *foc2b(l,k) FOC (ineq) for for firm 2 foc1a(k) FOC (equality) for for firm 1 foc1b(k) FOC (ineq) for for firm 1 foc2a(k) FOC (equality) for for firm 2 foc2b(k) FOC (ineq) for for firm 2 dfoc1a(i,k) FOC (equality) for for firm 1 (for generating data) dfoc1b(i,k) FOC (ineq) for for firm 1 (for generating data) dfoc2a(i,k) FOC (equality) for for firm 2 (for generating data) dfoc2b(i,k) FOC (ineq) for for firm 2 (for generating data) nash1(k) NASH condition for 1 nash2(k) NASH condition for 2 *addv1a(l,k) adding for errors foc *addv1b(l,k) adding for errors foc *addv2a(l,k) adding for errors foc *addv2b(l,k) adding for errors foc *eqv1a(l,k) definition of foc errors *eqv1b(l,k) definition of foc errors *eqv2a(l,k) definition of foc errors *eqv2b(l,k) definition of foc errors addv1a(k) adding for errors foc addv1b(k) adding for errors foc addv2a(k) adding for errors foc addv2b(k) adding for errors foc eqv1a(k) definition of foc errors eqv1b(k) definition of foc errors eqv2a(k) definition of foc errors eqv2b(k) definition of foc errors eqpure1 restricting for pure strategy of firm 1 eqpure2 restricting for pure strategy of firm 2 eqYY2 restricts level of firm 2 addpc(jb) adding up for Demand coeff addpc1(jb) adding up for Demand coeff addpc2(jb) adding up for Demand coeff eqcoef(jb) definition for Demand coeff eqcoef1(jb) definition for Demand coeff eqcoef2(jb) definition for Demand coeff adda(l) adding up for demand intercept a per period eqcoefa(l) definition of demand intercept a per period foc1ad(k) FOC (equality) for for firm 1 - demand coeff unknown foc1bd(k) FOC (ineq) for for firm 1 - demand coeff unknown foc2ad(k) FOC (equality) for for firm 2 - demand coeff unknown foc2bd(k) FOC (ineq) for for firm 2 - demand coeff unknown The different cost case with index l below **foc1ad(l,k) FOC (equality) for for firm 1 - demand coeff unknown **foc1bd(l,k) FOC (ineq) for for firm 1 - demand coeff unknown **foc2ad(l,k) FOC (equality) for for firm 2 - demand coeff unknown **foc2bd(l,k) FOC (ineq) for for firm 2 - demand coeff unknown eqbd Restricting demand coeff d to be smaller than b eqbd1 Restricting demand coeff d to be smaller than b eqbd2 Restricting demand coeff d to be smaller than b elast1(l) elasticity of demand firm 1 elast2(l) elasticity of demand firm 2 addel1(l) adding up errors for elasticity eqs 1 addel2(l) adding up errors for elasticity eqs 2 eqel1(l) definitions for elasticity errors 1 eqel2(l) definitions for elasticity errors 2 demand1(l) for estimating demand params AA demand2(l) for estimating demand params UA coreq1a autocor eq demand firm 1 coreq2a coreq3a coreq4a coreq5a coreq6a coreq7a coreq8a coreq9a coreq10a coreq11a coreq12a coreq13a coreq14a coreq15a coreq1b autocor eq demand firm 2 coreq2b coreq3b coreq4b coreq5b coreq6b coreq7b coreq8b coreq9b coreq10b coreq11b coreq12b coreq13b coreq14b coreq15b eqrho1a eqrho2a eqrho1b eqrho2b delast1 elasticity constraint firm 1 delast2 elasticity constraint firm 2 ; **objective for data generation *objdata.. obj =e= 80 *objdata.. obj =e= sum(i,YY1(i)) *objdata.. obj =e= sum(i,palpha(i)*YY1(i)) objdata.. obj =e= (1-delta)*sum(i,palpha(i)*YY1(i))+(delta)*sum(i,palpha(i)*YY2(i)) *objdata.. obj =e= sum(i,(1-delta)*YY1(i) + delta*YY2(i)) *objdata.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8))) * - sum(k,pb2(k)*log((pb2(k)+1.e-8))) ; **ME objective.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8))) - sum(k,pb2(k)*log((pb2(k)+1.e-8))) - sum(k,pbeta1(k)*log((pbeta1(k)+1.e-8))) - sum(k,pbeta2(k)*log((pbeta2(k)+1.e-8))) - sum(k,sum(h,peya1(k,h)*log((peya1(k,h)+1.e-8)))) - sum(k,sum(h,peya2(k,h)*log((peya2(k,h)+1.e-8)))) * - sum(l,sum(h,pey1(l,h)*log((pey1(l,h)+1.e-8)))) * - sum(l,sum(h,pey2(l,h)*log((pey2(l,h)+1.e-8)))) - sum(k,sum(h,prand1(k,h)*log((prand1(k,h)+1.e-8)))) - sum(k,sum(h,prand2(k,h)*log((prand2(k,h)+1.e-8)))) - sum(k,sum(h,prande1(k,h)*log((prande1(k,h)+1.e-8)))) - sum(k,sum(h,prande2(k,h)*log((prande2(k,h)+1.e-8)))) - sum(h,pnash1(h)*log((pnash1(h)+1.e-8))) - sum(h,pnash2(h)*log((pnash2(h)+1.e-8))) * - sum(h,pu1(h)*log((pu1(h)+1.e-8))) * - sum(h,pu2(h)*log((pu2(h)+1.e-8))) * - sum(k,sum(h,pv1a(k,h)*log((pv1a(k,h)+1.e-8)))) - sum(k,sum(h,pv1b(k,h)*log((pv1b(k,h)+1.e-8)))) - sum(k,sum(h,pv2a(k,h)*log((pv2a(k,h)+1.e-8)))) - sum(k,sum(h,pv2b(k,h)*log((pv2b(k,h)+1.e-8)))) ; objectauto.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8))) - sum(k,pb2(k)*log((pb2(k)+1.e-8))) - sum(k,pbeta1(k)*log((pbeta1(k)+1.e-8))) - sum(k,pbeta2(k)*log((pbeta2(k)+1.e-8))) - sum(k,sum(h,peya1(k,h)*log((peya1(k,h)+1.e-8)))) - sum(k,sum(h,peya2(k,h)*log((peya2(k,h)+1.e-8)))) * - sum(l,sum(h,pey1(l,h)*log((pey1(l,h)+1.e-8)))) * - sum(l,sum(h,pey2(l,h)*log((pey2(l,h)+1.e-8)))) - sum(l,sum(h,pelast1(l,h)*log((pelast1(l,h)+1.e-8)))) - sum(l,sum(h,pelast2(l,h)*log((pelast2(l,h)+1.e-8)))) * - sum(jb,sum(j1,pcoef(jb,j1)*log((pcoef(jb,j1)+1.e-8)))) - sum(jb,sum(j1,pcoef1(jb,j1)*log((pcoef1(jb,j1)+1.e-8)))) - sum(jb,sum(j1,pcoef2(jb,j1)*log((pcoef2(jb,j1)+1.e-8)))) - sum(k,sum(h,prand1(k,h)*log((prand1(k,h)+1.e-8)))) - sum(k,sum(h,prand2(k,h)*log((prand2(k,h)+1.e-8)))) - sum(k,sum(h,prande1(k,h)*log((prande1(k,h)+1.e-8)))) - sum(k,sum(h,prande2(k,h)*log((prande2(k,h)+1.e-8)))) - sum(h,pnash1(h)*log((pnash1(h)+1.e-8))) - sum(h,pnash2(h)*log((pnash2(h)+1.e-8))) * - sum(h,pu1(h)*log((pu1(h)+1.e-8))) * - sum(h,pu2(h)*log((pu2(h)+1.e-8))) * - sum(l,sum(h,pauto1(l,h)*log((pauto1(l,h)+1.e-8)))) - sum(l,sum(h,pauto2(l,h)*log((pauto2(l,h)+1.e-8)))) ** - sum(l,sum(h,ped1(l,h)*log((ped1(l,h)+1.e-8)))) ** - sum(l,sum(h,ped2(l,h)*log((ped2(l,h)+1.e-8)))) - sum(k,sum(h,pv1a(k,h)*log((pv1a(k,h)+1.e-8)))) - sum(k,sum(h,pv1b(k,h)*log((pv1b(k,h)+1.e-8)))) - sum(k,sum(h,pv2a(k,h)*log((pv2a(k,h)+1.e-8)))) - sum(k,sum(h,pv2b(k,h)*log((pv2b(k,h)+1.e-8)))) ; objectivef.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8))) - sum(k,pb2(k)*log((pb2(k)+1.e-8))) - sum(k,sum(h,peya1(k,h)*log((peya1(k,h)+1.e-8)))) - sum(k,sum(h,peya2(k,h)*log((peya2(k,h)+1.e-8)))) ; objectivd.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8))) - sum(k,pb2(k)*log((pb2(k)+1.e-8))) - sum(k,pbeta1(k)*log((pbeta1(k)+1.e-8))) - sum(k,pbeta2(k)*log((pbeta2(k)+1.e-8))) - sum(k,sum(h,peya1(k,h)*log((peya1(k,h)+1.e-8)))) - sum(k,sum(h,peya2(k,h)*log((peya2(k,h)+1.e-8)))) * - sum(l,sum(h,pey1(l,h)*log((pey1(l,h)+1.e-8)))) * - sum(l,sum(h,pey2(l,h)*log((pey2(l,h)+1.e-8)))) ** - sum(l,sum(h,pelast1(l,h)*log((pelast1(l,h)+1.e-8)))) ** - sum(l,sum(h,pelast2(l,h)*log((pelast2(l,h)+1.e-8)))) ** - sum(jb,sum(j1,pcoef(jb,j1)*log((pcoef(jb,j1)+1.e-8)))) - sum(jb,sum(j1,pcoef1(jb,j1)*log((pcoef1(jb,j1)+1.e-8)))) - sum(jb,sum(j1,pcoef2(jb,j1)*log((pcoef2(jb,j1)+1.e-8)))) ** - sum(j1,pue1(j1)*log((pue1(j1)+1.e-8))) ** - sum(j1,pue2(j1)*log((pue2(j1)+1.e-8))) - sum(k,sum(h,prand1(k,h)*log((prand1(k,h)+1.e-8)))) - sum(k,sum(h,prand2(k,h)*log((prand2(k,h)+1.e-8)))) ** - sum(k,sum(h,prande1(k,h)*log((prande1(k,h)+1.e-8)))) ** - sum(k,sum(h,prande2(k,h)*log((prande2(k,h)+1.e-8)))) - sum(h,pnash1(h)*log((pnash1(h)+1.e-8))) - sum(h,pnash2(h)*log((pnash2(h)+1.e-8))) * - sum(h,pu1(h)*log((pu1(h)+1.e-8))) * - sum(h,pu2(h)*log((pu2(h)+1.e-8))) * - sum(l,sum(h,ped1(l,h)*log((ped1(l,h)+1.e-8)))) - sum(l,sum(h,ped2(l,h)*log((ped2(l,h)+1.e-8)))) - sum(k,sum(h,pv1a(k,h)*log((pv1a(k,h)+1.e-8)))) - sum(k,sum(h,pv1b(k,h)*log((pv1b(k,h)+1.e-8)))) - sum(k,sum(h,pv2a(k,h)*log((pv2a(k,h)+1.e-8)))) - sum(k,sum(h,pv2b(k,h)*log((pv2b(k,h)+1.e-8)))) ; objdemand.. obj =e= - sum(jb,sum(j1,pcoef1(jb,j1)*log((pcoef1(jb,j1)+1.e-8)))) - sum(jb,sum(j1,pcoef2(jb,j1)*log((pcoef2(jb,j1)+1.e-8)))) * - sum(jb,sum(j1,pcoef(jb,j1)*log((pcoef(jb,j1)+1.e-8)))) - sum(l,sum(h,ped1(l,h)*log((ped1(l,h)+1.e-8)))) - sum(l,sum(h,ped2(l,h)*log((ped2(l,h)+1.e-8)))) - sum(j1,pue1(j1)*log((pue1(j1)+1.e-8))) - sum(j1,pue2(j1)*log((pue2(j1)+1.e-8))) ** - sum(l,sum(h,pauto1(l,h)*log((pauto1(l,h)+1.e-8)))) ** - sum(l,sum(h,pauto2(l,h)*log((pauto2(l,h)+1.e-8)))) ; objfreq.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8))) - sum(k,pb2(k)*log((pb2(k)+1.e-8))) - sum(l,sum(h,pey1(l,h)*log((pey1(l,h)+1.e-8)))) - sum(l,sum(h,pey2(l,h)*log((pey2(l,h)+1.e-8)))) - sum(k,sum(h,prand1(k,h)*log((prand1(k,h)+1.e-8)))) - sum(k,sum(h,prand2(k,h)*log((prand2(k,h)+1.e-8)))) ; ********** **CE objective1.. obj =e= - sum(k,pb1(k)*log((pb1(k)+1.e-8)/(qb1(k)+1.e-8))) - sum(k,pb2(k)*log((pb2(k)+1.e-8)/(qb2(k)+1.e-8))) - sum(k,pbeta1(k)*log((pbeta1(k)+1.e-8)/(qbet1(k)+1.e-8))) - sum(k,pbeta2(k)*log((pbeta2(k)+1.e-8)/(qbet2(k)+1.e-8))) - sum(l,sum(h,pey1(l,h)*log((pey1(l,h)+1.e-8)/(qe1(l,h)+1.e-8)))) - sum(l,sum(h,pey2(l,h)*log((pey2(l,h)+1.e-8)/(qe2(l,h)+1.e-8)))) ; *The CE objective for GENERAL problem with NOISE and WEIGHTS *objective.. obj =e= (1-delta) * sum(k,sum(i,pb(i,k)*log((pb(i,k)+1.e-8)/(qb(i,k)+1.e-8)))) + delta * sum(j,sum(m,pe(m,j)*log((pe(m,j)+1.e-8)/(qe(m,j)+1.e-8)))); ********** addpb1.. sum(k,pb1(k)) =e= 1; addpb2.. sum(k,pb2(k)) =e= 1; adde1(l).. sum(h,ped1(l,h)) =e= 1; adde2(l).. sum(h,ped2(l,h)) =e= 1; addaut1(l).. sum(h,pauto1(l,h)) =e= 1; addaut2(l).. sum(h,pauto2(l,h)) =e= 1; **adding up for data generation addpb1a(i).. sum(k,pb1a(i,k)) =e= 1; addpb2a(i).. sum(k,pb2a(i,k)) =e= 1; eqalpha1(k).. sum(i,palpha(i)*pb1a(i,k)) =e= pb1(k); eqalpha2(k).. sum(i,palpha(i)*pb2a(i,k)) =e= pb2(k); **End adding up for data generation addpbb1.. sum(k,pbeta1(k)) =e= 1; addpbb2.. sum(k,pbeta2(k)) =e= 1; addpue1.. sum(j1,pue1(j1)) =e= 1; addpue2.. sum(j1,pue2(j1)) =e= 1; addey1(l).. sum(h,pey1(l,h)) =e= 1; addey2(l).. sum(h,pey2(l,h)) =e= 1; addeya1(k).. sum(h,peya1(k,h)) =e= 1; addeya2(k).. sum(h,peya2(k,h)) =e= 1; addel1(l).. sum(h,pelast1(l,h)) =e= 1; addel2(l).. sum(h,pelast2(l,h)) =e= 1; addpu1.. sum(h,pu1(h)) =e= 1; addpu2.. sum(h,pu2(h)) =e= 1; addv1a(k).. sum(h,pv1a(k,h)) =e= 1; addv1b(k).. sum(h,pv1b(k,h)) =e= 1; addv2a(k).. sum(h,pv2a(k,h)) =e= 1; addv2b(k).. sum(h,pv2b(k,h)) =e= 1; addr1(k).. sum(h,prand1(k,h)) =e=1; addr2(k).. sum(h,prand2(k,h)) =e=1; eqr1(k).. sum(h,prand1(k,h)*alphap(h)) =e= erand1(k); eqr2(k).. sum(h,prand2(k,h)*alphap(h)) =e= erand2(k); addre1(k).. sum(h,prande1(k,h)) =e=1; addre2(k).. sum(h,prande2(k,h)) =e=1; eqre1(k).. sum(h,prande1(k,h)*alphap(h)) =e= erande1(k); eqre2(k).. sum(h,prande2(k,h)*alphap(h)) =e= erande2(k); addnash1.. sum(h,pnash1(h)) =e=1; addnash2.. sum(h,pnash2(h)) =e=1; eqnash1.. sum(h,pnash1(h)*alphan(h)) =e= enash1; eqnash2.. sum(h,pnash2(h)*alphan(h)) =e= enash2; e10(l).. sum(h,alphae(h)*pey1(l,h)) =e= ey1(l); e20(l).. sum(h,alphae(h)*pey2(l,h)) =e= ey2(l); eqel1(l).. sum(h,alphal(h)*pelast1(l,h)) =e= relast1(l); eqel2(l).. sum(h,alphal(h)*pelast2(l,h)) =e= relast2(l); eqde1(l).. sum(h,alphaed(h)*ped1(l,h)) =e= ed1(l); eqde2(l).. sum(h,alphaed(h)*ped2(l,h)) =e= ed2(l); eqaut1(l).. sum(h,alphava(h)*pauto1(l,h)) =e= vauto1(l); eqaut2(l).. sum(h,alphava(h)*pauto2(l,h)) =e= vauto2(l); eqpue1.. sum(j1,alphaue(j1)*pue1(j1)) =e= ue1; eqpue2.. sum(j1,alphaue(j1)*pue2(j1)) =e= ue2; eqpu1.. sum(h,alphaeu(h)*pu1(h)) =e= epure1; eqpu2.. sum(h,alphaeu(h)*pu2(h)) =e= epure2; eqv1a(k).. sum(h,alphav(h)*pv1a(k,h)) =e= v1a(k); eqv1b(k).. sum(h,alphav(h)*pv1b(k,h)) =e= v1b(k); eqv2a(k).. sum(h,alphav(h)*pv2a(k,h)) =e= v2a(k); eqv2b(k).. sum(h,alphav(h)*pv2b(k,h)) =e= v2b(k); eqeya1(k).. sum(h,alphae(h)*peya1(k,h)) =e= eya1(k); eqeya2(k).. sum(h,alphae(h)*peya2(k,h)) =e= eya2(k); **Equations foe unknown demand coeff a b d below addpc(jb).. sum(j1,pcoef(jb,j1)) =e= 1; addpc1(jb).. sum(j1,pcoef1(jb,j1)) =e= 1; addpc2(jb).. sum(j1,pcoef2(jb,j1)) =e= 1; eqcoef(jb).. sum(j1,pcoef(jb,j1)*alphab(j1,jb)) =e= coeff(jb); eqcoef1(jb).. sum(j1,pcoef1(jb,j1)*alphab(j1,jb)) =e= coeff1(jb); eqcoef2(jb).. sum(j1,pcoef2(jb,j1)*alphab(j1,jb)) =e= coeff2(jb); eqbd.. coeff("3") - coeff("2") =l= 0; eqbd1.. coeff1("3") - coeff1("2") =l= 0; eqbd2.. coeff2("3") - coeff2("2") =l= 0; **Elasticity constraints below elast1(l).. ((coeff("2")*op1(l))+1.e-3)/((coeff("1") - coeff("2")*op1(l) - coeff("3")*op2(l))+1.e-3) + relast1(l) =e= 1.334; elast2(l).. ((coeff("2")*op2(l))+1.e-3)/((coeff("1") - coeff("2")*op2(l) - coeff("3")*op1(l))+1.e-3) + relast2(l) =e= 1.334; *b1k(k).. sum(j,alphab1(j,k)*pb1(k,j)) =e= b1(k); *consist1(i).. y1(i) =e= sum(k,pb1(k)*x(i,k)) + ey1(i); *consist2(i).. y2(i) =e= sum(k,pb2(k)*x(i,k)) + ey2(i); **Below: consistencies for simulations based on First stage results **Alphas startegies as random coeff *consist1a(l).. op1(l) =e= sum(k,(pb1(k)+erand1(k))*xx(k)) + ey1(l); *consist2a(l).. op2(l) =e= sum(k,(pb2(k)+erand2(k))*xx(k)) + ey2(l); **Alphas startegies as point estimates consist1a(l).. op1(l) =e= sum(k,pb1(k)*xx(k)) + ey1(l); consist2a(l).. op2(l) =e= sum(k,pb2(k)*xx(k)) + ey2(l); **Consist freq case consfreq1(k).. pb1(k) =e= nk1(k) + eya1(k); consfreq2(k).. pb2(k) =e= nk2(k) + eya2(k); **Consistencies for estimating Demand params below **Linear demand case **Single set of params *demand1(l).. quant1(l) =e= coeff("1") + coeff("2")*op1(l) + coeff("3")*op2(l) * + ed1(l); *demand2(l).. quant2(l) =e= coeff("1") + coeff("2")*op2(l) + coeff("3")*op1(l) * + ed2(l); **Multiple set of demand params **With unemployment demand1(l).. quant1(l) =e= coeff1("1") + coeff1("2")*op1(l) + coeff1("3")*op2(l) + ue1*cityue(l) + ed1(l); demand2(l).. quant2(l) =e= coeff2("1") + coeff2("2")*op2(l) + coeff2("3")*op1(l) + ue2*cityue(l) + ed2(l); ***Quadratic demand **Note: adjust the indx jb **demand1(l).. quant1(l) =e= coeff1("1") + coeff1("2")*op1(l) + coeff1("3")*op2(l) ** + coeff1("4")*op1sq(l) + coeff1("5")*op2sq(l) + coeff1("6")*op1op2(l) ** + ue1*cityue(l) + ed1(l); **demand2(l).. quant2(l) =e= coeff2("1") + coeff2("2")*op2(l) + coeff2("3")*op1(l) ** + coeff2("4")*op2sq(l) + coeff2("5")*op1sq(l) + coeff2("6")*op1op2(l) ** + ue2*cityue(l) + ed2(l); ***Separable demand with time coeff **Note: adjust the indx jb *demand1(l).. quant1(l) =e= coeff1("1") + coeff1("2")*op1(l) + coeff1("3")*op2(l) * + coeff1("4")*time1(l) + coeff1("5")*time2(l) + coeff1("6")*time3(l) * + ue1*cityue(l) + ed1(l); *demand2(l).. quant2(l) =e= coeff2("1") + coeff2("2")*op2(l) + coeff2("3")*op1(l) * + coeff2("4")*time1(l) + coeff2("5")*time2(l) + coeff2("6")*time3(l) * + ue2*cityue(l) + ed2(l); **Elasticity requirements **Averages *delast1.. (avop1/avq1)*coeff1("2") =l= -1.0; *delast2.. (avop2/avq2)*coeff2("2") =l= -1.0; delast1.. avratio1*coeff1("2") =l= -1.6; delast2.. avratio2*coeff2("2") =l= -1.6; **Based on min ratio *delast1.. minratio1*coeff1("2") =l= -1.0; *delast2.. minratio2*coeff2("2") =l= -1.0; **Correction eqs for autocor below **Forst order Auto case *coreq1a.. ed1("1") =e= vauto1("1"); *coreq2a.. ed1("2") =e= rhohata*vauto1("1") + vauto1("2"); *coreq3a.. ed1("3") =e= rhohata*ed1("2") + vauto1("3"); *coreq4a.. ed1("4") =e= rhohata*ed1("3") + vauto1("4"); *coreq5a.. ed1("5") =e= rhohata*ed1("4") + vauto1("5"); *coreq6a.. ed1("6") =e= rhohata*ed1("5") + vauto1("6"); *coreq7a.. ed1("7") =e= rhohata*ed1("6") + vauto1("7"); *coreq8a.. ed1("8") =e= rhohata*ed1("7") + vauto1("8"); *coreq9a.. ed1("9") =e= rhohata*ed1("8") + vauto1("9"); *coreq10a.. ed1("10") =e= rhohata*ed1("9") + vauto1("10"); *coreq11a.. ed1("11") =e= rhohata*ed1("10") + vauto1("11"); *coreq12a.. ed1("12") =e= rhohata*ed1("11") + vauto1("12"); *coreq13a.. ed1("13") =e= rhohata*ed1("12") + vauto1("13"); *coreq14a.. ed1("14") =e= rhohata*ed1("13") + vauto1("14"); *coreq15a.. ed1("15") =e= rhohata*ed1("14") + vauto1("15"); *coreq1b.. ed2("1") =e= vauto2("1"); *coreq2b.. ed2("2") =e= rhohatb*vauto2("1") + vauto2("2"); *coreq3b.. ed2("3") =e= rhohatb*ed2("2") + vauto2("3"); *coreq4b.. ed2("4") =e= rhohatb*ed2("3") + vauto2("4"); *coreq5b.. ed2("5") =e= rhohatb*ed2("4") + vauto2("5"); *coreq6b.. ed2("6") =e= rhohatb*ed2("5") + vauto2("6"); *coreq7b.. ed2("7") =e= rhohatb*ed2("6") + vauto2("7"); *coreq8b.. ed2("8") =e= rhohatb*ed2("7") + vauto2("8"); *coreq9b.. ed2("9") =e= rhohatb*ed2("8") + vauto2("9"); *coreq10b.. ed2("10") =e= rhohatb*ed2("9") + vauto2("10"); *coreq11b.. ed2("11") =e= rhohatb*ed2("10") + vauto2("11"); *coreq12b.. ed2("12") =e= rhohatb*ed2("11") + vauto2("12"); *coreq13b.. ed2("13") =e= rhohatb*ed2("12") + vauto2("13"); *coreq14b.. ed2("14") =e= rhohatb*ed2("13") + vauto2("14"); *coreq15b.. ed2("15") =e= rhohatb*ed2("14") + vauto2("15"); **Third order Auto coreq1a.. ed1("1") =e= vauto1("1"); coreq2a.. ed1("2") =e= rhohata*vauto1("1") + vauto1("2"); coreq3a.. ed1("3") =e= rhohata*ed1("2")+rhohata2*ed1("1") + vauto1("3"); coreq4a.. ed1("4") =e= rhohata*ed1("3")+rhohata2*ed1("2")+rhohata3*ed1("1") + vauto1("4"); coreq5a.. ed1("5") =e= rhohata*ed1("4")+rhohata2*ed1("3")+rhohata3*ed1("2") + vauto1("5"); coreq6a.. ed1("6") =e= rhohata*ed1("5")+rhohata2*ed1("4")+rhohata3*ed1("3") + vauto1("6"); coreq7a.. ed1("7") =e= rhohata*ed1("6")+rhohata2*ed1("5")+rhohata3*ed1("4") + vauto1("7"); coreq8a.. ed1("8") =e= rhohata*ed1("7")+rhohata2*ed1("6")+rhohata3*ed1("5") + vauto1("8"); coreq9a.. ed1("9") =e= rhohata*ed1("8")+rhohata2*ed1("7")+rhohata3*ed1("6") + vauto1("9"); coreq10a.. ed1("10") =e= rhohata*ed1("9")+rhohata2*ed1("8")+rhohata3*ed1("7") + vauto1("10"); coreq11a.. ed1("11") =e= rhohata*ed1("10")+rhohata2*ed1("9")+rhohata3*ed1("8") + vauto1("11"); coreq12a.. ed1("12") =e= rhohata*ed1("11")+rhohata2*ed1("10")+rhohata3*ed1("9") + vauto1("12"); coreq13a.. ed1("13") =e= rhohata*ed1("12")+rhohata2*ed1("11")+rhohata3*ed1("10") + vauto1("13"); coreq14a.. ed1("14") =e= rhohata*ed1("13")+rhohata2*ed1("12")+rhohata3*ed1("11") + vauto1("14"); coreq15a.. ed1("15") =e= rhohata*ed1("14")+rhohata2*ed1("13")+rhohata3*ed1("12") + vauto1("15"); coreq1b.. ed2("1") =e= vauto2("1"); coreq2b.. ed2("2") =e= rhohatb*vauto2("1") + vauto2("2"); coreq3b.. ed2("3") =e= rhohatb*ed2("2")+rhohatb2*ed2("1") + vauto2("3"); coreq4b.. ed2("4") =e= rhohatb*ed2("3")+rhohatb2*ed2("2")+rhohatb3*ed2("1") + vauto2("4"); coreq5b.. ed2("5") =e= rhohatb*ed2("4")+rhohatb2*ed2("3")+rhohatb3*ed2("2") + vauto2("5"); coreq6b.. ed2("6") =e= rhohatb*ed2("5")+rhohatb2*ed2("4")+rhohatb3*ed2("3") + vauto2("6"); coreq7b.. ed2("7") =e= rhohatb*ed2("6")+rhohatb2*ed2("5")+rhohatb3*ed2("4") + vauto2("7"); coreq8b.. ed2("8") =e= rhohatb*ed2("7")+rhohatb2*ed2("6")+rhohatb3*ed2("5") + vauto2("8"); coreq9b.. ed2("9") =e= rhohatb*ed2("8")+rhohatb2*ed2("7")+rhohatb3*ed2("6") + vauto2("9"); coreq10b.. ed2("10") =e= rhohatb*ed2("9")+rhohatb2*ed2("8")+rhohatb3*ed2("7") + vauto2("10"); coreq11b.. ed2("11") =e= rhohatb*ed2("10")+rhohatb2*ed2("9")+rhohatb3*ed2("8") + vauto2("11"); coreq12b.. ed2("12") =e= rhohatb*ed2("11")+rhohatb2*ed2("10")+rhohatb3*ed2("9") + vauto2("12"); coreq13b.. ed2("13") =e= rhohatb*ed2("12")+rhohatb2*ed2("11")+rhohatb3*ed2("10") + vauto2("13"); coreq14b.. ed2("14") =e= rhohatb*ed2("13")+rhohatb2*ed2("12")+rhohatb3*ed2("11") + vauto2("14"); coreq15b.. ed2("15") =e= rhohatb*ed2("14")+rhohatb2*ed2("13")+rhohatb3*ed2("12") + vauto2("15"); eqrho1a.. rhohata =l= .999999; eqrho2a.. rhohata =g= -.999999; eqrho1b.. rhohatb =l= .999999; eqrho2b.. rhohatb =g= -.999999; **The new consistencies below **Betas are point estimates foc1a(k).. sum(k1,pbeta2(k1)*(a + b*xx(k) +d*xx(k1)) * (xx(k)-cost)) - YY1a =l= v1a(k); foc1b(k).. (sum(k1,pbeta2(k1)*(a + b*xx(k) +d*xx(k1)) * (xx(k)-cost)) - YY1a) * (pb1(k) + erand1(k)) =e= v1b(k); foc2a(k).. sum(k1,pbeta1(k1)*(a + b*xx(k) +d*xx(k1)) * (xx(k)-cost)) - YY2a =l= v2a(k); foc2b(k).. (sum(k1,pbeta1(k1)*(a + b*xx(k) +d*xx(k1)) * (xx(k)-cost)) - YY2a) * (pb2(k) + erand2(k)) =e= v2b(k); **Beta as random coeff **foc1a(k).. sum(k1,(pbeta2(k1)+erande2(k1))*(a + b*xx(k) +d*xx(k1)) * ** (xx(k)-cost1)) - YY1a =l= v1a(k); **foc1b(k).. (sum(k1,(pbeta2(k1)+erande2(k1))*(a + b*xx(k) +d*xx(k1)) * ** (xx(k)-cost1)) - YY1a) * (pb1(k) + ** erand1(k)) =e= v1b(k); **foc2a(k).. sum(k1,(pbeta1(k1)+erande1(k1))*(a + b*xx(k) +d*xx(k1)) * ** (xx(k)-cost2)) - YY2a =l= v2a(k); **foc2b(k).. (sum(k1,(pbeta1(k1)+erande1(k1))*(a + b*xx(k) +d*xx(k1)) * ** (xx(k)-cost2)) - YY2a) * (pb2(k) + ** erand2(k)) =e= v2b(k); **FOC rand coeff and UNKNOWN demand params a b c *Single set of Demand params *foc1ad(k).. sum(k1,(pbeta2(k1)+erande2(k1))*(coeff("1") * + coeff("2")*xx(k) +coeff("3")*xx(k1)) * * (xx(k)-cost1)) - YY1a =l= v1a(k); *foc1bd(k).. (sum(k1,(pbeta2(k1)+erande2(k1))*(coeff("1") * + coeff("2")*xx(k) +coeff("3")*xx(k1)) * * (xx(k)-cost1)) - YY1a) * (pb1(k) + * erand1(k)) =e= v1b(k); * *foc2ad(k).. sum(k1,(pbeta1(k1)+erande1(k1))*(coeff("1") * + coeff("2")*xx(k) +coeff("3")*xx(k1)) * * (xx(k)-cost2)) - YY2a =l= v2a(k); *foc2bd(k).. (sum(k1,(pbeta1(k1)+erande1(k1))*(coeff("1") * + coeff("2")*xx(k) +coeff("3")*xx(k1)) * * (xx(k)-cost2)) - YY2a) * (pb2(k) + * erand2(k)) =e= v2b(k); **Multiple Demand params **Random Coeff Beta *foc1ad(k).. sum(k1,(pbeta2(k1)+erande2(k1))*(coeff1("1") * + coeff1("2")*xx(k) +coeff1("3")*xx(k1)) * * (xx(k)-cost1)) - YY1a =l= v1a(k); *foc1bd(k).. (sum(k1,(pbeta2(k1)+erande2(k1))*(coeff1("1") * + coeff1("2")*xx(k) +coeff1("3")*xx(k1)) * * (xx(k)-cost1)) - YY1a) * (pb1(k) + * erand1(k)) =e= v1b(k); *foc2ad(k).. sum(k1,(pbeta1(k1)+erande1(k1))*(coeff2("1") * + coeff2("2")*xx(k) +coeff2("3")*xx(k1)) * * (xx(k)-cost2)) - YY2a =l= v2a(k); *foc2bd(k).. (sum(k1,(pbeta1(k1)+erande1(k1))*(coeff2("1") * + coeff2("2")*xx(k) +coeff2("3")*xx(k1)) * * (xx(k)-cost2)) - YY2a) * (pb2(k) + * erand2(k)) =e= v2b(k); **Betas are point estimates foc1ad(k).. sum(k1,pbeta2(k1)*(coeff1("1") + coeff1("2")*xx(k) +coeff1("3")*xx(k1)) * (xx(k)-cost1)) - YY1a =l= v1a(k); foc1bd(k).. (sum(k1,pbeta2(k1)*(coeff1("1") + coeff1("2")*xx(k) +coeff1("3")*xx(k1)) * (xx(k)-cost1)) - YY1a) * (pb1(k) + erand1(k)) =e= v1b(k); foc2ad(k).. sum(k1,pbeta1(k1)*(coeff2("1") + coeff2("2")*xx(k) +coeff2("3")*xx(k1)) * (xx(k)-cost2)) - YY2a =l= v2a(k); foc2bd(k).. (sum(k1,pbeta1(k1)*(coeff2("1") + coeff2("2")*xx(k) +coeff2("3")*xx(k1)) * (xx(k)-cost2)) - YY2a) * (pb2(k) + erand2(k)) =e= v2b(k); **Different MC per period **Note add l in eqs below **foc1ad(l,k).. sum(k1,(pbeta2(k1)+erande2(k1))*(coeff1.l("1") ** + coeff1.l("2")*xx(k) +coeff1.l("3")*xx(k1)+ue1.l*cityue(l)) * ** (xx(k)-cost1a(l))) - YY1a =l= v1a(k); **foc1bd(l,k).. (sum(k1,(pbeta2(k1)+erande2(k1))*(coeff1.l("1") ** + coeff1.l("2")*xx(k) +coeff1.l("3")*xx(k1)+ue1.l*cityue(l)) * ** (xx(k)-cost1a(l))) - YY1a) * (pb1(k) + ** erand1(k)) =e= v1b(k); ** **foc2ad(l,k).. sum(k1,(pbeta1(k1)+erande1(k1))*(coeff2.l("1") ** + coeff2.l("2")*xx(k) +coeff2.l("3")*xx(k1)+ue1.l*cityue(l)) * ** (xx(k)-cost2a(l))) - YY2a =l= v2a(k); **foc2bd(l,k).. (sum(k1,(pbeta1(k1)+erande1(k1))*(coeff2.l("1") ** + coeff2.l("2")*xx(k) +coeff2.l("3")*xx(k1)+ue1.l*cityue(l)) * ** (xx(k)-cost2a(l))) - YY2a) * (pb2(k) + ** erand2(k)) =e= v2b(k); **Can Try Different Error Structure for above FOC **But above seems to performs best **FOC for data generation dfoc1a(i,k).. sum(k1,pb2(k1)*(a1(i) + b*x(i,k) +d*x(i,k1)) * (x(i,k)-c1(i))) - YY1(i) =l= 0.0; dfoc1b(i,k).. (sum(k1,pb2(k1)*(a1(i) + b*x(i,k) +d*x(i,k1)) * (x(i,k)-c1(i))) - YY1(i)) * pb1a(i,k) =e= 0.0; dfoc2a(i,k).. sum(k1,pb1(k1)*(a2(i) + b*x(i,k) +d*x(i,k1)) * (x(i,k)-c2(i))) - YY2(i) =l= 0.0; dfoc2b(i,k).. (sum(k1,pb1(k1)*(a2(i) + b*x(i,k) +d*x(i,k1)) * (x(i,k)-c2(i))) - YY2(i)) * pb2a(i,k) =e= 0.0; **The nonlin example *dfoc1a(i,k).. sum(k1,pb2(k1)*(a1(i) + b*x(i,k) +d*x(i,k1)+dd*x(i,k)*x(i,k1)) * * (x(i,k)-c1(i))) - YY1 =l= 0.0; *dfoc1b(i,k).. (sum(k1,pb2(k1)*(a1(i) + b*x(i,k) +d*x(i,k1)+dd*x(i,k)*x(i,k1)) * * (x(i,k)-c1(i))) - YY1) * pb1(k) =e= 0.0; * *dfoc2a(i,k).. sum(k1,pb1(k1)*(a2(i) + b*x(i,k) +d*x(i,k1)+dd*x(i,k)*x(i,k1)) * * (x(i,k)-c2(i))) - YY2 =l= 0.0; *dfoc2b(i,k).. (sum(k1,pb1(k1)*(a2(i) + b*x(i,k) +d*x(i,k1)+dd*x(i,k)*x(i,k1)) * * (x(i,k)-c2(i))) - YY2) * pb2(k) =e= 0.0; ***Nash Eq for alpha beta nash1(k).. pb1(k) =e= pbeta1(k) + enash1; nash2(k).. pb2(k) =e= pbeta2(k) + enash2; **Nash Random Coeff alpha beta below *nash1(k).. pb1(k)+erand1(k) =e= pbeta1(k)+erande1(k) + enash1; *nash2(k).. pb2(k)+erand2(k) =e= pbeta2(k)+erande2(k) + enash2; eqpure1.. pb1("1")*pb1("2") + pb1("1")*pb1("3") + pb1("1")*pb1("4") + pb1("1")*pb1("5") + pb1("1")* pb1("6") + pb1("1")*pb1("7") + pb1("1")*pb1("8") + pb1("1")*pb1("9") * + pb1("1")*pb1("10") * + pb1("1")*pb1("11") + pb1("1")*pb1("12") + pb1("1")*pb1("13") * + pb1("1")*pb1("14") + pb1("1")*pb1("15") + pb1("1")*pb1("16") + pb1("2")*pb1("3") + pb1("2")*pb1("4") + pb1("2")*pb1("5") + pb1("2")* pb1("6") + pb1("2")*pb1("7") + pb1("2")*pb1("8") + pb1("2")*pb1("9") * + pb1("2")*pb1("10") * + pb1("2")*pb1("11") + pb1("2")*pb1("12") + pb1("2")*pb1("13") * + pb1("2")*pb1("14") + pb1("2")*pb1("15") + pb1("2")*pb1("16") + pb1("3")*pb1("4") + pb1("3")*pb1("5") + pb1("3")* pb1("6") + pb1("3")*pb1("7") + pb1("3")*pb1("8") + pb1("3")*pb1("9") * + pb1("3")*pb1("10") * + pb1("3")*pb1("11") + pb1("3")*pb1("12") + pb1("3")*pb1("13") * + pb1("3")*pb1("14") + pb1("3")*pb1("15") + pb1("3")*pb1("16") + pb1("4")*pb1("5") + pb1("4")* pb1("6") + pb1("4")*pb1("7") + pb1("4")*pb1("8") + pb1("4")*pb1("9") * + pb1("4")*pb1("10") * + pb1("4")*pb1("11") + pb1("4")*pb1("12") + pb1("4")*pb1("13") * + pb1("4")*pb1("14") + pb1("4")*pb1("15") + pb1("4")*pb1("16") + pb1("5")*pb1("6") + pb1("5")*pb1("7") + pb1("5")*pb1("8") + pb1("5")*pb1("9") * + pb1("5")*pb1("10") * + pb1("5")*pb1("11") + pb1("5")*pb1("12") + pb1("5")*pb1("13") * + pb1("5")*pb1("14") + pb1("5")*pb1("15") + pb1("5")*pb1("16") + pb1("6")*pb1("7") + pb1("6")*pb1("8") + pb1("6")*pb1("9") * + pb1("6")*pb1("10") * + pb1("6")*pb1("11") + pb1("6")*pb1("12") + pb1("6")*pb1("13") * + pb1("6")*pb1("14") + pb1("6")*pb1("15") + pb1("6")*pb1("16") + pb1("7")*pb1("8") + pb1("7")*pb1("9") * + pb1("7")*pb1("10") * + pb1("7")*pb1("11") + pb1("7")*pb1("12") + pb1("7")*pb1("13") * + pb1("7")*pb1("14") + pb1("7")*pb1("15") + pb1("7")*pb1("16") + pb1("8")*pb1("9") * + pb1("8")*pb1("10") * + pb1("8")*pb1("11") + pb1("8")*pb1("12") + pb1("8")*pb1("13") * + pb1("8")*pb1("14") + pb1("8")*pb1("15") + pb1("8")*pb1("16") * + pb1("9")*pb1("10") * + pb1("9")*pb1("11") + pb1("9")*pb1("12") + pb1("9")*pb1("13") * + pb1("9")*pb1("14") + pb1("9")*pb1("15") + pb1("9")*pb1("16") * + pb1("10")*pb1("11") + pb1("10")*pb1("12") + pb1("10")*pb1("13") * + pb1("10")*pb1("14") + pb1("10")*pb1("15") + pb1("10")*pb1("16") * + pb1("11")*pb1("12") + pb1("11")*pb1("13") * + pb1("11")*pb1("14") + pb1("11")*pb1("15") + pb1("11")*pb1("16") * + pb1("12")*pb1("13") * + pb1("12")*pb1("14") + pb1("12")*pb1("15") + pb1("12")*pb1("16") * + pb1("13")*pb1("14") + pb1("13")*pb1("15") + pb1("13")*pb1("16") * + pb1("14")*pb1("15") + pb1("14")*pb1("16") * + pb1("14")*pb1("16") + epure1 =e= 0; eqpure2.. pb2("1")*pb2("2") + pb2("1")*pb2("3") + pb2("1")*pb2("4") + pb2("1")*pb2("5") + pb2("1")* pb2("6") + pb2("1")*pb2("7") + pb2("1")*pb2("8") + pb2("1")*pb2("9") * + pb2("1")*pb2("10") * + pb2("1")*pb2("11") + pb2("1")*pb2("12") + pb2("1")*pb2("13") * + pb2("1")*pb2("14") + pb2("1")*pb2("15") + pb2("1")*pb2("16") + pb2("2")*pb2("3") + pb2("2")*pb2("4") + pb2("2")*pb2("5") + pb2("2")* pb2("6") + pb2("2")*pb2("7") + pb2("2")*pb2("8") + pb2("2")*pb2("9") * + pb2("2")*pb2("10") * + pb2("2")*pb2("11") + pb2("2")*pb2("12") + pb2("2")*pb2("13") * + pb2("2")*pb2("14") + pb2("2")*pb2("15") + pb2("2")*pb2("16") + pb2("3")*pb2("4") + pb2("3")*pb2("5") + pb2("3")* pb2("6") + pb2("3")*pb2("7") + pb2("3")*pb2("8") + pb2("3")*pb2("9") * + pb2("3")*pb2("10") * + pb2("3")*pb2("11") + pb2("3")*pb2("12") + pb2("3")*pb2("13") * + pb2("3")*pb2("14") + pb2("3")*pb2("15") + pb2("3")*pb2("16") + pb2("4")*pb2("5") + pb2("4")* pb2("6") + pb2("4")*pb2("7") + pb2("4")*pb2("8") + pb2("4")*pb2("9") * + pb2("4")*pb2("10") * + pb2("4")*pb2("11") + pb2("4")*pb2("12") + pb2("4")*pb2("13") * + pb2("4")*pb2("14") + pb2("4")*pb2("15") + pb2("4")*pb2("16") + pb2("5")*pb2("6") + pb2("5")*pb2("7") + pb2("5")*pb2("8") + pb2("5")*pb2("9") * + pb2("5")*pb2("10") * + pb2("5")*pb2("11") + pb2("5")*pb2("12") + pb2("5")*pb2("13") * + pb2("5")*pb2("14") + pb2("5")*pb2("15") + pb2("5")*pb2("16") + pb2("6")*pb2("7") + pb2("6")*pb2("8") + pb2("6")*pb2("9") * + pb2("6")*pb2("10") * + pb2("6")*pb2("11") + pb2("6")*pb2("12") + pb2("6")*pb2("13") * + pb2("6")*pb2("14") + pb2("6")*pb2("15") + pb2("6")*pb2("16") + pb2("7")*pb2("8") + pb2("7")*pb2("9") * + pb2("7")*pb2("10") * + pb2("7")*pb2("11") + pb2("7")*pb2("12") + pb2("7")*pb2("13") * + pb2("7")*pb2("14") + pb2("7")*pb2("15") + pb2("7")*pb2("16") + pb2("8")*pb2("9") * + pb2("8")*pb2("10") * + pb2("8")*pb2("11") + pb2("8")*pb2("12") + pb2("8")*pb2("13") * + pb2("8")*pb2("14") + pb2("8")*pb2("15") + pb2("8")*pb2("16") * + pb2("9")*pb2("10") * + pb2("9")*pb2("11") + pb2("9")*pb2("12") + pb2("9")*pb2("13") * + pb2("9")*pb2("14") + pb2("9")*pb2("15") + pb2("9")*pb2("16") * + pb2("10")*pb2("11") + pb2("10")*pb2("12") + pb2("10")*pb2("13") * + pb2("10")*pb2("14") + pb2("10")*pb2("15") + pb2("10")*pb2("16") * + pb2("11")*pb2("12") + pb2("11")*pb2("13") * + pb2("11")*pb2("14") + pb2("11")*pb2("15") + pb2("11")*pb2("16") * + pb2("12")*pb2("13") * + pb2("12")*pb2("14") + pb2("12")*pb2("15") + pb2("12")*pb2("16") * + pb2("13")*pb2("14") + pb2("13")*pb2("15") + pb2("13")*pb2("16") * + pb2("14")*pb2("15") + pb2("14")*pb2("16") * + pb2("14")*pb2("16") + epure2 =e= 0; **eqpure2(k,k2)$ind2(k2).. pb2(k)*pb2(k2) =e= 0; **Note "l" means less or equal **Note "g" means greater or equal ***OLS objective **obj1.. obj =e= - sum(i, (y(i) - sum(k,x(i,k)*theta(k)))*(y(i) - sum(k,x(i,k)*theta(k)))); ***OLS for Demand estimation firm 1 obj1.. obj =e= - sum(l, (quant1(l) - sum(o,xols1(l,o)*theta1(o)))* (quant1(l) - sum(o,xols1(l,o)*theta1(o)))); ***OLS for Demand estimation firm 2 obj2.. obj =e= - sum(l, (quant2(l) - sum(o,xols2(l,o)*theta2(o)))* (quant2(l) - sum(o,xols2(l,o)*theta2(o)))); *option nlp=conopt ; *Note: remove zero when alpha space is equal for all model GAMEDAT data generation / objdata addpb1 addpb2 addpb1a addpb2a eqalpha1 eqalpha2 dfoc1a dfoc1b dfoc2a dfoc2b /; model GAMEAME /objective addpb1 addpb2 addpbb1 addpbb2 * addey1 * addey2 addr1 addr2 eqr1 eqr2 addre1 addre2 eqre1 eqre2 addnash1 addnash2 eqnash1 eqnash2 * e10 * e20 * consist1a * consist2a addeya1 addeya2 eqeya1 eqeya2 consfreq1 consfreq2 * addpu1 * addpu2 * eqpu1 * eqpu2 foc1a foc1b foc2a foc2b addv1a addv1b addv2a addv2b eqv1a eqv1b eqv2a eqv2b nash1 nash2 * eqpure1 * eqpure2 /; model FREQ /objectivef addpb1 addpb2 addeya1 addeya2 eqeya1 eqeya2 consfreq1 consfreq2 /; model GAMEDAUT GME Unknown Demand and AUTOCORR / objectauto addpb1 addpb2 addpbb1 addpbb2 * addpc addpc1 addpc2 eqcoef1 eqcoef2 * eqcoef * eqbd * eqbd1 * eqbd2 adde1 adde2 eqde1 eqde2 demand1 demand2 * elast1 * elast2 * addel1 * addel2 * eqel1 * eqel2 addey1 addey2 addr1 addr2 eqr1 eqr2 addre1 addre2 eqre1 eqre2 addnash1 addnash2 eqnash1 eqnash2 e10 e20 consist1a consist2a * addpu1 * addpu2 * eqpu1 * eqpu2 foc1ad foc1bd foc2ad foc2bd addv1a addv1b addv2a addv2b eqv1a eqv1b eqv2a eqv2b nash1 nash2 * eqpure1 * eqpure2 coreq1a coreq2a coreq3a coreq4a coreq5a coreq6a coreq7a coreq8a coreq9a coreq10a coreq11a coreq12a coreq13a ** coreq14a ** coreq15a coreq1b coreq2b coreq3b coreq4b coreq5b coreq6b coreq7b coreq8b coreq9b coreq10b coreq11b coreq12b coreq13b ** coreq14b ** coreq15b addaut1 addaut2 eqaut1 eqaut2 eqrho1a eqrho2a eqrho1b eqrho2b /; model GAMEAMED GME Unknown Demand / objectivd addpb1 addpb2 addpbb1 addpbb2 * addpc addpc1 addpc2 eqcoef1 eqcoef2 * eqcoef * eqbd * eqbd1 * eqbd2 adde1 adde2 eqde1 eqde2 demand1 demand2 ** delast1 ** delast2 * elast1 * elast2 * addel1 * addel2 * eqel1 * eqel2 addeya1 addeya2 eqeya1 eqeya2 consfreq1 consfreq2 * addey1 * addey2 addr1 addr2 eqr1 eqr2 * addre1 * addre2 * eqre1 * eqre2 addnash1 addnash2 eqnash1 eqnash2 * e10 * e20 * consist1a * consist2a * addpu1 * addpu2 * eqpu1 * eqpu2 foc1ad foc1bd foc2ad foc2bd addv1a addv1b addv2a addv2b eqv1a eqv1b eqv2a eqv2b nash1 nash2 * eqpure1 * eqpure2 /; model GDEMAND just estimating Unknown Demand coeff/ **Note: can correct for autocorr, But need to adjust objective accordingly objdemand * addpc addpc1 addpc2 eqcoef1 eqcoef2 adde1 adde2 eqde1 eqde2 addpue1 addpue2 eqpue1 eqpue2 demand1 demand2 delast1 delast2 ** coreq1a ** coreq2a ** coreq3a ** coreq4a ** coreq5a ** coreq6a ** coreq7a ** coreq8a ** coreq9a ** coreq10a ** coreq11a ** coreq12a ** coreq13a *** coreq14a *** coreq15a ** coreq1b ** coreq2b ** coreq3b ** coreq4b ** coreq5b ** coreq6b ** coreq7b ** coreq8b ** coreq9b ** coreq10b ** coreq11b ** coreq12b ** coreq13b *** coreq14b *** coreq15b ** addaut1 ** addaut2 ** eqaut1 ** eqaut2 ** eqrho1a ** eqrho2a ** eqrho1b ** eqrho2b /; model GAMEFREQ GME Frequency / objfreq addpb1 addpb2 addey1 addey2 addr1 addr2 eqr1 eqr2 addre1 addre2 e10 e20 consist1a consist2a /; model GAMEACE /objective1 addpb1 addpb2 addpbb1 addpbb2 addey1 addey2 e10 e20 consist1 consist2 /; **model ols least squares /obj1/; model olsd1 least squares /obj1/; model olsd2 least squares /obj2/; * conopt and minos are two non-linear optimization packages * minos is used by default. options limrow=0,limcol=0; *SET RTMAXJ 1.00E+35 options domlim=500; options seed=5; *options iterlim=0; option bratio=1; options iterlim=6000; options reslim=500000; options work=900000; * conopt optimizer option is below *options solprint=off, nlp=conopt; *options solprint=off, dnlp=conopt; options nlp=conopt; *GAMEAME.OPTFILE=1; OPTION NLP=MINOS5; options solprint=off; **Data generation cost=0; c1(i)=0; c2(i)=0; **numbers from Jeff's example a=450; a1(i)=a; a2(i)=a; b=2; d=1; dd=0.0198731; t1(i)=0; t2(i)=0; t3(i)=0; parameter t1a(i)/ 1 0 2 6 3 12 4 18 5 24 6 30 7 36 8 42 9 48 /; parameter t2a(i)/ 1 0 2 6 3 12 4 18 5 24 6 30 7 36 8 42 9 48 /; t2a(i)=t1a(i); c1(i) = t1a(i); c2(i) = t2a(i); *c2(i) = 0.312957*t2a(i); *a1(i) = a + t1a(i); *a2(i) = a + t2a(i); **Cost for simulation *cost1 = sum(i,c1(i)*palpha(i)); *cost2 = sum(i,c2(i)*palpha(i)); **Calculate cost per airline display c1; display c2; **Initialization pb1a.l(i,k)=1/KKK; pb2a.l(i,k)=1/KKK; pb1.l(k)=1/KKK; pb2.l(k)=1/KKK; YY1.l(i)=2*(a1(i)-(b*(a1(i)/(2*b + d)))-(d*(a1(i)/(2*b + d))))*(a1(i) /(2*b + d)); YY2.l(i)=1.2*(a2(i)-(b*(a2(i)/(2*b + d)))-(d*(a2(i)/(2*b + d))))*(a2(i)/(2*b + d)); **Data generation *solve GAMEDAT maximizing obj using nlp; alpha10(k)=pb1.l(k); alpha20(k)=pb2.l(k); options decimals=7; display pb1a.l; display pb2a.l; display pb1.l; display pb2.l; display alpha10; display alpha20; display YY1.l; display YY2.l; sumy1 = sum(i,YY1.l(i)); sumy2 = sum(i,YY2.l(i)); display sumy1; display sumy2; sum11=alpha10("1")+alpha10("2"); sum12=alpha10("1")+alpha10("2")+alpha10("3"); sum13=alpha10("1")+alpha10("2")+alpha10("3")+alpha10("4"); sum14=alpha10("1")+alpha10("2")+alpha10("3")+alpha10("4")+alpha10("5"); sum15=alpha10("1")+alpha10("2")+alpha10("3")+alpha10("4")+alpha10("5")+alpha10("6"); sum16=sum(k,alpha10(k))-sum11; sum17=sum(k,alpha10(k))-alpha10("1"); sum21=alpha20("1")+alpha20("2"); sum22=alpha20("1")+alpha20("2")+alpha20("3"); sum23=alpha20("1")+alpha20("2")+alpha20("3")+alpha20("4"); sum24=alpha20("1")+alpha20("2")+alpha20("3")+alpha20("4")+alpha20("5"); sum25=alpha20("1")+alpha20("2")+alpha20("3")+alpha20("4")+alpha20("5")+alpha20("6"); sum26=sum(k,alpha20(k))-sum21; sum27=sum(k,alpha20(k))-alpha20("1"); freq1(g,k)=0; freq2(g,k)=0; **Starting MC loops Loop(g, *Generate data c1(i)=0; c2(i)=0; **numbers from Jeff's example a=450; b=-2; d=1; dd=0.0198731; t1(i)=0; t2(i)=0; t3(i)=0; *t1(i) = uniform(0,1); *t2(i) = uniform(0,1); *display t1; *display t2; *display t1a; *display t2a; *display a1; *display a2; y1(i)=0; y2(i)=0; *y1(i) = sum(k,x(i,k)*beta10(k)); **The Bertrand Solution *y1(i) = a1(i)/(2*b + d); *y2(i) = a2(i)/(2*b + d); noise1(i) = a1(i)/(2*b + d); noise2(i) = a2(i)/(2*b + d); **The Cournot Solution *y1(i) = (a1(i)*b*(b - d)) / (((b*b) - (d*d))*(2*b - d)); *y2(i) = (a2(i)*b*(b - d)) / (((b*b) - (d*d))*(2*b - d)); q1(i,k) = 450 - 2*x(i,k) - 1*x(i,k); q2(i,k) = 450 - 1*x(i,k) - 2*x(i,k); **End data generation Model A case **Second stage of data generation (like QC) **Generate observed prices from optimal strategy td1(l) = 0; td1a(l) = 0; td2(l) = 0; td2a(l) = 0; ***Simulating observed prices op1(l) = 0; op2(l) = 0; *td1(l)=uniform(0,1); *td2(l)=uniform(0,1); *op1(l)$(td1(l) le alpha10("1")) = xx("1"); *op1(l)$((td1(l) le sum11) and (td1(l) gt alpha10("1"))) = xx("2"); *op1(l)$((td1(l) le sum12) and (td1(l) gt sum11)) = xx("3"); *op1(l)$((td1(l) le sum13) and (td1(l) gt sum12)) = xx("4"); *op1(l)$((td1(l) le sum14) and (td1(l) gt sum13)) = xx("5"); *op1(l)$((td1(l) le sum15) and (td1(l) gt sum14)) = xx("6"); *op1(l)$((td1(l) le sum16) and (td1(l) gt sum15)) = xx("7"); *op1(l)$((td1(l) le sum17) and (td1(l) gt sum16)) = xx("8"); *op1(l)$(td1(l) gt sum17) = xx("9"); *op2(l)$(td2(l) le alpha20("1")) = xx("1"); *op2(l)$((td2(l) le sum21) and (td2(l) gt alpha20("1"))) = xx("2"); *op2(l)$((td2(l) le sum22) and (td2(l) gt sum21)) = xx("3"); *op2(l)$((td2(l) le sum23) and (td2(l) gt sum22)) = xx("4"); *op2(l)$((td2(l) le sum24) and (td2(l) gt sum23)) = xx("5"); *op2(l)$((td2(l) le sum25) and (td2(l) gt sum24)) = xx("6"); *op2(l)$((td2(l) le sum26) and (td2(l) gt sum25)) = xx("7"); *op2(l)$((td2(l) le sum27) and (td2(l) gt sum26)) = xx("8"); *op2(l)$(td2(l) gt sum27) = xx("9"); **End simulating data **Reading Data from data file below op1a(l,z2) = airvar(l,z2,"2")* (airvar(l,z2,"3") / (airvar(l,z2,"3") + airvar(l,z2,"8"))) +airvar(l,z2,"7") *(airvar(l,z2,"8") / (airvar(l,z2,"3") + airvar(l,z2,"8"))); op2a(l,z2) = airvar(l,z2,"4")* (airvar(l,z2,"5") / (airvar(l,z2,"5") + airvar(l,z2,"10"))) +airvar(l,z2,"4") *(airvar(l,z2,"10") / (airvar(l,z2,"5") + airvar(l,z2,"10"))); **Arrange average prices by City op1(l) = op1a(l,"4"); op2(l) = op2a(l,"4"); avop1 = sum(l,op1(l))/LL; varop1=sum(l,(op1(l)-avop1)*(op1(l)-avop1)); avop2 = sum(l,op2(l))/LL; varop2=sum(l,(op2(l)-avop2)*(op2(l)-avop2)); sdop1=sqrt(varop1); sdop2=sqrt(varop2); op1sq(l) = op1(l)*op1(l); op2sq(l) = op2(l)*op2(l); op1op2(l) = op1(l)*op2(l); ***preparing data for demand estimation - Jeff *datajeff(z2,l,"1")=op1a(l,z2); *datajeff(z2,l,"2")=op2a(l,z2); *datajeff(z2,l,"3")=quant1a(l,z2); *datajeff(z2,l,"4")=quant2a(l,z2); *datajeff(z2,l,"5")=ue(l,z2); *display datajeff; **** **calculating the minimum price - quant ratio per firm ratio1(l) = op1(l)/quant1(l); ratio2(l) = op2(l)/quant2(l); minratio1 = min(ratio1("1"),ratio1("2"),ratio1("3"),ratio1("4"),ratio1("5"), ratio1("6"),ratio1("7"), ratio1("8"),ratio1("9"),ratio1("10"), ratio1("11"),ratio1("12"),ratio1("13"),ratio1("14"), ratio1("15")); minratio2 = min(ratio2("1"),ratio2("2"),ratio2("3"),ratio2("4"),ratio2("5"), ratio2("6"),ratio2("7"), ratio2("8"),ratio2("9"),ratio2("10"), ratio2("11"),ratio2("12"),ratio2("13"),ratio2("14"), ratio2("15")); avratio1 = sum(l,ratio1(l))/LL; avratio2 = sum(l,ratio2(l))/LL; display ratio1; display ratio2; display minratio1; display minratio2; display avratio1; display avratio2; **Building data for OLS estimates xols1(l,o) = 0; xols1(l,"1") = 1; xols1(l,"2") = op1(l); xols1(l,"3") = op2(l); xols1(l,"4") = cityue(l); *xols1(l,"5") = totq(l); xols2(l,o) = 0; xols2(l,"1") = 1; xols2(l,"2") = op2(l); xols2(l,"3") = op1(l); xols2(l,"4") = cityue(l); *xols2(l,"5") = totq(l); display xols1; display xols2; **Endogenously determined bounds **For dice-like consist case *alphae("1") = -3*sdop1; *alphae("2") = 0; *alphae("3") = 3*sdop1; display op1; display op2; display cityue; display quant1; display quant2; display totq; display avq1; display avq2; display varq1; display varq2; display sdq1; display sdq2; **Refdefinning the price support x xx(k)=0; x(i,k) = xx(k); xxmin = min(op1("1"),op1("2"),op1("3"),op1("4"),op1("5"),op1("6"),op1("7"), op1("8"),op1("9"),op1("10"),op1("11"),op1("12"),op1("13"),op1("14"), op1("15"), op2("1"),op2("2"),op2("3"),op2("4"),op2("5"),op2("6"),op2("7"), op2("8"),op1("9"),op1("10"),op1("11"),op1("12"),op1("13"),op1("14"), op2("15")); xxmax = max(op1("1"),op2("2"),op2("3"),op2("4"),op2("5"),op2("6"),op2("7"), op1("8"),op2("9"),op2("10"),op2("11"),op2("12"),op2("13"),op2("14"), op1("15"), op2("1"),op2("2"),op2("3"),op2("4"),op2("5"),op2("6"),op2("7"), op2("8"),op2("9"),op2("10"),op2("11"),op2("12"),op2("13"),op2("14"), op2("15")); xxstep = ((xxmax + xxmax*0.1) - (xxmin - xxmin*0.1)) / KKK; Loop(k, xx("1") = (xxmin - xxmin*0.1); xx(k) = xx(k-1) + xxstep; ); x(i,k) = xx(k); display xx; display xxmin; display xxmax; display xxstep; **Rounding xxmax = round(xxmax+xxmax*0.1); xxmin = round(xxmin-xxmin*0.1); xxstep = (xxmax - xxmin)/KKK Loop(k, xx("1") = xxmin; xx(k) = xx(k-1) + xxstep; ); x(i,k) = xx(k); display xx; **End Rounding op1g(g)=sum(l,op1(l))/LL; op2g(g)=sum(l,op2(l))/LL; **calculating frequencies (i.e., ML solution) per sample *Loop(l, *f1(g,l,"1")$(op1(l)=xx("1"))=1; *f1(g,l,"2")$(op1(l)=xx("2"))=1; *f1(g,l,"3")$(op1(l)=xx("3"))=1; *f1(g,l,"4")$(op1(l)=xx("4"))=1; *f1(g,l,"5")$(op1(l)=xx("5"))=1; *f1(g,l,"6")$(op1(l)=xx("6"))=1; *f1(g,l,"7")$(op1(l)=xx("7"))=1; *f1(g,l,"8")$(op1(l)=xx("8"))=1; *f1(g,l,"9")$(op1(l)=xx("9"))=1; *f2(g,l,"1")$(op2(l)=xx("1"))=1; *f2(g,l,"2")$(op2(l)=xx("2"))=1; *f2(g,l,"3")$(op2(l)=xx("3"))=1; *f2(g,l,"4")$(op2(l)=xx("4"))=1; *f2(g,l,"5")$(op2(l)=xx("5"))=1; *f2(g,l,"6")$(op2(l)=xx("6"))=1; *f2(g,l,"7")$(op2(l)=xx("7"))=1; *f2(g,l,"8")$(op2(l)=xx("8"))=1; *f2(g,l,"9")$(op2(l)=xx("9"))=1; *); **Discretizing prices op1 and op2 Loop(l, Loop(k, f1(g,l,k)$((op1(l) le (xx(k)+(xxstep/2))) and (op1(l) gt (xx(k)-(xxstep/2))) )=1; f2(g,l,k)$((op2(l) le (xx(k)+(xxstep/2))) and (op2(l) gt (xx(k)-(xxstep/2))) )=1; ); ); freq1(g,k)=sum(l,f1(g,l,k))/LL; freq2(g,k)=sum(l,f2(g,l,k))/LL; **End Frequency calculation nk1(k)=freq1(g,k); nk2(k)=freq2(g,k); **Initialization for second stage theta1.l(o)=0; theta2.l(o)=0; pb1.up(k)=1; pb2.up(k)=1; pb1.l(k)=1/KKK; pb2.l(k)=1/KKK; pb1.lo(k)=0.0; pb2.lo(k)=0.0; pcoef.l(jb,j1)=1/JJ1; pcoef1.l(jb,j1)=1/JJ1; pcoef2.l(jb,j1)=1/JJ1; pcoef1.lo(jb,j1)=0.001; pcoef2.lo(jb,j1)=0.001; pelast1.l(l,h)=1/HH; pelast2.l(l,h)=1/HH; coeff.l(jb)=sum(j1,pcoef.l(jb,j1)*alphab(j1,jb)); coeff1.l(jb)=sum(j1,pcoef1.l(jb,j1)*alphab(j1,jb)); coeff2.l(jb)=sum(j1,pcoef2.l(jb,j1)*alphab(j1,jb)); pue1.l(j1)=1/JJ1; pue2.l(j1)=1/JJ1; ue1.l=0; ue2.l=0; prand1.l(k,h)=1/HH; prand2.l(k,h)=1/HH; prand1.lo(k,h)=0.001; prand2.lo(k,h)=0.001; prande1.l(k,h)=1/HH; prande2.l(k,h)=1/HH; pbeta1.l(k)=1/KKK; pbeta2.l(k)=1/KKK; pbeta1.lo(k)=0.001; pbeta2.lo(k)=0.001; pey1.l(l,h)=1/HH; pey2.l(l,h)=1/HH; pu1.l(h)=1/HH; pu2.l(h)=1/HH; pv1a.l(k,h)=1/HH; pv1b.l(k,h)=1/HH; pv2a.l(k,h)=1/HH; pv2b.l(k,h)=1/HH; v1a.l(k)=0; v1b.l(k)=0; v2a.l(k)=0; v2b.l(k)=0; ped1.l(l,h)=1/HH; ped2.l(l,h)=1/HH; pauto1.l(l,h)=1/HH; pauto2.l(l,h)=1/HH; ed1.l(l)=0; ed2.l(l)=0; vauto1.l(l)=0; vauto2.l(l)=0; rhohata.l=0; rhohata2.l=0; rhohata3.l=0; rhohatb.l=0; rhohatb2.l=0; rhohatb3.l=0; ey1.l(l)=0; ey2.l(l)=0; YY1a.l=0; YY2a.l=0; *YY1.l(i)=2*(a1(i)-(b*(a1(i)/(2*b + d)))-(d*(a1(i)/(2*b + d))))*(a1(i) /(2*b + d)); *YY2.l(i)=1.2*(a2(i)-(b*(a2(i)/(2*b + d)))-(d*(a2(i)/(2*b + d))))*(a2(i)/(2*b + d)); *ME case **Known Demand Coeff below *solve GAMEAME maximizing obj using nlp; **Just for recovering the UNKNOWN Demand Coeff *solve GDEMAND maximizing obj using nlp; **Initialization for second stage estimation **pb1.l(k)=1/KKK; **pb2.l(k)=1/KKK; **pelast1.l(l,h)=1/HH; **pelast2.l(l,h)=1/HH; **prand1.l(k,h)=1/HH; **prand2.l(k,h)=1/HH; **prande1.l(k,h)=1/HH; **prande2.l(k,h)=1/HH; **pbeta1.l(k)=1/KKK; **pbeta2.l(k)=1/KKK; **pey1.l(l,h)=1/HH; **pey2.l(l,h)=1/HH; **pu1.l(h)=1/HH; **pu2.l(h)=1/HH; **pv1a.l(k,h)=1/HH; **pv1b.l(k,h)=1/HH; **pv2a.l(k,h)=1/HH; **pv2b.l(k,h)=1/HH; **v1a.l(k)=0; **v1b.l(k)=0; **v2a.l(k)=0; **v2b.l(k)=0; **pauto1.l(l,h)=1/HH; **pauto2.l(l,h)=1/HH; **vauto1.l(l)=0; **vauto2.l(l)=0; **rhohata.l=0; **rhohata2.l=0; **rhohata3.l=0; **rhohatb.l=0; **rhohatb2.l=0; **rhohatb3.l=0; **ey1.l(l)=0; **ey2.l(l)=0; **YY1a.l=0; **YY2a.l=0; **General GME with UNKNOWN Demand Coeff solve GAMEAMED maximizing obj using nlp; **UNKNOWN Demand Coeff with Autocorr correction *solve GAMEDAUT maximizing obj using nlp; **Frequenciy - somple GME below *solve GAMEFREQ maximizing obj using nlp; **ME and GME case *solve FREQ maximizing obj using nlp; *solve GAMEAME maximizing obj using dnlp; *CE case *solve GAMEACE minimizing obj using nlp; *solve ols maximizing obj using nlp; **OLS demand below *solve olsd1 maximizing obj using nlp; *solve olsd2 maximizing obj using nlp; display theta1.l; display theta2.l; options decimals=7; display pb1.l; display pb2.l; display YY1a.l; display YY2a.l; display coeff.l; display coeff1.l; display coeff2.l; display ue1.l; display ue2.l; display erand1.l; display erand2.l; display ed1.l; display ed2.l; display vauto1.l; display vauto2.l; display rhohata.l; display rhohata2.l; display rhohata3.l; display rhohatb.l; display rhohatb2.l; display rhohatb3.l; display ey1.l; display ey2.l; display v1a.l; display v1b.l; display v2a.l; display v2b.l; **calculates different optimal theoretical prices based on demand params **See Jeff's notes **Just for calculations coeff1.l("2")=-coeff1.l("2"); coeff2.l("2")=-coeff2.l("2"); **Experimenting *coeff1.l("1")=450; *coeff1.l("2")=2; *coeff1.l("3")=1; *coeff2.l("1")=500; *coeff2.l("2")=3; *coeff2.l("3")=1; *cost1=10; *cost2=10; ** pbert1= ((coeff1.l("1")+(coeff1.l("2")*cost1))*(2*coeff2.l("2")) + (coeff2.l("1")+(coeff2.l("2")*cost2))*coeff1.l("3")) / ((4*coeff1.l("2")*coeff2.l("2")) - (coeff1.l("3")*coeff2.l("3"))); pbert2= ((coeff2.l("1")+(coeff2.l("2")*cost2))*(2*coeff1.l("2")) + (coeff1.l("1")+(coeff1.l("2")*cost1))*coeff2.l("3")) / ((4*coeff2.l("2")*coeff1.l("2")) - (coeff2.l("3")*coeff1.l("3"))); pcollus1= ((coeff1.l("1")+(coeff1.l("2")*cost1) -coeff2.l("3")*cost2)* (2*coeff2.l("2")) + (coeff2.l("1")+(coeff2.l("2")*cost2)-coeff1.l("3")*cost1)* (coeff1.l("3")+coeff2.l("3"))) / ((4*coeff1.l("2")*coeff2.l("2")) - (coeff1.l("3")+coeff2.l("3"))*(coeff1.l("3")+coeff2.l("3"))); pcollus2= ((coeff2.l("1")+(coeff2.l("2")*cost2) -coeff1.l("3")*cost1)* (2*coeff1.l("2")) + (coeff1.l("1")+(coeff1.l("2")*cost1)-coeff2.l("3")*cost2)* (coeff2.l("3")+coeff1.l("3"))) / ((4*coeff2.l("2")*coeff1.l("2")) - (coeff2.l("3")+coeff1.l("3"))*(coeff2.l("3")+coeff1.l("3"))); delta1=coeff1.l("3")/(coeff1.l("2")*coeff2.l("2")-coeff1.l("3")*coeff2.l("3")); delta2=coeff2.l("3")/(coeff1.l("2")*coeff2.l("2")-coeff1.l("3")*coeff2.l("3")); bbeta1=coeff1.l("2")/(coeff1.l("2")*coeff2.l("2")-coeff1.l("3")*coeff2.l("3")); bbeta2=coeff2.l("2")/(coeff1.l("2")*coeff2.l("2")-coeff1.l("3")*coeff2.l("3")); qcour1 = ( (coeff1.l("1")*bbeta2 + coeff2.l("1")*delta1 - cost1)*(2*bbeta1) - (coeff2.l("1")*bbeta1 + coeff1.l("1")*delta2 - cost2)*(delta1))/ ((4*bbeta1*bbeta2) - (delta1*delta2)); qcour2 = ( (coeff2.l("1")*bbeta1 + coeff1.l("1")*delta2 - cost2)*(2*bbeta2) - (coeff1.l("1")*bbeta2 + coeff2.l("1")*delta1 - cost1)*(delta2))/ ((4*bbeta2*bbeta1) - (delta2*delta1)); pcour1 = (coeff1.l("1") - qcour1)*bbeta2 + (coeff2.l("1")-qcour2)*delta1; pcour2 = (coeff2.l("1") - qcour2)*bbeta1 + (coeff1.l("1")-qcour1)*delta2; *qcoura1 = ( (coeff1.l("1")*bbeta2 + coeff2.l("1")*delta1 - cost1)*(2*bbeta1) * - (coeff2.l("1")*bbeta1 + coeff1.l("1")*delta2 - cost2)*(delta1+delta2))/ * ((4*bbeta1*bbeta2) - ((delta1+delta2)*(delta1+delta2))); *qcoura2 = ( (coeff2.l("1")*bbeta1 + coeff1.l("1")*delta2 - cost2)*(2*bbeta2) * - (coeff1.l("1")*bbeta2 + coeff2.l("1")*delta1 - cost1)*(delta2+delta1))/ * ((4*bbeta2*bbeta1) - ((delta2+delta1)*(delta2+delta1))); *pcoura1 = coeff1.l("1") - coeff1.l("2")*qcoura1 + coeff1.l("3")*qcoura2; *pcoura2 = coeff2.l("1") - coeff2.l("2")*qcoura2 + coeff2.l("3")*qcoura1; conjv1(l) = (1/coeff1.l("3")) * (coeff1.l("2")-(quant1(l)/(op1(l)-cost1a(l)))); conjv2(l) = (1/coeff2.l("3")) * (coeff2.l("2")-(quant2(l)/(op2(l)-cost2a(l)))); avconjv1 = sum(l,conjv1(l))/LL; avconjv2 = sum(l,conjv2(l))/LL; conjl1(l) = (1/delta1) * (((op1(l)-cost1a(l))/quant1(l)) - bbeta2); conjl2(l) = (1/delta2) * (((op2(l)-cost2a(l))/quant2(l)) - bbeta1); avconjl1 = sum(l,conjl1(l))/LL; avconjl2 = sum(l,conjl2(l))/LL; display pbert1; display pbert2; display pcollus1; display pcollus2; display qcour1; display qcour2; display pcour1; display pcour2; display conjv1; display conjv2; display avconjv1; display avconjv2; display conjl1; display conjl2; display avconjl1; display avconjl2; *display qcoura1; *display qcoura2; *display pcoura1; *display pcoura2; coeff1.l("2")=-coeff1.l("2"); coeff2.l("2")=-coeff2.l("2"); owne1 = (avratio1)*coeff1.l("2"); owne2 = (avratio2)*coeff2.l("2"); cross1 = (avop2/avq1)*coeff1.l("3"); cross2 = (avop1/avq2)*coeff2.l("3"); display owne1; display owne2; display cross1; display cross2; **End calculating different scenarios **Single set of coeff *predq1(l) = coeff.l("1") - coeff.l("2")*op1(l) - coeff.l("3")*op2(l); *predq2(l) = coeff.l("1") - coeff.l("2")*op2(l) - coeff.l("3")*op1(l); **Multiple set of coeff predq1(l) = coeff1.l("1") + coeff1.l("2")*op1(l) + coeff1.l("3")*op2(l) + ue1.l*cityue(l); predq2(l) = coeff2.l("1") + coeff2.l("2")*op2(l) + coeff2.l("3")*op1(l) + ue2.l*cityue(l); ***The quadratic form *predq1(l) = coeff1.l("1") + coeff1.l("2")*op1(l) + coeff1.l("3")*op2(l) * + coeff1.l("4")*op1sq(l) + coeff1.l("5")*op2sq(l) + coeff1.l("6")*op1op2(l) * + ue1.l*cityue(l); *predq2(l) = coeff2.l("1") + coeff2.l("2")*op2(l) + coeff2.l("3")*op1(l) * + coeff2.l("4")*op2sq(l) + coeff2.l("5")*op1sq(l) + coeff2.l("6")*op1op2(l) * + ue2.l*cityue(l); **The OLS Demand results below *predq1(l)=sum(o,theta1.l(o)*xols1(l,o)); *predq2(l)=sum(o,theta2.l(o)*xols2(l,o)); *** dq1(l) = quant1(l) - predq1(l); dq2(l) = quant2(l) - predq2(l); display predq1; display predq2; display dq1; display dq2; *display pbeta1.l; *display pbeta2.l; *display ey1.l; *display ey2.l; pb10(g,k) = pb1.l(k); pb20(g,k) = pb2.l(k); pbet10(g,k) = pbeta1.l(k); pbet20(g,k) = pbeta2.l(k); EY1A(g) = YY1a.l; EY2A(g) = YY2a.l; ecoeff(g,jb) = coeff.l(jb); exp1(g) = sum(k,xx(k)*pb1.l(k)); exp2(g) = sum(k,xx(k)*pb2.l(k)); dist1(g,k) = pb1.l(k) - alpha10(k); dist2(g,k) = pb2.l(k) - alpha20(k); distf1(g,k) = freq1(g,k) - alpha10(k); distf2(g,k) = freq2(g,k) - alpha20(k); **distu(g,u) = gamma.l(u) - gamma0(u); **distth(g,k) = theta.l(k) - beta1t(k); **distr(g) = rhohat.l - rho; MSE1(g) = sum(k,dist1(g,k)*dist1(g,k)); MSE2(g) = sum(k,dist2(g,k)*dist2(g,k)); MSEf1(g) = sum(k,distf1(g,k)*distf1(g,k)); MSEf2(g) = sum(k,distf2(g,k)*distf2(g,k)); **MSEy(g) = sum(k,dist1(g,k)*dist1(g,k)); **MSEg(g) = sum(u,distu(g,u)*distu(g,u)); **MSEth(g) = sum(k,distth(g,k)*distth(g,k)); **distse(g,i) = sum(k,b1.l(k)*x(i,k)) - y(i); **SSE(g) = sum(i, distse(g,i) * distse(g,i)); entp1(g) = -sum(k,pb1.l(k)*log(1.e-3+pb1.l(k)))/(log(KKK)); entp2(g) = -sum(k,pb2.l(k)*log(1.e-3+pb2.l(k)))/(log(KKK)); ***entpi(g,i) = -sum(n,p.l(i,n)*log(1.e-4+p.l(i,n)))/log(NN); ***options decimals=7; ***entpe(g) = -sum(i,sum(n,sum(h,pe.l(i,n,h)*log(1.e-4+pe.l(i,n,h)))))/(log(HH)*II*NN); options decimals=7; **thetag(k,g)=theta.l(k); **recrho(g) = rhohat.l; ); **End Monte Carlo Loop **Calculating rho - corr between pred and correct q avpq1=sum(l,predq1(l))/LL; varpq1 = sum(l,(predq1(l) - avpq1)*(predq1(l) - avpq1))/LL; covq1 = sum(l,(quant1(l) - avq1)*(predq1(l) - avpq1))/LL; rhoq1 = covq1/(sqrt(varq1) * sqrt(varpq1)); avpq2=sum(l,predq2(l))/LL; varpq2 = sum(l,(predq2(l) - avpq2)*(predq2(l) - avpq2))/LL; covq2 = sum(l,(quant2(l) - avq2)*(predq2(l) - avpq2))/LL; rhoq2 = covq2/(sqrt(varq2) * sqrt(varpq2)); options decimals=7; display MSE1; display MSE2; display MSEf1; display MSEf2; **display MSEth; **display MSEg; **display SSE; **display eyg; display pb10; display pb20; display pbet10; display pbet20; display freq1; display freq2; display rhoq1; display rhoq2; avpb1(k) = sum(g,pb10(g,k))/GG; avpb2(k) = sum(g,pb20(g,k))/GG; avpbet1(k) = sum(g,pbet10(g,k))/GG; avpbet2(k) = sum(g,pbet20(g,k))/GG; avfreq1(k) = sum(g,freq1(g,k))/GG; avfreq2(k) = sum(g,freq2(g,k))/GG; varpb1(k) = sum(g,(pb10(g,k) - avpb1(k))*(pb10(g,k) - avpb1(k)))/GG; varpb2(k) = sum(g,(pb20(g,k) - avpb2(k))*(pb20(g,k) - avpb2(k)))/GG; varpbet1(k) = sum(g,(pbet10(g,k) - avpbet1(k))*(pbet10(g,k) - avpbet1(k)))/GG; varpbet2(k) = sum(g,(pbet20(g,k) - avpbet2(k))*(pbet20(g,k) - avpbet2(k)))/GG; totvarb1 = sum(k,varpb1(k)); totvarb2 = sum(k,varpb2(k)); totvarbb1 = sum(k,varpbet1(k)); totvarbb2 = sum(k,varpbet2(k)); *avexp1 = sum(k,xx(k)*avpb1(k)); *avexp2 = sum(k,xx(k)*avpb2(k)); avexp1 = sum(g,exp1(g))/GG; avexp2 = sum(g,exp2(g))/GG; display avpb1; display avpb2; display avpbet1; display avpbet2; display ecoeff; display avfreq1; display avfreq2; display exp1; display exp2; display avexp1; display avexp2; display YY1.l; display YY2.l; *sumy1 = sum(i,YY1.l(i)); *sumy2 = sum(i,YY2.l(i)); display sumy1; display sumy2; display totvarb1; display totvarb2; display totvarbb1; display totvarbb2; display varpb1; display varpb2; display varpbet1; display varpbet2; **avop1 = sum(g,op1g(g))/GG; **avop2 = sum(g,op2g(g))/GG; avmse1 = sum(g,MSE1(g))/GG; avmse2 = sum(g,MSE2(g))/GG; avmsef1 = sum(g,MSEf1(g))/GG; avmsef2 = sum(g,MSEf2(g))/GG; avEY1A = sum(g,EY1A(g))/GG; avEY2A = sum(g,EY2A(g))/GG; avcoeff(jb) = sum(g,ecoeff(g,jb))/GG; display avmse1; display avmse2; display avmsef1; display avmsef2; display avEY1A; display avEY2A; display avop1; display avop2; display avcoeff; **avmseg = sum(g,mseg(g))/GG; **avsse = sum(g,sse(g))/GG; **varmse = sum(g,(mse(g)-avmse)*(mse(g)-avmse)) / GG; aventp1 = sum(g,entp1(g))/GG; aventp2 = sum(g,entp2(g))/GG; **varentp = sum(g,(entp(g)-aventp)*(entp(g)-aventp)) / GG; **aventpi(i) = sum(g,entpi(g,i))/GG; **varentpi(i) = sum(g,(entpi(g,i)-aventpi(i))*(entpi(g,i)-aventpi(i))) / GG; **aventpe = sum(g,entpe(g))/GG; **varentpe = sum(g,(entpe(g)-aventpe)*(entpe(g)-aventpe)) / GG; *display pey.l; *display pez.l; options decimals=7; **display ey1.l; **display ey2.l; *display eu.l; *Note: below is the entropy for each beta *ent(n,k) = -sum(j,pb.l(n,k,j)*log(1.e-7+pb.l(n,k,j)))/log(JJ); *options decimals=7; display aventp1; display aventp2; *entropy = sum(k,sum(j,pb.l(k,j)*log((1.e-7+pb.l(k,j))/1.e-7+qb(k,j)))); *entropy = -sum(n,sum(k,sum(j,pb.l(n,k,j)*log(1.e-7+pb.l(n,k,j))))); *options decimals=7; *display entropy; *display xdata;