$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 (higher number - safer type) 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; 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 puchases MORALHAZ relationship between effort and probability of being healthy; UTILITY.. U =E= (M0-INS)**BETA + ALPHA*MH**BETA + (1-ALPHA)*(MS+PNS)**BETA - 0.1*(0.3 + EFFORT)**2; INSURANCE.. PNS*0.5 =E= INS*ACUF; 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; 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; * generate some scenarios SETS I /I1*I7/; PARAMETERS RESULTS(I, *); 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.7; 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; *Risk aversion is higher MS = 4; BETA = 0.4; INS.L = 2.5; ACUF = 0.7; 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; *Homogeneity in income? M0 = 20; MH = 20; MS = 8; BETA = 0.5; ACUF = 1.0; 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; DISPLAY RESULTS;