$TITLE: M4-3a.GMS: modeling health insurance * with moral hazzard, adverse selection modeled as a NLP * COPYRIGHT JAMES R. MARKUSEN AND DAVID WHITEHILL $ONTEXT MODELING DEMAND FOR HEALTH INSURANCE |---Sick |--Do not buy Insurance--choose effort --| | |---Healthy Income---| + Type | |---Sick |-- Buy Insurance --choose effort---| |---Healthy $OFFTEXT PARAMETERS TYPE risk type: probability of good health at effort = 0 RISKAV average riskiness at effort = 0 M0 income in the first time period MH income in the second time period when healthy MS income in the second time period when sick (before insurance) ACUF acutuarially fairness 1 = actuarily fair ACUF < 1 unfair BETA needed to make the consumption concave(diminishing returns) INS0, PNS0, ALPHA0, EFFORT0, PROFIT0 store results for single type INS1, PNS1, ALPHA1, EFFORT1, PROFIT1 store results for type 1 (safe) INS2, PNS2, ALPHA2, EFFORT2, PROFIT2 store results for type 2 (risky) PROFIT profit of the insurance firm selling to both types; ACUF=1.0; BETA = 0.5; M0 = 10; MH = 10; MS = 4; TYPE = 0.5; RISKAV = 1-TYPE; NONNEGATIVE VARIABLES INS insurance purchased PNS payoff from insurance when sick ALPHA probability of good health EFFORT effort spent to insure good health: diet exercise and such; VARIABLES U expected utility; EQUATIONS UTILITY the utility of having or not having insurance INSURANCE the amount of insurance puchased (INS) and the payoff (PNS) MORALHAZ relationship between effort and probability of being healthy; * the coefficient 0.06 is chosen so that effort is marginally non-optimal * in the benchmark with actuarily fair insurance UTILITY.. U =E= (M0-INS)**BETA + ALPHA*MH**BETA + (1-ALPHA)*(MS+PNS)**BETA - (0.06)*(EFFORT + EFFORT**2); INSURANCE.. INS*ACUF =E= PNS*RISKAV; MORALHAZ.. ALPHA =E= TYPE + 0.15*EFFORT; MODEL OPTIMIZE /UTILITY, INSURANCE, MORALHAZ/; U.L = 1; INS.L =2; PNS.L = 1; ALPHA.L = 0.5; EFFORT.L = 0; *solve first for single type TYPE = 0.5; SOLVE OPTIMIZE USING NLP MAXIMIZING U; INS0 = INS.L; PNS0 = PNS.L; ALPHA0 = ALPHA.L; EFFORT0 = EFFORT.L; PROFIT0 = INS0 - (1 - ALPHA0)*PNS0; DISPLAY INS0, PNS0, ALPHA0, EFFORT0, PROFIT0; *now assume two types, solve first for the safe type TYPE = 0.55; RISKAV = ((1-0.55)+(1-0.45))/2; SOLVE OPTIMIZE USING NLP MAXIMIZING U; INS1 = INS.L; PNS1 = PNS.L; ALPHA1 = ALPHA.L; EFFORT1 = EFFORT.L; PROFIT1 = INS1 - (1 - ALPHA1)*PNS1; DISPLAY INS1, PNS1, ALPHA1, EFFORT1, PROFIT1; *solve for the risky type TYPE = 0.45; SOLVE OPTIMIZE USING NLP MAXIMIZING U; INS2 = INS.L; PNS2 = PNS.L; ALPHA2 = ALPHA.L; EFFORT2 = EFFORT.L; PROFIT2 = INS2 - (1 - ALPHA2)*PNS2; DISPLAY INS0, PNS0, ALPHA0, EFFORT0, PROFIT0; DISPLAY INS1, PNS1, ALPHA1, EFFORT1, PROFIT1; DISPLAY INS2, PNS2, ALPHA2, EFFORT2, PROFIT2; PROFIT = PROFIT1 + PROFIT2; DISPLAY PROFIT; *$exit * generate some scenarios SETS I /I1*I8/; PARAMETERS RESULTS(I, *); TYPE = 0.5; RISKAV = 1-TYPE; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I1", "INS") = INS.L; RESULTS("I1", "ALPHA") = ALPHA.L; RESULTS("I1", "EFFORT") = EFFORT.L; RESULTS("I1", "ACUF") = ACUF; RESULTS("I1", "IS") = MS; RESULTS("I1", "BETA") = BETA; *Actuarially unfair added ACUF = 0.8; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I2", "INS") = INS.L; RESULTS("I2", "ALPHA") = ALPHA.L; RESULTS("I2", "EFFORT") = EFFORT.L; RESULTS("I2", "ACUF") = ACUF; RESULTS("I2", "IS") = MS; RESULTS("I2", "BETA") = BETA; *Loss from getting sick is higher ACUF = 1.0; MS = 2; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I3", "INS") = INS.L; RESULTS("I3", "ALPHA") = ALPHA.L; RESULTS("I3", "EFFORT") = EFFORT.L; RESULTS("I3", "ACUF") = ACUF; RESULTS("I3", "IS") = MS; RESULTS("I3", "BETA") = BETA; ACUF = 0.8; MS = 2; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I4", "INS") = INS.L; RESULTS("I4", "ALPHA") = ALPHA.L; RESULTS("I4", "EFFORT") = EFFORT.L; RESULTS("I4", "ACUF") = ACUF; RESULTS("I4", "IS") = MS; RESULTS("I4", "BETA") = BETA; *Risk aversion is higher, actuarily fair MS = 4; BETA = 0.4; ACUF = 1.0; INS.L = 2.5; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I5", "INS") = INS.L; RESULTS("I5", "ALPHA") = ALPHA.L; RESULTS("I5", "EFFORT") = EFFORT.L; RESULTS("I5", "ACUF") = ACUF; RESULTS("I5", "IS") = MS; RESULTS("I5", "BETA") = BETA; *Risk aversion higher, actuarily unfair MS = 4; BETA = 0.4; ACUF = 0.8; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I6", "INS") = INS.L; RESULTS("I6", "ALPHA") = ALPHA.L; RESULTS("I6", "EFFORT") = EFFORT.L; RESULTS("I6", "ACUF") = ACUF; RESULTS("I6", "IS") = MS; RESULTS("I6", "BETA") = BETA; *Risk aversion is higher, actuarily fair, lower MS MS = 2; BETA = 0.4; ACUF = 1.0; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I7", "INS") = INS.L; RESULTS("I7", "ALPHA") = ALPHA.L; RESULTS("I7", "EFFORT") = EFFORT.L; RESULTS("I7", "ACUF") = ACUF; RESULTS("I7", "IS") = MS; RESULTS("I7", "BETA") = BETA; *Risk aversion higher, actuarily unfair, lower MS MS = 2; BETA = 0.4; ACUF = 0.8; SOLVE OPTIMIZE USING NLP MAXIMIZING U; RESULTS("I8", "INS") = INS.L; RESULTS("I8", "ALPHA") = ALPHA.L; RESULTS("I8", "EFFORT") = EFFORT.L; RESULTS("I8", "ACUF") = ACUF; RESULTS("I8", "IS") = MS; RESULTS("I8", "BETA") = BETA; DISPLAY RESULTS;