$offsymxref offsymlist **Based on Airline.gms ** For Coke-Pepsi where firms set price and advertising **Feb 13, 1996 **Firm 1 Coca Cola **Firm 2 Pepsico set i index /1*9/ j index /1*3/ j1 index /1*3/ jb index /1*5/ k index /1*7/ ad index /1*5/ * k index /1*10/ * ad index /1*10/ h index /1*3/ w index /1*3/ wc index /1*4/ l index /1*76/ z2 index /1*12/ z3 index /1*5/ 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 (ad,a1); 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 rawdata(l,z2) temp1(l) temp2(l) data(l,z3) data for consistency constraints like QC for both data1(l,z3) data2(l,z3) alphab1(j,k) parameter space for RHS var correspond to y=1 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 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 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 exspected value of oefficients recbeta1(k,z3) recovered Lagrange multipliers (price) firm 1 recbeta2(k,z3) recovered Lagrange multipliers (price) firm 2 recad1(ad,z3) recovered Lagrange multipliers (ad) firm 1 recad2(ad,z3) recovered Lagrange multipliers (ad) firm 2 recparam1(k,ad,z3) recovered Lagrange multipliers 1 recparam2(k,ad,z3) recovered Lagrange multipliers 1 delta Weight factor for objective functional 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 frequency1(k,ad) frequency count of Coke frequency2(k,ad) frequency count of Pepsi 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 ADAD number of points in advertisement space LL number of observations xx1min xx2min xx1max xx2max xx1step xx2step 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 avratio2 average level of ratio2 avratio1 average level of ratio1 ommeg1(l) recmp1(l,k,ad) recovered strategies Coke ommeg2(l) recmp2(l,k,ad) recovered strategies Pepsi omeg1(l) recp1(l,k) psi1(l,k) recw1(l,k,h) entp1(g) entpi1(g,l) omeg2(l) recp2(l,k) psi2(l,k) recw2(l,k,h) entp2(g) entpi2(g,l) **Parameter definitions for Advertisement spaces avADCO average ad Coke varADCO avADPE average ad Pepsi varADPE sdADCO sdADPE ADCOsq(l) ADPEsq(l) ADCOADPE(l) ad1(ad) advertisement space 1 ad2(ad) advertisement space 2 xad1(l,ad) xad2(l,ad) ad1min min value advertisement 1 ad1max max value ad 1 ad2min min value advertisement 2 ad2max max value ad 2 ad1step ad2step ADCOg(g) ADPEg(g) fad1(g,l,ad) ad frequency 1 fad2(g,l,ad) ad frequency 2 freqad1(g,ad) freqad2(g,ad) nkad1(ad) frequency ad 1 nkad2(ad) frequency ad 2 yad1(l,ad) zero 1 matrix for moment conditions advertisement 1 yad2(l,ad) zero 1 matrix for moment conditions advertisement 2 ; JJB=3; JJ1=3; KKK=7; ADAD=5; LL=76; NN=3; JJ=3; II=9; GG=1; HH=3; delta=0.5; 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 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); **Data Description **There are 76 observations **QCO QPE PCO PPE ADCO ADPE DUM INC SUG LABOR RAAA RBAA **QCO = consumption volue of Coca-Cola **QPE = consumption volue of Pepsi-Cola **PCO Price Coke **PPE Price Pepsi **ADCO = square root of real advertising expenditures of Coca-Cola **ADPE = square root of real advertising expenditures of Pepsi-Cola **DUM = dummy variable = 1 for quarters 2 and 3 and 0 for others (warm **weather) **INC = read disposable income **SUG = real price of sugar **LABOR = real unit cost of albor in the nondurable manufacturing sector **RAAA = real bond yield: Moody's AAA corporate (Coke's rating) **RBAA = real bond yield: Moody's BAA corporate (Pepsi's rating) **Firm 1 = Coca Cola Company **Firm 2 = Pepsico, Inc. parameter QCO(l) QPE(l) PCO(l) PPE(l) ADCO(l) ADPE(l) sqADCO(l) square root of ADCO sqADPE(l) square root of ADPE DUM(l) INC(l) SUG(l) LABOR(l) RAAA(l) RBAA(l) const(l) ; table rawdata(l,z2) the coke pepsi data 1 2 3 4 5 6 1 18.89000 11.31800 11.82600 6.985800 6.626500 4.587600 2 24.91100 14.92500 11.84800 6.998500 6.684500 6.306900 3 27.56200 16.51300 11.75800 6.945700 6.286300 5.521300 4 20.43700 12.24400 11.67800 6.898500 7.173300 6.072200 5 19.75500 11.83200 12.46400 7.137200 2.393000 2.871000 6 26.05100 15.60300 12.32500 7.058000 4.592900 3.715600 7 28.82300 17.26400 12.22900 7.002900 3.047800 2.656600 8 21.37200 12.80100 12.34300 7.067900 3.165700 4.643800 9 21.50400 12.86100 12.21000 7.058400 6.407400 5.303000 10 28.35700 16.94600 12.50800 7.230500 7.454600 6.508800 11 31.37500 18.76500 12.63700 7.305300 6.138400 5.480400 12 23.26400 13.91400 12.77300 7.383400 6.201000 5.895000 13 22.01800 14.13700 12.87800 6.884000 5.480400 3.780800 14 29.03500 18.64200 12.74700 6.813600 6.687900 6.701400 15 32.12600 20.62700 12.58700 6.728200 6.518300 6.392900 16 23.82100 15.29400 12.43300 6.645800 5.904600 5.180900 17 23.15000 15.12500 12.74100 7.046800 5.417300 4.823100 18 30.52800 19.94500 12.65300 6.998000 6.339400 5.815700 19 33.77700 22.06800 12.54900 6.940600 6.011100 6.360200 20 25.04500 16.36300 12.64600 6.994300 5.921500 4.928500 21 24.48700 15.99700 12.80400 7.675500 5.895600 5.198400 22 32.29200 21.09600 12.93800 7.755800 6.984800 5.444600 23 35.72900 23.34100 12.90600 7.737100 7.185900 5.232200 24 26.49200 17.30700 12.83300 7.692800 6.702100 4.113100 25 24.28200 16.05100 12.86800 7.607400 5.297700 5.032100 26 32.02000 21.16600 13.42300 7.935600 6.492100 6.192900 27 35.42800 23.41900 14.16900 8.376600 7.003100 4.949200 28 26.27000 17.36500 14.44200 8.538100 5.505400 3.571500 29 24.07600 16.00900 14.67200 8.609000 3.690000 4.186500 30 31.74900 21.11200 14.39000 8.443700 5.865100 5.435700 31 35.12800 23.35900 14.06000 8.250300 6.610300 5.350000 32 26.04700 17.32000 14.75300 8.656800 5.772600 3.831000 33 22.48700 17.07900 14.89500 7.504000 4.018500 3.982300 34 29.65400 22.52300 15.58400 7.851000 6.541000 5.615100 35 32.81000 24.92000 16.77500 8.451100 7.226300 6.070500 36 24.32800 18.47800 17.79000 8.962700 5.408700 6.016900 37 24.40700 18.58200 10.88600 7.445500 5.405200 4.566700 38 32.18600 24.50400 12.96200 8.865600 6.405200 6.239500 39 35.61200 27.11200 13.38500 9.154500 5.668000 6.337100 40 26.40500 20.10300 12.89700 8.821000 5.570200 5.838600 41 25.21800 19.94000 14.25500 9.261300 6.486300 4.839000 42 33.25500 26.29500 14.00000 9.095800 7.777700 6.730600 43 36.79400 29.09300 13.62900 8.854300 6.635100 6.064600 44 27.28200 21.57200 13.37000 8.686500 5.559100 4.997100 45 25.82500 21.03000 14.04500 9.225100 5.937000 4.682400 46 34.05600 27.73300 13.67200 8.980000 7.383200 6.865800 47 37.68000 30.68500 13.70300 9.000400 8.368100 6.592800 48 27.93900 22.75200 13.77400 9.047400 5.606300 6.860000 49 26.96700 21.73000 14.13400 9.183900 6.282600 6.948000 50 35.56200 28.65600 13.98900 9.089500 6.747800 7.128400 51 39.34700 31.70500 14.02100 9.110400 6.348300 5.801000 52 29.17500 23.50900 13.79000 8.960500 5.036400 5.856200 53 27.60700 22.71800 13.23600 9.521400 5.011100 3.512700 54 36.40600 29.95800 12.99600 9.348400 6.372800 5.462400 55 40.28000 33.14700 12.61000 9.070700 6.517500 5.377100 56 29.86700 24.57800 12.46600 8.967500 4.811600 5.594800 57 27.89300 23.04700 11.72000 9.133900 6.731500 4.491200 58 36.78300 30.39200 11.61400 9.051200 6.341400 5.632500 59 40.69800 33.62700 11.36200 8.855400 5.884200 5.239500 60 30.17700 24.93400 11.40300 8.887400 4.341800 3.296900 61 27.47500 22.53200 11.98800 9.155100 4.633000 3.794500 62 36.23200 29.71400 11.81900 9.026400 6.224800 5.714200 63 40.08800 32.87600 11.64800 8.895500 5.686600 4.493000 64 29.72500 24.37700 11.67900 8.919600 5.469100 3.030200 65 28.38300 24.07600 11.82500 8.085000 4.137600 4.622100 66 37.42900 31.74900 11.72800 8.018200 5.956900 6.452400 67 41.41200 35.12800 11.60600 7.934700 7.382300 5.421900 68 30.70600 26.04700 11.58600 7.921300 6.896300 3.722100 69 28.19300 25.31000 12.67900 8.018700 6.537800 4.932700 70 37.17900 33.37700 12.56100 7.944300 8.483300 7.113900 71 41.13600 36.93000 12.38500 7.833200 5.505500 5.764600 72 30.50200 27.38300 12.31200 7.786600 4.081200 4.415600 73 30.03100 25.92800 12.50000 8.692500 4.048400 5.446700 74 39.60200 34.11300 12.67300 8.812900 5.253700 6.059600 75 43.81700 37.83000 12.42100 8.637500 5.724600 6.183400 76 32.49000 28.05100 12.29500 8.550100 3.363600 5.519600 + 7 8 9 10 11 12 1 0.000000 15.30500 0.9892600 0.6601600 1.711200 2.415200 2 1.000000 15.54700 0.9932400 0.6589400 1.886400 2.656400 3 1.000000 15.55100 0.9952300 0.6564900 0.9563800 1.743400 4 0.000000 15.65100 0.9877500 0.6531600 1.188100 1.971100 5 0.000000 15.66400 0.9869500 0.6477200 2.098600 2.774600 6 1.000000 15.84700 0.9835000 0.6489500 0.0051200 0.7051200 7 1.000000 16.17500 0.9539300 0.6477000 1.066500 1.919500 8 0.000000 16.30600 0.9536500 0.6506200 1.934800 2.841800 9 0.000000 16.38000 0.9666400 0.6496900 1.693200 2.556200 10 1.000000 16.66200 0.9611100 0.6439100 1.667300 2.503200 11 1.000000 16.86200 0.9524600 0.6383700 0.7597600 1.949800 12 0.000000 16.82100 0.9367600 0.6349100 5.161700 6.531800 13 0.000000 17.08100 0.9665300 0.6259400 4.145900 5.459800 14 1.000000 17.31900 0.9586100 0.6200300 3.050000 4.183000 15 1.000000 17.34200 0.9680300 0.6090200 3.522900 4.669900 16 0.000000 17.39600 0.9690300 0.6006500 4.985100 6.098100 17 0.000000 17.50900 1.016200 0.6030700 3.933000 4.930000 18 1.000000 17.67600 0.9735400 0.5998400 4.003000 4.950000 19 1.000000 18.01500 1.008700 0.5906200 3.630500 4.594600 20 0.000000 18.69400 0.9952700 0.5768300 3.592300 4.449300 21 0.000000 18.93200 0.9968900 0.5695400 1.424400 2.170400 22 1.000000 19.07600 1.041800 0.5558900 -1.684600 -0.8975500 23 1.000000 19.22200 1.080400 0.5446400 -1.531400 -0.6513900 24 0.000000 19.42100 1.109700 0.5523300 -2.219400 -1.433400 25 0.000000 19.07200 1.531100 0.5643600 -3.616500 -2.969500 26 1.000000 18.88300 2.135500 0.5653400 -3.441700 -2.741700 27 1.000000 18.98600 2.797200 0.5637100 -3.980300 -3.156300 28 0.000000 18.92400 4.219800 0.5668000 -2.961600 -1.407600 29 0.000000 18.73100 3.101300 0.5777100 1.242500 3.182500 30 1.000000 19.65700 1.867700 0.5642600 2.349800 4.106800 31 1.000000 19.35000 1.683900 0.5438900 0.1098400 1.779800 32 0.000000 19.53100 1.242900 0.5419900 2.271200 4.041200 33 0.000000 19.83100 1.286100 0.5529600 4.632500 6.332500 34 1.000000 19.92800 1.264800 0.5543700 3.410500 4.773500 35 1.000000 20.05900 0.9732400 0.5543900 1.925600 3.082600 36 0.000000 20.22200 0.8400500 0.5529300 3.688000 4.718000 37 0.000000 20.26900 0.8671600 0.5489000 0.7052200 1.778200 38 1.000000 20.49600 0.8577800 0.5467600 -0.8602800 0.1227200 39 1.000000 20.86900 0.7926900 0.5504600 2.065200 2.949200 40 0.000000 21.02800 0.7787400 0.5569300 3.666600 4.506600 41 0.000000 21.28200 0.9676400 0.5655200 1.361300 2.107300 42 1.000000 21.62700 0.9819000 0.5537700 -2.140400 -1.340400 43 1.000000 21.76400 0.9610900 0.5477500 -0.8840400 -0.1370400 44 0.000000 22.02000 0.9821700 0.5438300 0.6926700 1.452700 45 0.000000 22.16600 0.9405800 0.5458900 -1.200400 -0.3373500 46 1.000000 22.06600 0.9341400 0.5334000 -5.052000 -4.049000 47 1.000000 22.13700 0.9660800 0.5255500 -4.443500 -3.340500 48 0.000000 22.13700 1.016700 0.5228500 -1.745200 -0.4721800 49 0.000000 22.25600 1.281200 0.5137400 -4.440100 -3.103100 50 1.000000 21.85700 1.599200 0.5224500 -3.967100 -1.814100 51 1.000000 22.07200 1.764400 0.5208300 3.851600 5.441600 52 0.000000 22.38800 2.017600 0.5132700 1.826100 3.666100 53 0.000000 22.42900 1.396000 0.5074200 2.284900 4.367900 54 1.000000 22.35000 0.9438700 0.5011200 4.373800 6.160900 55 1.000000 22.62900 0.8879700 0.4944000 2.969100 4.525100 56 0.000000 22.53700 0.7994300 0.5019600 8.707000 10.77400 57 0.000000 22.45700 0.8523000 0.5010600 11.69200 13.71500 58 1.000000 22.60900 0.9241200 0.5078300 8.292300 10.56200 59 1.000000 22.63400 1.063500 0.4993200 5.872800 8.369800 60 0.000000 22.76100 1.007200 0.5057900 11.05400 13.56800 61 0.000000 22.88400 1.052900 0.5051200 12.11500 14.10500 62 1.000000 23.11100 1.084500 0.4991600 6.425900 8.105900 63 1.000000 23.35400 1.062200 0.4885200 7.403900 8.586900 64 0.000000 23.92700 1.034300 0.4915900 8.903900 10.10000 65 0.000000 24.46900 1.022500 0.4915100 7.856400 9.316400 66 1.000000 24.60300 1.017400 0.4882100 8.834800 10.32200 67 1.000000 24.81900 0.9990400 0.4825900 8.525800 10.24600 68 0.000000 24.93100 0.9724200 0.4841500 9.345100 10.63500 69 0.000000 24.95700 0.9341500 0.4864500 9.695300 10.83200 70 1.000000 25.50800 0.9389800 0.4816300 6.754400 8.144400 71 1.000000 25.24700 0.9140900 0.4808400 8.007600 9.447500 72 0.000000 25.40700 0.8306300 0.4814700 6.942900 8.342900 73 0.000000 25.81200 0.8796200 0.4821300 8.589300 10.02900 74 1.000000 26.25800 0.8903500 0.4830000 9.977100 11.24700 75 1.000000 26.05500 0.8917600 0.4816100 5.857200 7.210100 76 0.000000 25.95400 0.8972200 0.4815600 6.345200 7.762200 ; QCO(l) = rawdata(l,"1"); QPE(l) = rawdata(l,"2"); PCO(l) = rawdata(l,"3"); PPE(l) = rawdata(l,"4"); sqADCO(l) = rawdata(l,"5"); sqADPE(l) = rawdata(l,"6"); ADCO(l) = (sqADCO(l) * sqADCO(l)); ADPE(l) = (sqADPE(l) * sqADPE(l)); DUM(l) = rawdata(l,"7"); INC(l) = rawdata(l,"8"); SUG(l) = rawdata(l,"9"); LABOR(l) = rawdata(l,"10"); RAAA(l) = rawdata(l,"11"); RBAA(l) = rawdata(l,"12"); const(l) = 1; **Creating Exogenous vars for the moment relations QC **Firm 1 *data1(l,"1") = QCO(l); *data1(l,"2") = QPE(l); *data1(l,"3") = PPE(l); *data1(l,"4") = ADCO(l); *data1(l,"5") = ADPE(l); *data1(l,"6") = DUM(l); *data1(l,"7") = INC(l); *data1(l,"8") = SUG(l); *data1(l,"9") = LABOR(l); *data1(l,"10") = RAAA(l); **Firm 2 *data2(l,"1") = QCO(l); *data2(l,"2") = QPE(l); *data2(l,"3") = PCO(l); *data2(l,"4") = ADCO(l); *data2(l,"5") = ADPE(l); *data2(l,"6") = DUM(l); *data2(l,"7") = INC(l); *data2(l,"8") = SUG(l); *data2(l,"9") = LABOR(l); *data2(l,"10") = RBAA(l); **Creating DATA file for BOTH firms for moment consistency relations data(l,"1") = DUM(l); data(l,"2") = INC(l); data(l,"3") = SUG(l); data(l,"4") = LABOR(l); data(l,"5") = RAAA(l); **End of reading data **Arranging the quantity vars quant1(l) = QCO(l); quant2(l) = QPE(l); avq1 = sum(l,quant1(l))/LL; varq1=sum(l,(quant1(l)-avq1)*(quant1(l)-avq1)) / (LL-1); avq2 = sum(l,quant2(l))/LL; varq2=sum(l,(quant2(l)-avq2)*(quant2(l)-avq2)) / (LL-1); sdq1=sqrt(varq1); sdq2=sqrt(varq2); parameter xx1(k) price space coke xx2(k) price space pepsi x1(l,k) x2(l,k) ; xx1(k)=0; xx2(k)=0; **Note price supports are determined endogenously below x1(l,k) = xx1(k); x2(l,k) = xx2(k); 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(l,k) categories for firm 1 y2(l,k) categories for firm 2 yy1(l,k,ad) joint data space for ad and prices QC restrictions yy2(l,k,ad) joint data space for ad and prices QC restrictions sumyy1 sumyy2 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 **Note 1 over sqrt(76) is 0.1147079 1 -.115 2 0 3 .115 *1 0.0 *2 0 *3 0.0 /; parameter alphae1(h) param space for first category - normalization / 1 -1000 2 0 3 1000 /; parameter alphaee(k,h) matrix param space for Price errors - primal QC GME ; alphaee(k,h) = alphae(h); alphaee("1",h) = alphae1(h); ***Error paramm spaces for Ad equations parameter alphaad(h) param space for first category - normalization / **Note 1 over sqrt(76) is 0.1147079 1 -.115 2 0 3 .115 /; parameter alphaad1(h) param space for first category - normalization / 1 -1000 2 0 3 1000 /; parameter alphaade(ad,h) matrix param space for Ad errors - primal QC GME ; alphaade(ad,h) = alphaad(h); alphaade("1",h) = alphaad1(h); parameter supporte(k,ad,h) matrix param space for errors - primal QC GME ; supporte(k,ad,h) = alphae(h); supporte("1","1",h) = alphae1(h); **Endogenously determined bounds **See in MC loop below parameter supportv(h) param space for foc / *1 -100 *2 0.0 *3 100 1 -80 2 0.0 3 80 /; 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 alphaed1(h) param space for errors demand eqs ; parameter alphaed2(h) param space for errors demand eqs ; **Endogenously determined bounds alphaed1("1") = -3*sdq1; alphaed1("2") = 0; alphaed1("3") = 3*sdq1; alphaed2("1") = -3*sdq2; alphaed2("2") = 0; alphaed2("3") = 3*sdq2; parameter alphal(h) / 1 0 2 0 3 0 /; parameter alphaue(j1) / 1 0 2 0 3 0 /; **Definning error support for autocor alphava(h) = alphaed1(h); parameter alphap(h) param space for errors of random coeff - strategies / 1 -.01 2 0.0 3 .01 /; parameter alphaeu(h) param space for PURE-STRATEGY errors / 1 -.25 2 0.0 3 .25 /; parameter alphaec(h) param space for cost errors / 1 -3 2 0 3 3 /; parameter alphav(h) param space for FOC errors / 1 -100 2 0 3 100 /; parameter alphab(j1,jb) param space for demand coeff ; table alphab(j1,jb) 1 2 3 4 5 1 0 -30 0 0 -8 2 0 -15 15 15 0 3 0 0 30 30 8 ; *alphab(j1,jb) = 4*alphab(j1,jb); parameter zbeta(h,w) param space for demand coeff betta ; table zbeta(h,w) 1 2 3 *1 0 0 0 *2 200 100 100 *3 400 200 200 1 -200 -80 -80 2 0 0 0 3 200 80 80 ; parameter alphac(h,wc) param space for cost coeff ; table alphac(h,wc) 1 2 3 4 1 0 0 0 0 2 20 15 15 15 3 40 30 30 30 *1 0 0 0 *2 0 0 0 *3 0 0 0 ; 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 vq1a(l,k,ad) vq1b(l,k,ad) vq2a(l,k,ad) vq2b(l,k,ad) 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(l) expected profit for 1 in observation l YY2a(l) 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 ec1(l) error for cost1 ec2(l) error for cost2 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 lm1(k,z3) lagrange multipliers prices QC lm2(k,z3) lagrange multipliers prices QC lmad1(ad,z3) lagrange multipliers Ad QC lmad2(ad,z3) lagrange multipliers Ad QC lmm1(k,ad,z3) lagrange multipliers prices QC multidim case lmm2(k,ad,z3) lagrange multipliers prices QC multidim case e11(l,k) e12(l,k) ead1(l,ad) ead2(l,ad) er1(l,k,ad) errors moment conditions er2(l,k,ad) errors moment conditions beta10 demand params beta11 demand params beta12 demand params beta20 demand params beta21 demand params beta22 demand params coeffc1(wc) coeffc2(wc) cost1(l) cost firm 1 cost2(l) cost firm 2 betad1(w) demand param betad2(w) demand param ; 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 p1(l,k) QC probs for Coke p2(l,k) QC probs for Pepsi pe1(l,k,h) error probs Cola pe2(l,k,h) error probs Pepsico pad1(l,ad) QC probs for Coke advertisement pad2(l,ad) QC probs for Pepsi advertisement pade1(l,ad,h) error probs Ad Cola pade2(l,ad,h) error probs Ad Pepsi ppb1(l,k,ad) prob for Coke Pepsi game - COKE ppb2(l,k,ad) prob for Coke Pepsi game - PEPSI pqv1a(l,k,ad,h) error terms for FOC 1 pqv1b(l,k,ad,h) error terms for FOC 1 pqv2a(l,k,ad,h) error terms for FOC 2 pqv2b(l,k,ad,h) error terms for FOC 2 per1(l,k,ad,h) error probs Cola per2(l,k,ad,h) error probs Pepsi pcoefc1(wc,h) cost 1 pcoefc2(wc,h) cost 2 pec1(l,h) cost errors 1 pec2(l,h) cost errors 2 pbetad1(w,h) pbetad2(w,h) ; 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 objective1 CE objective function obj1 OLS objective function obj2 OLS objective function objdata objective for generating data objfreq objective for simple frequencu GME objqc objective for pure QC objqcgme objective for GME QC objqcgme1 objective for GME QC objdual dual objective QC objdual1 dual objective QC multidimentional case objgmenash objective for GME NASH objdemand objective for GME demand and cost estimation 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 addqce1(l,k) addqce2(l,k) 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) qfoc1a(l,k,ad) FOC Coke Pepsi game qfoc1b(l,k,ad) FOC Coke Pepsi game qfoc2a(l,k,ad) FOC Coke Pepsi game qfoc2b(l,k,ad) FOC Coke Pepsi game s1qfoc1a(k,ad) FOC Coke Pepsi game s1qfoc1b(k,ad) FOC Coke Pepsi game s1qfoc2a(k,ad) FOC Coke Pepsi game s1qfoc2b(k,ad) FOC Coke Pepsi game s2qfoc1a(k,ad) FOC Coke Pepsi game s2qfoc1b(k,ad) FOC Coke Pepsi game s2qfoc2a(k,ad) FOC Coke Pepsi game s2qfoc2b(k,ad) FOC Coke Pepsi game s3qfoc1a(k,ad) FOC Coke Pepsi game s3qfoc1b(k,ad) FOC Coke Pepsi game s3qfoc2a(k,ad) FOC Coke Pepsi game s3qfoc2b(k,ad) FOC Coke Pepsi game *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 addp1(l) addp2(l) normalize1(z3) normalize2(z3) normad1(z3) normad2(z3) e1k01(l,k) e1k01a(l,k) e1k02(l,k) e1k02a(l,k) mom1(k,ad,z3) consistency for firm 1 QC mom2(k,ad,z3) consistency for firm 2 QC consistq1(k,z3) consistency for firm 1 QC consistq2(k,z3) consistency for firm 2 QC eqcost1(l) cost eq firm 1 eqcost2(l) cost eq firm 2 addadp1(l) addadp2(l) addade1(l,ad) addade2(l,ad) e1ad01(l,ad) e1ad02(l,ad) consistad1(ad,z3) consistad2(ad,z3) eqprice1(l,k,ad) eqprice2(l,k,ad) eqad1(l,k,ad) eqad2(l,k,ad) eqer1(l,k,ad) eqer2(l,k,ad) addppb1(l) addppb2(l) adder1(l,k,ad) adder2(l,k,ad) normalizq1(z3) normalizq2(z3) eqlmm1(k,ad,z3) eqlmm2(k,ad,z3) eqppb1(l,k,ad) eqppb2(l,k,ad) **Demand equations eqdbet1(w) eqdbet2(w) eqcoef1(jb) eqcoef2(jb) addbet1(w) addbet2(w) addcoef1(jb) addcoef2(jb) **Cost equations addcoefc1(wc) addcoefc2(wc) eqcoefc1(wc) eqcoefc2(wc) addc1(l) addc2(l) eqdc1(l) eqdc2(l) **For errors FOC NASH-QC eqvq1a eqvq1b eqvq2a eqvq2b addvq1a addvq1b addvq2a addvq2b ; **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,alphaed1(h)*ped1(l,h)) =e= ed1(l); *eqde2(l).. sum(h,alphaed2(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 for 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)*xx1(k)) + ey1(l); consist2a(l).. op2(l) =e= sum(k,pb2(k)*xx2(k)) + ey2(l); **Consist freq case consfreq1(k).. pb1(k) =e= nk1(k) + eya1(k); consfreq2(k).. pb2(k) =e= nk2(k) + eya2(k); **Equations from QC code *adde(i,n).. sum(h,pe(i,n,h)) =e= 1; *e1k0(i,"1").. sum(h,alphae1(h)*pe(i,"1",h)) =e= e1(i,"1"); *e1k1(i,"2").. sum(h,alphae(h)*pe(i,"2",h)) =e= e1(i,"2"); *e1k2(i,"3").. sum(h,alphae(h)*pe(i,"3",h)) =e= e1(i,"3"); *consist(n,k).. sum(i,p(i,n)*x(i,k)) + sum(i,e1(i,n)*x(i,k)) * =e= sum(i,y(i,n)*x(i,k)); ***Note for e1 we give large bounds as a normalization addp1(l).. sum(k,p1(l,k)) =e= 1; addp2(l).. sum(k,p2(l,k)) =e= 1; addadp1(l).. sum(ad,pad1(l,ad)) =e= 1; addadp2(l).. sum(ad,pad2(l,ad)) =e= 1; addqce1(l,k).. sum(h,pe1(l,k,h)) =e= 1; addqce2(l,k).. sum(h,pe2(l,k,h)) =e= 1; addade1(l,ad).. sum(h,pade1(l,ad,h)) =e= 1; addade2(l,ad).. sum(h,pade2(l,ad,h)) =e= 1; e1k01(l,k).. sum(h,alphaee(k,h)*pe1(l,k,h)) =e= e11(l,k); e1ad01(l,ad).. sum(h,alphaade(ad,h)*pade1(l,ad,h)) =e= ead1(l,ad); e1k01a(l,"1").. sum(h,alphae1(h)*pe1(l,"1",h)) =e= e11(l,"1"); consistq1(k,z3).. sum(l,p1(l,k)*data(l,z3)) + sum(l,e11(l,k)*data(l,z3)) =e= sum(l,y1(l,k)*data(l,z3)); e1k02(l,k).. sum(h,alphaee(k,h)*pe2(l,k,h)) =e= e12(l,k); e1ad02(l,ad).. sum(h,alphaade(ad,h)*pade2(l,ad,h)) =e= ead2(l,ad); e1k02a(l,"1").. sum(h,alphae1(h)*pe2(l,"1",h)) =e= e12(l,"1"); consistq2(k,z3).. sum(l,p2(l,k)*data(l,z3)) + sum(l,e12(l,k)*data(l,z3)) =e= sum(l,y2(l,k)*data(l,z3)); consistad1(ad,z3).. sum(l,pad1(l,ad)*data(l,z3))+sum(l,ead1(l,ad)*data(l,z3)) =e= sum(l,yad1(l,ad)*data(l,z3)); consistad2(ad,z3).. sum(l,pad2(l,ad)*data(l,z3))+sum(l,ead2(l,ad)*data(l,z3)) =e= sum(l,yad2(l,ad)*data(l,z3)); mom1(k,ad,z3).. sum(l,ppb1(l,k,ad)*data(l,z3)) + sum(l,er1(l,k,ad)*data(l,z3)) =e= sum(l,yy1(l,k,ad)*data(l,z3)); mom2(k,ad,z3).. sum(l,ppb2(l,k,ad)*data(l,z3)) + sum(l,er2(l,k,ad)*data(l,z3)) =e= sum(l,yy2(l,k,ad)*data(l,z3)); **Forcing startegies to zero if category was not observed **?? *eqppb1(l,k,ad)$(sumyy1(k,ad) eq 0).. pbb1(l,k,ad) =e= 0; *eqppb2(l,k,ad)$(sumyy2(k,ad) eq 0).. pbb2(l,k,ad) =e= 0; ** eqer1(l,k,ad).. sum(h,supporte(k,ad,h)*per1(l,k,ad,h)) =e= er1(l,k,ad); *eqer1a(l).. sum(h,alphae1(h)*per1(l,"1","1",h)) =e= er1(l,"1","1"); eqer2(l,k,ad).. sum(h,supporte(k,ad,h)*per2(l,k,ad,h)) =e= er2(l,k,ad); addppb1(l).. sum(k,sum(ad,ppb1(l,k,ad))) =e= 1; addppb2(l).. sum(k,sum(ad,ppb2(l,k,ad))) =e= 1; adder1(l,k,ad).. sum(h,per1(l,k,ad,h)) =e= 1; adder2(l,k,ad).. sum(h,per2(l,k,ad,h)) =e= 1; ********* *Dual Objective With Noise for BOTH firms objdual.. obj =e= **Price space sum(l,sum(k,sum(z3,y1(l,k)*data(l,z3)*lm1(k,z3)))) + sum(l,log(sum(k,exp(-sum(z3,data(l,z3)*lm1(k,z3)))))) +sum(l,sum(k,log(sum(h,exp(-sum(z3,data(l,z3)*alphae(h)*lm1(k,z3))))))) + sum(l,sum(k,sum(z3,y2(l,k)*data(l,z3)*lm2(k,z3)))) + sum(l,log(sum(k,exp(-sum(z3,data(l,z3)*lm2(k,z3)))))) +sum(l,sum(k,log(sum(h,exp(-sum(z3,data(l,z3)*alphae(h)*lm2(k,z3))))))) **Advertisement space + sum(l,sum(ad,sum(z3,yad1(l,ad)*data(l,z3)*lmad1(ad,z3)))) + sum(l,log(sum(ad,exp(-sum(z3,data(l,z3)*lmad1(ad,z3)))))) + sum(l,sum(ad,log(sum(h,exp(-sum(z3,data(l,z3)*alphae(h)*lmad1(ad,z3))))))) + sum(l,sum(ad,sum(z3,yad2(l,ad)*data(l,z3)*lmad2(ad,z3)))) + sum(l,log(sum(ad,exp(-sum(z3,data(l,z3)*lmad2(ad,z3)))))) + sum(l,sum(ad,log(sum(h,exp(-sum(z3,data(l,z3)*alphae(h)*lmad2(ad,z3))))))) ; ********* *Dual Objective With Noise for BOTH firms Multidimentional case objdual1.. obj =e= sum(l,sum(k,sum(ad,sum(z3,yy1(l,k,ad)*data(l,z3)*lmm1(k,ad,z3))))) + sum(l,log(sum(k,sum(ad,exp(-sum(z3,data(l,z3)*lmm1(k,ad,z3))))))) + sum(l,sum(k,sum(ad,log(sum(h,exp(-sum(z3,data(l,z3)* alphae(h)*lmm1(k,ad,z3)))))))) + sum(l,sum(k,sum(ad,sum(z3,yy2(l,k,ad)*data(l,z3)*lmm2(k,ad,z3))))) + sum(l,log(sum(k,sum(ad,exp(-sum(z3,data(l,z3)*lmm2(k,ad,z3))))))) + sum(l,sum(k,sum(ad,log(sum(h,exp(-sum(z3,data(l,z3)* alphae(h)*lmm2(k,ad,z3)))))))) ; ********* *Dual Objective (PURE) *objdual.. obj =e= - sum(l,sum(k,sum(z2,y1(l,k)*data(l,z2)*lm(k,z2)))) * + sum(l,log(sum(k,exp(sum(z2,data(l,z2)*lm(k,z2)))))) *; ********* normalize1(z3).. lm1("1",z3) =e=0; normalize2(z3).. lm2("1",z3) =e=0; normad1(z3).. lmad1("1",z3) =e=0; normad2(z3).. lmad2("1",z3) =e=0; normalizq1(z3).. lmm1("1","1",z3) =e=0; normalizq2(z3).. lmm2("1","1",z3) =e=0; eqlmm1(k,ad,z3)$(sumyy1(k,ad) eq 0).. lmm1(k,ad,z3) =e= 0; eqlmm2(k,ad,z3)$(sumyy2(k,ad) eq 0).. lmm2(k,ad,z3) =e= 0; ********** *The ME objective for QC GME for BOTH firms objqcgme.. obj =e= ***Prices - sum(l,sum(k,p1(l,k)*log((p1(l,k)+1.e-8)))) - sum(l,sum(k,sum(h,pe1(l,k,h)*log((pe1(l,k,h)+1.e-8))))) - sum(l,sum(k,p2(l,k)*log((p2(l,k)+1.e-8)))) - sum(l,sum(k,sum(h,pe2(l,k,h)*log((pe2(l,k,h)+1.e-8))))) ***Advertisement - sum(l,sum(ad,pad1(l,ad)*log((pad1(l,ad)+1.e-8)))) - sum(l,sum(ad,sum(h,pade1(l,ad,h)*log((pade1(l,ad,h)+1.e-8))))) - sum(l,sum(ad,pad2(l,ad)*log((pad2(l,ad)+1.e-8)))) - sum(l,sum(ad,sum(h,pade2(l,ad,h)*log((pade2(l,ad,h)+1.e-8))))) ; ********** *The GME objective for multidimentional QC GME for BOTH firms objqcgme1.. obj =e= -sum(l,sum(k,sum(ad,ppb1(l,k,ad)*log((ppb1(l,k,ad)+1.e-8))))) -sum(l,sum(k,sum(ad,sum(h,per1(l,k,ad,h)*log((per1(l,k,ad,h)+1.e-8)))))) -sum(l,sum(k,sum(ad,ppb2(l,k,ad)*log((ppb2(l,k,ad)+1.e-8))))) -sum(l,sum(k,sum(ad,sum(h,per2(l,k,ad,h)*log((per2(l,k,ad,h)+1.e-8)))))) ; **End QC Equations *The GME-Nash objective for multidimentional QC GME for BOTH firms objgmenash.. obj =e= -sum(l,sum(k,sum(ad,ppb1(l,k,ad)*log((ppb1(l,k,ad)+1.e-8))))) -sum(l,sum(k,sum(ad,sum(h,per1(l,k,ad,h)*log((per1(l,k,ad,h)+1.e-8)))))) -sum(l,sum(k,sum(ad,ppb2(l,k,ad)*log((ppb2(l,k,ad)+1.e-8))))) -sum(l,sum(k,sum(ad,sum(h,per2(l,k,ad,h)*log((per2(l,k,ad,h)+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(wc,sum(h,pcoefc1(wc,h)*log((pcoefc1(wc,h)+1.e-8)))) - sum(wc,sum(h,pcoefc2(wc,h)*log((pcoefc2(wc,h)+1.e-8)))) - sum(w,sum(h,pbetad1(w,h)*log((pbetad1(w,h)+1.e-8)))) - sum(w,sum(h,pbetad2(w,h)*log((pbetad2(w,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(l,sum(h,pec1(l,h)*log((pec1(l,h)+1.e-8)))) * - sum(l,sum(h,pec2(l,h)*log((pec2(l,h)+1.e-8)))) * -sum(l,sum(k,sum(ad,sum(h,pqv1a(l,k,ad,h)*log((pqv1a(l,k,ad,h)+1.e-8)))))) -sum(l,sum(k,sum(ad,sum(h,pqv1b(l,k,ad,h)*log((pqv1b(l,k,ad,h)+1.e-8)))))) * -sum(l,sum(k,sum(ad,sum(h,pqv2a(l,k,ad,h)*log((pqv2a(l,k,ad,h)+1.e-8)))))) -sum(l,sum(k,sum(ad,sum(h,pqv2b(l,k,ad,h)*log((pqv2b(l,k,ad,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(wc,sum(h,pcoefc1(wc,h)*log((pcoefc1(wc,h)+1.e-8)))) - sum(wc,sum(h,pcoefc2(wc,h)*log((pcoefc2(wc,h)+1.e-8)))) - sum(w,sum(h,pbetad1(w,h)*log((pbetad1(w,h)+1.e-8)))) - sum(w,sum(h,pbetad2(w,h)*log((pbetad2(w,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(l,sum(h,pec1(l,h)*log((pec1(l,h)+1.e-8)))) - sum(l,sum(h,pec2(l,h)*log((pec2(l,h)+1.e-8)))) ; **Consistencies for estimating Demand params below demand1(l).. quant1(l) =e= betad1("1") + betad1("2")*DUM(l) +betad1("3")*INC(l) + coeff1("2")*op1(l) + coeff1("3")*op2(l) +coeff1("4")*sqADCO(l) + coeff1("5")*sqADPE(l) + ed1(l); demand2(l).. quant2(l) =e= betad2("1") + betad2("2")*DUM(l) +betad2("3")*INC(l) + coeff2("2")*op2(l) + coeff2("3")*op1(l) +coeff2("4")*sqADPE(l) + coeff2("5")*sqADCO(l) + ed2(l); eqdbet1(w).. sum(h,zbeta(h,w)*pbetad1(w,h)) =e= betad1(w); eqdbet2(w).. sum(h,zbeta(h,w)*pbetad2(w,h)) =e= betad2(w); 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); addbet1(w).. sum(h,pbetad1(w,h)) =e= 1; addbet2(w).. sum(h,pbetad2(w,h)) =e= 1; addcoef1(jb).. sum(j1,pcoef1(jb,j1)) =e= 1; addcoef2(jb).. sum(j1,pcoef2(jb,j1)) =e= 1; adde1(l).. sum(h,ped1(l,h)) =e= 1; adde2(l).. sum(h,ped2(l,h)) =e= 1; eqde1(l).. sum(h,alphaed1(h)*ped1(l,h)) =e= ed1(l); eqde2(l).. sum(h,alphaed2(h)*ped2(l,h)) =e= ed2(l); **Cost Equations eqcost1(l).. cost1(l)=e=coeffc1("1")*SUG(l)+coeffc1("2")*LABOR(l) +coeffc1("3")*RAAA(l) + ec1(l); eqcost2(l).. cost2(l)=e=coeffc2("1")*SUG(l)+coeffc2("2")*LABOR(l) +coeffc2("3")*RBAA(l) + ec2(l); addcoefc1(wc).. sum(h,pcoefc1(wc,h)) =e= 1; addcoefc2(wc).. sum(h,pcoefc2(wc,h)) =e= 1; eqcoefc1(wc).. sum(h,pcoefc1(wc,h)*alphac(h,wc)) =e= coeffc1(wc); eqcoefc2(wc).. sum(h,pcoefc2(wc,h)*alphac(h,wc)) =e= coeffc2(wc); addc1(l).. sum(h,pec1(l,h)) =e= 1; addc2(l).. sum(h,pec2(l,h)) =e= 1; eqdc1(l).. sum(h,alphaec(h)*pec1(l,h)) =e= ec1(l); eqdc2(l).. sum(h,alphaec(h)*pec2(l,h)) =e= ec2(l); **Elasticity requirements **Averages delast1.. avratio1*coeff1("2") =l= -1.6; delast2.. avratio2*coeff2("2") =l= -1.6; **Based on min ratio **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*xx1(k) +d*xx1(k1)) * ** (xx1(k)-cost)) - YY1a =l= v1a(k); **foc1b(k).. (sum(k1,pbeta2(k1)*(a + b*xx1(k) +d*xx1(k1)) * ** (xx1(k)-cost)) - YY1a) * (pb1(k) + ** erand1(k)) =e= v1b(k); ** **foc2a(k).. sum(k1,pbeta1(k1)*(a + b*xx2(k) +d*xx2(k1)) * ** (xx2(k)-cost)) - YY2a =l= v2a(k); **foc2b(k).. (sum(k1,pbeta1(k1)*(a + b*xx2(k) +d*xx2(k1)) * ** (xx2(k)-cost)) - YY2a) * (pb2(k) + ** erand2(k)) =e= v2b(k); ** **Betas are point estimates ***To fix after QC runs **foc1ad(k).. sum(k1,pbeta2(k1)*(coeff1("1") ** + coeff1("2")*xx1(k) +coeff1("3")*xx1(k1)) * ** (xx1(k)-cost1(l))) - YY1a =l= v1a(k); **foc1bd(k).. (sum(k1,pbeta2(k1)*(coeff1("1") ** + coeff1("2")*xx1(k) +coeff1("3")*xx1(k1)) * ** (xx1(k)-cost1(l))) - YY1a) * (pb1(k) + ** erand1(k)) =e= v1b(k); ** **foc2ad(k).. sum(k1,pbeta1(k1)*(coeff2("1") ** + coeff2("2")*xx2(k) +coeff2("3")*xx2(k1)) * ** (xx2(k)-cost2(l))) - YY2a =l= v2a(k); **foc2bd(k).. (sum(k1,pbeta1(k1)*(coeff2("1") ** + coeff2("2")*xx2(k) +coeff2("3")*xx2(k1)) * ** (xx2(k)-cost2(l))) - YY2a) * (pb2(k) + ** erand2(k)) =e= v2b(k); **Coke-Pepsi FOC conditions qfoc1a(l,k,ad).. (sum(k1,sum(a1,ppb2(l,k1,a1)* ( beta10 + beta11*DUM(l) + beta12*INC(l) + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * * (xx1(k)-cost1(l))))) - YY1a(l) =l= vq1a(l,k,ad); * (xx1(k)-cost1(l))))) - YY1a(l) =l= 0; (xx1(k)- (coeffc1("1")*const(l)+coeffc1("2")*SUG(l)+coeffc1("3")*LABOR(l) +coeffc1("4")*RAAA(l)) )))) - YY1a(l) =l= 0; qfoc1b(l,k,ad).. (sum(k1,sum(a1,ppb2(l,k1,a1)* ( beta10 + beta11*DUM(l) + beta12*INC(l) + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * (xx1(k)- (coeffc1("1")*const(l)+coeffc1("2")*SUG(l)+coeffc1("3")*LABOR(l) +coeffc1("4")*RAAA(l)) ))) - YY1a(l) ) * ppb1(l,k,ad) =e= vq1b(l,k,ad); ** (ppb1(l,k,ad) + erand1(l,k,ad)) =e= vq1b(l,k,ad); qfoc2a(l,k,ad).. (sum(k1,sum(a1,ppb1(l,k1,a1)* ( beta20 + beta21*DUM(l) + beta22*INC(l) + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2(l))))) - YY2a(l) =l= vq2a(l,k,ad); * (xx2(k)- cost2(l))))) - YY2a(l) =l= 0; (xx2(k)- (coeffc2("1")*const(l)+coeffc2("2")*SUG(l)+coeffc2("3")*LABOR(l) +coeffc2("4")*RBAA(l)) )))) - YY2a(l) =l= 0; qfoc2b(l,k,ad).. (sum(k1,sum(a1,ppb1(l,k1,a1)* ( beta20 + beta21*DUM(l) + beta22*INC(l) + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2(l)))) - YY2a(l)) * (xx2(k)-(coeffc2("1")*const(l)+coeffc2("2")*SUG(l)+coeffc2("3")*LABOR(l) +coeffc2("4")*RBAA(l)) ))) - YY2a(l)) * ppb2(l,k,ad) =e= vq2b(l,k,ad); ** (ppb2(l,k,ad) + erand2(l,k,ad)) =e= vq2b(l,k,ad); ***The simple three obs case **Coke-Pepsi FOC conditions s1qfoc1a(k,ad).. (sum(k1,sum(a1,ppb2("6",k1,a1)* ( beta10 + beta11*DUM("6") + beta12*INC("6") + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * * (xx1(k)-cost1("6"))))) - YY1a("6") =l= vq1a("6",k,ad); * (xx1(k)-cost1("6"))))) - YY1a("6") =l= 0; (xx1(k)- (coeffc1("1")*SUG("6")+coeffc1("2")*LABOR("6") +coeffc1("3")*RAAA("6")) )))) - YY1a("6") =l= 0; s1qfoc1b(k,ad).. (sum(k1,sum(a1,ppb2("6",k1,a1)* ( beta10 + beta11*DUM("6") + beta12*INC("6") + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * (xx1(k)- (coeffc1("1")*SUG("6")+coeffc1("2")*LABOR("6") +coeffc1("3")*RAAA("6")) ))) - YY1a("6") ) * ppb1("6",k,ad) =e= vq1b("6",k,ad); ** (ppb1("6",k,ad) + erand1("6",k,ad)) =e= vq1b("6",k,ad); s1qfoc2a(k,ad).. (sum(k1,sum(a1,ppb1("6",k1,a1)* ( beta20 + beta21*DUM("6") + beta22*INC("6") + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2("6"))))) - YY2a("6") =l= vq2a("6",k,ad); * (xx2(k)- cost2("6"))))) - YY2a("6") =l= 0; (xx2(k)- (coeffc2("1")*SUG("6")+coeffc2("2")*LABOR("6") +coeffc2("3")*RBAA("6")) )))) - YY2a("6") =l= 0; s1qfoc2b(k,ad).. (sum(k1,sum(a1,ppb1("6",k1,a1)* ( beta20 + beta21*DUM("6") + beta22*INC("6") + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2("6")))) - YY2a("6")) * (xx2(k)-(coeffc2("1")*SUG("6")+coeffc2("2")*LABOR("6") +coeffc2("3")*RBAA("6")) ))) - YY2a("6")) * ppb2("6",k,ad) =e= vq2b("6",k,ad); ** (ppb2("6",k,ad) + erand2("6",k,ad)) =e= vq2b("6",k,ad); ** s2qfoc1a(k,ad).. (sum(k1,sum(a1,ppb2("36",k1,a1)* ( beta10 + beta11*DUM("36") + beta12*INC("36") + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * * (xx1(k)-cost1("36"))))) - YY1a("36") =l= vq1a("36",k,ad); * (xx1(k)-cost1("36"))))) - YY1a("36") =l= 0; (xx1(k)- (coeffc1("1")*SUG("36")+coeffc1("2")*LABOR("36") +coeffc1("3")*RAAA("36")) )))) - YY1a("36") =l= 0; s2qfoc1b(k,ad).. (sum(k1,sum(a1,ppb2("36",k1,a1)* ( beta10 + beta11*DUM("36") + beta12*INC("36") + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * (xx1(k)- (coeffc1("1")*SUG("36")+coeffc1("2")*LABOR("36") +coeffc1("3")*RAAA("36")) ))) - YY1a("36") ) * ppb1("36",k,ad) =e= vq1b("36",k,ad); ** (ppb1("36",k,ad) + erand1("36",k,ad)) =e= vq1b("36",k,ad); s2qfoc2a(k,ad).. (sum(k1,sum(a1,ppb1("36",k1,a1)* ( beta20 + beta21*DUM("36") + beta22*INC("36") + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2("36"))))) - YY2a("36") =l= vq2a("36",k,ad); * (xx2(k)- cost2("36"))))) - YY2a("36") =l= 0; (xx2(k)- (coeffc2("1")*SUG("36")+coeffc2("2")*LABOR("36") +coeffc2("3")*RBAA("36")) )))) - YY2a("36") =l= 0; s2qfoc2b(k,ad).. (sum(k1,sum(a1,ppb1("36",k1,a1)* ( beta20 + beta21*DUM("36") + beta22*INC("36") + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2("36")))) - YY2a("36")) * (xx2(k)-(coeffc2("1")*SUG("36")+coeffc2("2")*LABOR("36") +coeffc2("3")*RBAA("36")) ))) - YY2a("36")) * ppb2("36",k,ad) =e= vq2b("36",k,ad); ** (ppb2("36",k,ad) + erand2("36",k,ad)) =e= vq2b("36",k,ad); s3qfoc1a(k,ad).. (sum(k1,sum(a1,ppb2("70",k1,a1)* ( beta10 + beta11*DUM("70") + beta12*INC("70") + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * * (xx1(k)-cost1("70"))))) - YY1a("70") =l= vq1a("70",k,ad); * (xx1(k)-cost1("70"))))) - YY1a("70") =l= 0; (xx1(k)- (coeffc1("1")*SUG("70")+coeffc1("2")*LABOR("70") +coeffc1("3")*RAAA("70")) )))) - YY1a("70") =l= 0; s3qfoc1b(k,ad).. (sum(k1,sum(a1,ppb2("70",k1,a1)* ( beta10 + beta11*DUM("70") + beta12*INC("70") + coeff1("2")*xx1(k) + coeff1("3")*xx2(k1) + coeff1("4")*sqrt(ad1(ad)) + coeff1("5")*sqrt(ad2(a1)) - ad1(ad)) * (xx1(k)- (coeffc1("1")*SUG("70")+coeffc1("2")*LABOR("70") +coeffc1("3")*RAAA("70")) ))) - YY1a("70") ) * ppb1("70",k,ad) =e= vq1b("70",k,ad); ** (ppb1("70",k,ad) + erand1("70",k,ad)) =e= vq1b("70",k,ad); s3qfoc2a(k,ad).. (sum(k1,sum(a1,ppb1("70",k1,a1)* ( beta20 + beta21*DUM("70") + beta22*INC("70") + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2("70"))))) - YY2a("70") =l= vq2a("70",k,ad); * (xx2(k)- cost2("70"))))) - YY2a("70") =l= 0; (xx2(k)- (coeffc2("1")*SUG("70")+coeffc2("2")*LABOR("70") +coeffc2("3")*RBAA("70")) )))) - YY2a("70") =l= 0; s3qfoc2b(k,ad).. (sum(k1,sum(a1,ppb1("70",k1,a1)* ( beta20 + beta21*DUM("70") + beta22*INC("70") + coeff2("2")*xx2(k) + coeff2("3")*xx1(k1) + coeff2("4")*sqrt(ad2(ad)) + coeff2("5")*sqrt(ad1(a1)) - ad2(ad)) * * (xx2(k)-cost2("70")))) - YY2a("70")) * (xx2(k)-(coeffc2("1")*SUG("70")+coeffc2("2")*LABOR("70") +coeffc2("3")*RBAA("70")) ))) - YY2a("70")) * ppb2("70",k,ad) =e= vq2b("70",k,ad); ** (ppb2("70",k,ad) + erand2("70",k,ad)) =e= vq2b("70",k,ad); ***End Simple Case ***Definitions and restrictions related to FOC eqvq1a(l,k,ad).. sum(h,supportv(h)*pqv1a(l,k,ad,h)) =e= vq1a(l,k,ad); eqvq1b(l,k,ad).. sum(h,supportv(h)*pqv1b(l,k,ad,h)) =e= vq1b(l,k,ad); eqvq2a(l,k,ad).. sum(h,supportv(h)*pqv2a(l,k,ad,h)) =e= vq2a(l,k,ad); eqvq2b(l,k,ad).. sum(h,supportv(h)*pqv2b(l,k,ad,h)) =e= vq1b(l,k,ad); addvq1a(l,k,ad).. sum(h,pqv1a(l,k,ad,h)) =e= 1; addvq1b(l,k,ad).. sum(h,pqv1b(l,k,ad,h)) =e= 1; addvq2a(l,k,ad).. sum(h,pqv2a(l,k,ad,h)) =e= 1; addvq2b(l,k,ad).. sum(h,pqv2b(l,k,ad,h)) =e= 1; ***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 QCGME GME QC primal multidimentional case/ objqcgme1 mom1 mom2 eqer1 eqer2 addppb1 addppb2 adder1 adder2 /; model NASH GME-MASH-QC primal multidimentional case/ objgmenash mom1 mom2 eqer1 eqer2 addppb1 addppb2 adder1 adder2 qfoc1a qfoc1b qfoc2a qfoc2b * s1qfoc1a * s1qfoc1b * s1qfoc2a * s1qfoc2b * s2qfoc1a * s2qfoc1b * s2qfoc2a * s2qfoc2b * s3qfoc1a * s3qfoc1b * s3qfoc2a * s3qfoc2b demand1 demand2 eqdbet1 eqdbet2 eqcoef1 eqcoef2 addbet1 addbet2 addcoef1 addcoef2 adde1 adde2 eqde1 eqde2 * eqcost1 * eqcost2 addcoefc1 addcoefc2 eqcoefc1 eqcoefc2 * addc1 * addc2 * eqdc1 * eqdc2 * eqvq1a eqvq1b * eqvq2a eqvq2b * addvq1a addvq1b * addvq2a addvq2b /; model DEMCOST GME Demand Cost estimation only/ objdemand demand1 demand2 eqdbet1 eqdbet2 eqcoef1 eqcoef2 addbet1 addbet2 addcoef1 addcoef2 adde1 adde2 eqde1 eqde2 eqcost1 eqcost2 addcoefc1 addcoefc2 eqcoefc1 eqcoefc2 addc1 addc2 eqdc1 eqdc2 /; model QCME pure QC case primal / objqcgme e1k01 e1k02 addp1 addp2 addqce1 addqce2 consistq1 consistq2 **Advertisement constraints below addadp1 addadp2 addade1 addade2 e1ad01 e1ad02 consistad1 consistad2 /; model DUALQCM Dual multidimentional GME QC / objdual1 normalizq1 normalizq2 eqlmm1 eqlmm2 /; model DUALQC Dual GME QC / objdual normalize1 normalize2 normad1 normad2 /; *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 ***TO FIX BELOW *** foc1ad *** foc1bd *** foc2ad *** foc2bd ***UP TO HERE 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=5000; options seed=5; *options iterlim=0; option bratio=1; options iterlim=90000; options reslim=470000; *options work=900000; * conopt optimizer option is below *options solprint=off, nlp=conopt; *options solprint=off, dnlp=conopt; options nlp=conopt; options solprint=off; *NASH.OPTFILE=1; OPTION NLP=MINOS5; **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, **Arrange average prices op1(l) = PCO(l); op2(l) = PPE(l); 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); **calculating the average price - quant ratio per firm ratio1(l) = op1(l)/quant1(l); ratio2(l) = op2(l)/quant2(l); avratio1 = sum(l,ratio1(l))/LL; avratio2 = sum(l,ratio2(l))/LL; **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 quant1; display quant2; *display totq; display avq1; display avq2; display varq1; display varq2; display sdq1; display sdq2; **Redefinning the price support x xx1(k)=0; xx2(k)=0; x1(l,k) = xx1(k); x2(l,k) = xx2(k); xx1min = 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"), op1("16"),op1("17"),op1("18"),op1("19"),op1("20"),op1("21"),op1("22"), op1("23"),op1("24"),op1("25"),op1("26"),op1("27"),op1("28"),op1("29"), op1("30"),op1("31"),op1("32"),op1("33"),op1("34"),op1("35"),op1("36"), op1("37"),op1("38"),op1("39"),op1("40"),op1("41"),op1("42"),op1("43"), op1("44"),op1("45"),op1("46"),op1("47"),op1("48"),op1("49"),op1("50"), op1("51"),op1("52"),op1("53"),op1("54"),op1("55"),op1("56"),op1("57"), op1("58"),op1("59"),op1("60"),op1("61"),op1("62"),op1("63"),op1("64"), op1("65"),op1("66"),op1("67"),op1("68"),op1("69"),op1("70"),op1("71"), op1("72"),op1("73"),op1("74"),op1("75"),op1("76")); xx1max = max(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"), op1("16"),op1("17"),op1("18"),op1("19"),op1("20"),op1("21"),op1("22"), op1("23"),op1("24"),op1("25"),op1("26"),op1("27"),op1("28"),op1("29"), op1("30"),op1("31"),op1("32"),op1("33"),op1("34"),op1("35"),op1("36"), op1("37"),op1("38"),op1("39"),op1("40"),op1("41"),op1("42"),op1("43"), op1("44"),op1("45"),op1("46"),op1("47"),op1("48"),op1("49"),op1("50"), op1("51"),op1("52"),op1("53"),op1("54"),op1("55"),op1("56"),op1("57"), op1("58"),op1("59"),op1("60"),op1("61"),op1("62"),op1("63"),op1("64"), op1("65"),op1("66"),op1("67"),op1("68"),op1("69"),op1("70"),op1("71"), op1("72"),op1("73"),op1("74"),op1("75"),op1("76")); xx2min = min(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"), op2("16"),op2("17"),op2("18"),op2("19"),op2("20"),op2("21"),op2("22"), op2("23"),op2("24"),op2("25"),op2("26"),op2("27"),op2("28"),op2("29"), op2("30"),op2("31"),op2("32"),op2("33"),op2("34"),op2("35"),op2("36"), op2("37"),op2("38"),op2("39"),op2("40"),op2("41"),op2("42"),op2("43"), op2("44"),op2("45"),op2("46"),op2("47"),op2("48"),op2("49"),op2("50"), op2("51"),op2("52"),op2("53"),op2("54"),op2("55"),op2("56"),op2("57"), op2("58"),op2("59"),op2("60"),op2("61"),op2("62"),op2("63"),op2("64"), op2("65"),op2("66"),op2("67"),op2("68"),op2("69"),op2("70"),op2("71"), op2("72"),op2("73"),op2("74"),op2("75"),op2("76")); xx2max = max(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"), op2("16"),op2("17"),op2("18"),op2("19"),op2("20"),op2("21"),op2("22"), op2("23"),op2("24"),op2("25"),op2("26"),op2("27"),op2("28"),op2("29"), op2("30"),op2("31"),op2("32"),op2("33"),op2("34"),op2("35"),op2("36"), op2("37"),op2("38"),op2("39"),op2("40"),op2("41"),op2("42"),op2("43"), op2("44"),op2("45"),op2("46"),op2("47"),op2("48"),op2("49"),op2("50"), op2("51"),op2("52"),op2("53"),op2("54"),op2("55"),op2("56"),op2("57"), op2("58"),op2("59"),op2("60"),op2("61"),op2("62"),op2("63"),op2("64"), op2("65"),op2("66"),op2("67"),op2("68"),op2("69"),op2("70"),op2("71"), op2("72"),op2("73"),op2("74"),op2("75"),op2("76")); **Firm 1 Coca Cola xx1step = (xx1max - xx1min) / (KKK-1); Loop(k, xx1("1") = xx1min; xx1(k) = xx1(k-1) + xx1step; ); x1(l,k) = xx1(k); display xx1; display xx1min; display xx1max; display xx1step; **Rounding **xx1max = round(xx1max); **xx1min = round(xx1min); **xx1step = round((xx1max - xx1min)/KKK) **Loop(k, ** xx1("1") = xx1min; ** xx1(k) = xx1(k-1) + xx1step; ** ); **x1(l,k) = xx1(k); **display xx1; **End Rounding ***Firm 2 Pepsico xx2step = (xx2max - xx2min) / (KKK-1); Loop(k, xx2("1") = xx2min; xx2(k) = xx2(k-1) + xx2step; ); x2(l,k) = xx2(k); display xx2; display xx2min; display xx2max; display xx2step; **Rounding Firm 2 **xx2max = round(xx2max); **xx2min = round(xx2min); **xx2step = round((xx2max - xx2min)/KKK); **Loop(k, ** xx2("1") = xx2min; ** xx2(k) = xx2(k-1) + xx2step; ** ); **x2(l,k) = xx2(k); **display xx2; **End Rounding Firm 2 op1g(g)=sum(l,op1(l))/LL; op2g(g)=sum(l,op2(l))/LL; **Creating the categorized prices **Firm 1 * *temp1(l)$(PCO(l) le xx1("1")) = 18; *temp1(l)$(PCO(l) gt xx1("1") and PCO(l) le xx1("2")) = 19; *temp1(l)$(PCO(l) gt xx1("2") and PCO(l) le xx1("3")) = 2; *temp1(l)$(PCO(l) gt xx1("3") and PCO(l) le xx1("4")) = 3; *temp1(l)$(PCO(l) gt xx1("4") and PCO(l) le xx1("5")) = 4; *temp1(l)$(PCO(l) gt xx1("5") and PCO(l) le xx1("6")) = 5; *temp1(l)$(PCO(l) gt xx1("6") and PCO(l) le xx1("7")) = 6; *temp1(l)$(PCO(l) gt xx1("7") and PCO(l) le xx1("8")) = 7; *temp1(l)$(PCO(l) gt xx1("8") and PCO(l) le xx1("9")) = 8; **temp1(l)$(PCO(l) gt xx1("9") and PCO(l) le xx1("10")) = 9; *temp1(l)$(PCO(l) gt xx1("9")) = 9; ***Firm 2 *temp2(l)=0; *temp2(l)$(PPE(l) le xx2("1")) = 18; *temp2(l)$(PPE(l) gt xx2("1") and PPE(l) le xx2("2")) = 19; *temp2(l)$(PPE(l) gt xx2("2") and PPE(l) le xx2("3")) = 2; *temp2(l)$(PPE(l) gt xx2("3") and PPE(l) le xx2("4")) = 3; *temp2(l)$(PPE(l) gt xx2("4") and PPE(l) le xx2("5")) = 4; *temp2(l)$(PPE(l) gt xx2("5") and PPE(l) le xx2("6")) = 5; *temp2(l)$(PPE(l) gt xx2("6") and PPE(l) le xx2("7")) = 6; *temp2(l)$(PPE(l) gt xx2("7") and PPE(l) le xx2("8")) = 7; *temp2(l)$(PPE(l) gt xx2("8") and PPE(l) le xx2("9")) = 8; **temp2(l)$(PPE(l) gt xx2("9") and PPE(l) le xx2("10")) = 9; *temp2(l)$(PPE(l) gt xx2("9")) = 9; * ***Converting the categiries or real prices into y1(l,k) with 0 1 values *y1(l,k) = 0; *Loop(l, *y1(l,k)=temp1(l); * ); *Loop(k, *y1(l,"1")$(y1(l,k) EQ 18)=1; *y1(l,"2")$(y1(l,k) EQ 19)=1; *y1(l,"3")$(y1(l,k) EQ 2)=1; *y1(l,"4")$(y1(l,k) EQ 3)=1; *y1(l,"5")$(y1(l,k) EQ 4)=1; *y1(l,"6")$(y1(l,k) EQ 5)=1; *y1(l,"7")$(y1(l,k) EQ 6)=1; *y1(l,"8")$(y1(l,k) EQ 7)=1; *y1(l,"9")$(y1(l,k) EQ 8)=1; *y1(l,"10")$(y1(l,k) EQ 9)=1; *y1(l,k)$(y1(l,k) NE 1)=0; * ); *display y1; ***Converting the categiries or real prices into y2(l,k) with 0 1 values *y2(l,k) = 0; *Loop(l, *y2(l,k)=temp2(l); * ); *Loop(k, *y2(l,"1")$(y2(l,k) EQ 18)=1; *y2(l,"2")$(y2(l,k) EQ 19)=1; *y2(l,"3")$(y2(l,k) EQ 2)=1; *y2(l,"4")$(y2(l,k) EQ 3)=1; *y2(l,"5")$(y2(l,k) EQ 4)=1; *y2(l,"6")$(y2(l,k) EQ 5)=1; *y2(l,"7")$(y2(l,k) EQ 6)=1; *y2(l,"8")$(y2(l,k) EQ 7)=1; *y2(l,"9")$(y2(l,k) EQ 8)=1; *y2(l,"10")$(y2(l,k) EQ 9)=1; *y2(l,k)$(y2(l,k) NE 1)=0; * ); *display y2; **** **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 (xx1(k)+(xx1step/2))) and (op1(l) gt (xx1(k)-(xx1step/2))) )=1; f2(g,l,k)$((op2(l) le (xx2(k)+(xx2step/2))) and (op2(l) gt (xx2(k)-(xx2step/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); y1(l,k)=0; y2(l,k)=0; Loop(l, Loop(k, y1(l,k)$((op1(l) le (xx1(k)+(xx1step/2))) and (op1(l) gt (xx1(k)-(xx1step/2))) )=1; y2(l,k)$((op2(l) le (xx2(k)+(xx2step/2))) and (op2(l) gt (xx2(k)-(xx2step/2))) )=1; ); ); display xx1; *display y1; display xx2; *display y2; **Arrange Advertisement space etc avADCO = sum(l,ADCO(l))/LL; varADCO=sum(l,(ADCO(l)-avADCO)*(ADCO(l)-avADCO)); avADPE = sum(l,ADPE(l))/LL; varADPE=sum(l,(ADPE(l)-avADPE)*(ADPE(l)-avADPE)); sdADCO=sqrt(varADCO); sdADPE=sqrt(varADPE); ADCOsq(l) = ADCO(l)*ADCO(l); ADPEsq(l) = ADPE(l)*ADPE(l); ADCOADPE(l) = ADCO(l)*ADPE(l); display ADCO; display ADPE; display varADCO; display varADPE; display sdADCO; display sdADPE; display avADCO; display avADPE; **Redefinning the Advertisement support ad1(ad)=0; ad2(ad)=0; xad1(l,ad) = ad1(ad); xad2(l,ad) = ad2(ad); ad1min = min(ADCO("1"),ADCO("2"),ADCO("3"),ADCO("4"),ADCO("5"),ADCO("6"),ADCO("7"), ADCO("8"),ADCO("9"),ADCO("10"),ADCO("11"),ADCO("12"),ADCO("13"),ADCO("14"),ADCO("15"), ADCO("16"),ADCO("17"),ADCO("18"),ADCO("19"),ADCO("20"),ADCO("21"),ADCO("22"), ADCO("23"),ADCO("24"),ADCO("25"),ADCO("26"),ADCO("27"),ADCO("28"),ADCO("29"), ADCO("30"),ADCO("31"),ADCO("32"),ADCO("33"),ADCO("34"),ADCO("35"),ADCO("36"), ADCO("37"),ADCO("38"),ADCO("39"),ADCO("40"),ADCO("41"),ADCO("42"),ADCO("43"), ADCO("44"),ADCO("45"),ADCO("46"),ADCO("47"),ADCO("48"),ADCO("49"),ADCO("50"), ADCO("51"),ADCO("52"),ADCO("53"),ADCO("54"),ADCO("55"),ADCO("56"),ADCO("57"), ADCO("58"),ADCO("59"),ADCO("60"),ADCO("61"),ADCO("62"),ADCO("63"),ADCO("64"), ADCO("65"),ADCO("66"),ADCO("67"),ADCO("68"),ADCO("69"),ADCO("70"),ADCO("71"), ADCO("72"),ADCO("73"),ADCO("74"),ADCO("75"),ADCO("76")); ad1max = max(ADCO("1"),ADCO("2"),ADCO("3"),ADCO("4"),ADCO("5"),ADCO("6"),ADCO("7"), ADCO("8"),ADCO("9"),ADCO("10"),ADCO("11"),ADCO("12"),ADCO("13"),ADCO("14"),ADCO("15"), ADCO("16"),ADCO("17"),ADCO("18"),ADCO("19"),ADCO("20"),ADCO("21"),ADCO("22"), ADCO("23"),ADCO("24"),ADCO("25"),ADCO("26"),ADCO("27"),ADCO("28"),ADCO("29"), ADCO("30"),ADCO("31"),ADCO("32"),ADCO("33"),ADCO("34"),ADCO("35"),ADCO("36"), ADCO("37"),ADCO("38"),ADCO("39"),ADCO("40"),ADCO("41"),ADCO("42"),ADCO("43"), ADCO("44"),ADCO("45"),ADCO("46"),ADCO("47"),ADCO("48"),ADCO("49"),ADCO("50"), ADCO("51"),ADCO("52"),ADCO("53"),ADCO("54"),ADCO("55"),ADCO("56"),ADCO("57"), ADCO("58"),ADCO("59"),ADCO("60"),ADCO("61"),ADCO("62"),ADCO("63"),ADCO("64"), ADCO("65"),ADCO("66"),ADCO("67"),ADCO("68"),ADCO("69"),ADCO("70"),ADCO("71"), ADCO("72"),ADCO("73"),ADCO("74"),ADCO("75"),ADCO("76")); ad2min = min(ADPE("1"),ADPE("2"),ADPE("3"),ADPE("4"),ADPE("5"),ADPE("6"),ADPE("7"), ADPE("8"),ADPE("9"),ADPE("10"),ADPE("11"),ADPE("12"),ADPE("13"),ADPE("14"),ADPE("15"), ADPE("16"),ADPE("17"),ADPE("18"),ADPE("19"),ADPE("20"),ADPE("21"),ADPE("22"), ADPE("23"),ADPE("24"),ADPE("25"),ADPE("26"),ADPE("27"),ADPE("28"),ADPE("29"), ADPE("30"),ADPE("31"),ADPE("32"),ADPE("33"),ADPE("34"),ADPE("35"),ADPE("36"), ADPE("37"),ADPE("38"),ADPE("39"),ADPE("40"),ADPE("41"),ADPE("42"),ADPE("43"), ADPE("44"),ADPE("45"),ADPE("46"),ADPE("47"),ADPE("48"),ADPE("49"),ADPE("50"), ADPE("51"),ADPE("52"),ADPE("53"),ADPE("54"),ADPE("55"),ADPE("56"),ADPE("57"), ADPE("58"),ADPE("59"),ADPE("60"),ADPE("61"),ADPE("62"),ADPE("63"),ADPE("64"), ADPE("65"),ADPE("66"),ADPE("67"),ADPE("68"),ADPE("69"),ADPE("70"),ADPE("71"), ADPE("72"),ADPE("73"),ADPE("74"),ADPE("75"),ADPE("76")); ad2max = max(ADPE("1"),ADPE("2"),ADPE("3"),ADPE("4"),ADPE("5"),ADPE("6"),ADPE("7"), ADPE("8"),ADPE("9"),ADPE("10"),ADPE("11"),ADPE("12"),ADPE("13"),ADPE("14"),ADPE("15"), ADPE("16"),ADPE("17"),ADPE("18"),ADPE("19"),ADPE("20"),ADPE("21"),ADPE("22"), ADPE("23"),ADPE("24"),ADPE("25"),ADPE("26"),ADPE("27"),ADPE("28"),ADPE("29"), ADPE("30"),ADPE("31"),ADPE("32"),ADPE("33"),ADPE("34"),ADPE("35"),ADPE("36"), ADPE("37"),ADPE("38"),ADPE("39"),ADPE("40"),ADPE("41"),ADPE("42"),ADPE("43"), ADPE("44"),ADPE("45"),ADPE("46"),ADPE("47"),ADPE("48"),ADPE("49"),ADPE("50"), ADPE("51"),ADPE("52"),ADPE("53"),ADPE("54"),ADPE("55"),ADPE("56"),ADPE("57"), ADPE("58"),ADPE("59"),ADPE("60"),ADPE("61"),ADPE("62"),ADPE("63"),ADPE("64"), ADPE("65"),ADPE("66"),ADPE("67"),ADPE("68"),ADPE("69"),ADPE("70"),ADPE("71"), ADPE("72"),ADPE("73"),ADPE("74"),ADPE("75"),ADPE("76")); **Firm 1 Coca Cola ad1step = (ad1max - ad1min) / (ADAD-1); Loop(ad, ad1("1") = ad1min; ad1(ad) = ad1(ad-1) + ad1step; ); xad1(l,ad) = ad1(ad); display ad1; display ad1min; display ad1max; display ad1step; **Rounding **ad1max = round(ad1max); **ad1min = round(ad1min); **ad1step = round((ad1max - ad1min)/KKK) **Loop(ad, ** ad1("1") = ad1min; ** ad1(ad) = ad1(ad-1) + ad1step; ** ); **xad1(l,ad) = ad1(ad); **display ad1; **End Rounding ***Firm 2 Pepsico ad2step = (ad2max - ad2min) / (ADAD-1); Loop(ad, ad2("1") = ad2min; ad2(ad) = ad2(ad-1) + ad2step; ); xad2(l,ad) = ad2(ad); display ad2; display ad2min; display ad2max; display ad2step; **Rounding Firm 2 **ad2max = round(ad2max); **ad2min = round(ad2min); **ad2step = round((ad2max - ad2min)/KKK); **Loop(ad, ** ad2("1") = ad2min; ** ad2(ad) = ad2(ad-1) + ad2step; ** ); **xad2(l,ad) = ad2(ad); **display ad2; **End Rounding Firm 2 ADCOg(g)=sum(l,ADCO(l))/LL; ADPEg(g)=sum(l,ADPE(l))/LL; **Discretizing prices ADCO and ADPE Loop(l, Loop(ad, fad1(g,l,ad)$((ADCO(l) le (ad1(ad)+(ad1step/2))) and (ADCO(l) gt (ad1(ad)-(ad1step/2))) )=1; fad2(g,l,ad)$((ADPE(l) le (ad2(ad)+(ad2step/2))) and (ADPE(l) gt (ad2(ad)-(ad2step/2))) )=1; ); ); freqad1(g,ad)=sum(l,fad1(g,l,ad))/LL; freqad2(g,ad)=sum(l,fad2(g,l,ad))/LL; **End Frequency calculation nkad1(ad)=freqad1(g,ad); nkad2(ad)=freqad2(g,ad); yad1(l,ad)=0; yad2(l,ad)=0; Loop(l, Loop(ad, yad1(l,ad)$((ADCO(l) le (ad1(ad)+(ad1step/2))) and (ADCO(l) gt (ad1(ad)-(ad1step/2))) )=1; yad2(l,ad)$((ADPE(l) le (ad2(ad)+(ad2step/2))) and (ADPE(l) gt (ad2(ad)-(ad2step/2))) )=1; ); ); display ad1; display yad1; display ad2; display yad2; display nkad1; display nkad2; ****Fixing the multidimentional case yy1(l,k,ad)=0; yy2(l,k,ad)=0; Loop(l, Loop(k, Loop(ad, yy1(l,k,ad)$((op1(l) le (xx1(k)+(xx1step/2))) and (op1(l) gt (xx1(k)-(xx1step/2))) and (ADCO(l) le (ad1(ad)+(ad1step/2))) and (ADCO(l) gt (ad1(ad)-(ad1step/2))) )=1; yy2(l,k,ad)$((op2(l) le (xx2(k)+(xx2step/2))) and (op2(l) gt (xx2(k)-(xx2step/2))) and (ADCO(l) le (ad2(ad)+(ad2step/2))) and (ADCO(l) gt (ad2(ad)-(ad2step/2))) )=1; ); ); ); **End Fixing sumyy1(k,ad) = sum(l,yy1(l,k,ad)); sumyy2(k,ad) = sum(l,yy2(l,k,ad)); display yy1; display sumyy1; display sumyy2; frequency1(k,ad) = sumyy1(k,ad)/LL; frequency2(k,ad) = sumyy2(k,ad)/LL; *display yy2; ***End advertisement space calculations **loop(ad, **yy1(l,k,ad) = y1(l,k); ** ); **loop(k, **yy1(l,k,ad) = yad1(l,ad); ** ); **loop(ad, **yy2(l,k,ad) = y2(l,k); ** ); **loop(k, **yy2(l,k,ad) = yad2(l,ad); ** ); ***display yy1; ***display yy2; **Initialization for second stage p1.l(l,k)=1/KKK; p2.l(l,k)=1/KKK; pe1.l(l,k,h)=1/HH; pe2.l(l,k,h)=1/HH; pad1.l(l,ad)=1/ADAD; pad2.l(l,ad)=1/ADAD; pade1.l(l,ad,h)=1/HH; pade2.l(l,ad,h)=1/HH; 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; ed1.l(l)=0; ed2.l(l)=0; ey1.l(l)=0; ey2.l(l)=0; YY1a.l(l)=0; YY2a.l(l)=0; lm1.l(k,z3)=0; *lm1.up(k,z3)=300; *lm1.lo(k,z3)=-300; lm2.l(k,z3)=0; *lm2.up(k,z3)=300; *lm2.lo(k,z3)=-300; lmad1.l(ad,z3)=0; lmad2.l(ad,z3)=0; lmm1.l(k,ad,z3)=0; lmm2.l(k,ad,z3)=0; ppb1.l(l,k,ad)=1/(KKK*ADAD); ppb2.l(l,k,ad)=1/(KKK*ADAD); per1.l(l,k,ad,h)=1/HH; per2.l(l,k,ad,h)=1/HH; pcoefc1.l(wc,h)=1/HH; pcoefc2.l(wc,h)=1/HH; pbetad1.l(w,h)=1/HH; pbetad2.l(w,h)=1/HH; ped1.l(l,h)=1/HH; ped2.l(l,h)=1/HH; pec1.l(l,h)=1/HH; pec2.l(l,h)=1/HH; pqv1a.l(l,k,ad,h)=1/HH; pqv1b.l(l,k,ad,h)=1/HH; pqv2a.l(l,k,ad,h)=1/HH; pqv2b.l(l,k,ad,h)=1/HH; ***QC GME Primal cases below *solve QCME maximizing obj using nlp; **Multidimentional QC below *solve QCGME maximizing obj using nlp; **Multidimentional NASH-QC below *solve NASH maximizing obj using nlp; **Demand and COST only *solve DEMCOST maximizing obj using nlp; ***DUAL QC *solve DUALQC minimizing obj using nlp; **Multidimentional QC below solve DUALQCM minimizing obj using nlp; ****Dual QC-GME MULTIDIMENTIONAL CASE recparam1(k,ad,z3) = lmm1.l(k,ad,z3); recparam2(k,ad,z3) = lmm2.l(k,ad,z3); display recparam1; display recparam2; ***Multidimentional Calculating recovered p and w for dual QC ommeg1(l) = sum(k,sum(ad,exp(-sum(z3,data(l,z3)*lmm1.l(k,ad,z3))))); recmp1(l,k,ad) = exp(-sum(z3,data(l,z3)*lmm1.l(k,ad,z3))) / ommeg1(l); ommeg2(l) = sum(k,sum(ad,exp(-sum(z3,data(l,z3)*lmm2.l(k,ad,z3))))); recmp2(l,k,ad) = exp(-sum(z3,data(l,z3)*lmm2.l(k,ad,z3))) / ommeg2(l); options decimals=7; display recmp1; display recmp2; *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; **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; **Primal QC **Initialization ppb1.l(l,k,ad)=recmp1(l,k,ad); ppb2.l(l,k,ad)=recmp2(l,k,ad); **Multidimentional NASH-QC below solve NASH maximizing obj using nlp; *recbeta1(k,z3) = consistq1.m(k,z3); *recbeta2(k,z3) = consistq2.m(k,z3); *recad1(ad,z3) = consistad1.m(ad,z3); *recad2(ad,z3) = consistad2.m(ad,z3); *display recbeta1; *display recbeta2; *display recad1; *display recad2; *display p1.l; *display p2.l; *display pad1.l; *display pad2.l; *recbeta1(k,z3) = mom1.m(k,ad,z3); *recbeta2(k,z3) = mom2.m(k,ad,z3); *recad1(ad,z3) = mom1.m(k,ad,z3); *recad2(ad,z3) = mom2.m(k,ad,z3); *display recbeta1; *display recbeta2; *display recad1; *display recad2; recparam1(k,ad,z3) = mom1.m(k,ad,z3); recparam2(k,ad,z3) = mom2.m(k,ad,z3); display recparam1; display recparam2; display betad1.l; display betad2.l; display coeff1.l; display coeff2.l; display coeffc1.l; display coeffc2.l; display frequency1; display frequency2; recmp1(l,k,ad)=ppb1.l(l,k,ad); recmp1(l,k,ad)$(ppb1.l(l,k,ad) eq 0) = 9; recmp2(l,k,ad)=ppb2.l(l,k,ad); recmp2(l,k,ad)$(ppb2.l(l,k,ad) eq 0) = 9; display recmp1; display recmp2; display ppb1.l; display ppb2.l; display ppb1.m; display ppb2.m; **Dual QC-GME *recbeta1(k,z3) = lm1.l(k,z3); *recbeta2(k,z3) = lm2.l(k,z3); *recad1(ad,z3) = lmad1.l(ad,z3); *recad2(ad,z3) = lmad2.l(ad,z3); *display recbeta1; *display recbeta2; *display recad1; *display recad2; ****Dual QC-GME MULTIDIMENTIONAL CASE **recparam1(k,ad,z3) = lmm1.l(k,ad,z3); **recparam2(k,ad,z3) = lmm2.l(k,ad,z3); **display recparam1; **display recparam2; ***Multidimentional Calculating recovered p and w for dual QC ommeg1(l) = sum(k,sum(ad,exp(-sum(z3,data(l,z3)*lmm1.l(k,ad,z3))))); recmp1(l,k,ad) = exp(-sum(z3,data(l,z3)*lmm1.l(k,ad,z3))) / ommeg1(l); ommeg2(l) = sum(k,sum(ad,exp(-sum(z3,data(l,z3)*lmm2.l(k,ad,z3))))); recmp2(l,k,ad) = exp(-sum(z3,data(l,z3)*lmm2.l(k,ad,z3))) / ommeg2(l); options decimals=7; **display recmp1; **display recmp2; ***Calculating recovered p and w for dual QC *omeg1(l) = sum(k,exp(-sum(z3,data(l,z3)*lm1.l(k,z3)))); *recp1(l,k) = exp(-sum(z3,data(l,z3)*lm1.l(k,z3))) / omeg1(l); *psi1(l,k) = sum(h,exp(-sum(z3,data(l,z3)*lm1.l(k,z3)*alphae(h)))); *recw1(l,k,h) = exp(-sum(z3,data(l,z3)*lm1.l(k,z3)*alphae(h))) / psi1(l,k); *entp1(g) = -sum(l,sum(k,recp1(l,k)*log(1.e-4+recp1(l,k))))/(log(NN)*LL); *entpi1(g,l) = -sum(k,psi1(l,k)*log(1.e-4+psi1(l,k)))/log(NN); *options decimals=7; *display recp1; *display recw1; *display entp1; *entpe(g) = -sum(i,sum(n,sum(h,recw(i,n,h)*log(1.e-4+recw(i,n,h)))))/(log(HH)*II*NN); *display entpe; omeg2(l) = sum(k,exp(-sum(z3,data(l,z3)*lm2.l(k,z3)))); recp2(l,k) = exp(-sum(z3,data(l,z3)*lm2.l(k,z3))) / omeg2(l); psi2(l,k) = sum(h,exp(-sum(z3,data(l,z3)*lm2.l(k,z3)*alphae(h)))); recw2(l,k,h) = exp(-sum(z3,data(l,z3)*lm2.l(k,z3)*alphae(h))) / psi2(l,k); entp2(g) = -sum(l,sum(k,recp2(l,k)*log(1.e-4+recp2(l,k))))/(log(NN)*LL); entpi2(g,l) = -sum(k,psi2(l,k)*log(1.e-4+psi2(l,k)))/log(NN); options decimals=7; display recp2; *display recw2; display entp2; **End Dual p and w calculations 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; **Just for calculations *******ADjust after final program runs ***coeff1.l("2")=-coeff1.l("2"); ***coeff2.l("2")=-coeff2.l("2"); ***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,xx1(k)*pb1.l(k)); exp2(g) = sum(k,xx2(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 **Primal case predq1(l) = 0; predq2(l) = 0; predq1(l) = betad1.l("1") + betad1.l("2")*DUM(l) +betad1.l("3")*INC(l) + coeff1.l("2")*op1(l) + coeff1.l("3")*op2(l) +coeff1.l("4")*sqADCO(l) + coeff1.l("5")*sqADPE(l); predq2(l) = betad2.l("1") + betad2.l("2")*DUM(l) +betad2.l("3")*INC(l) + coeff2.l("2")*op2(l) + coeff2.l("3")*op1(l) +coeff2.l("4")*sqADPE(l) + coeff2.l("5")*sqADCO(l); 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;