$TITLE: M4-3.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; POSITIVE 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; $EXIT 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") = IS; RESULTS("I1", "R") = R; *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") = IS; RESULTS("I2", "R") = R; *Loss from getting sick is lower ACUF = 1.0; IS = 6; 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") = IS; RESULTS("I3", "R") = R; *Loss from getting sick is higher IS = 2; INS.L = 2.5; 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") = IS; RESULTS("I4", "R") = R; *Value more consumption today. IS =4; R = .3; 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") = IS; RESULTS("I5", "R") = R; DISPLAY RESULTS; $EXIT