Re: What kind of math problem is this?
- To: mathgroup at smc.vnet.net
- Subject: [mg20950] Re: [mg20896] What kind of math problem is this?
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 1 Dec 1999 01:50:17 -0500 (EST)
- References: <199911200607.BAA04739@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Seth Chandler wrote: > > This may be a little off topic, but I was hoping someone here could help. > > Let r and f be real numbers between 0 and 1 inclusive. How does one > determine if there is a function u that satisfies this relation and, if so, > what the function is. > > InverseFunction[u][f u[x] + (1 - f)u[y]] == (1 - r)(f x + (1 - f)y) + r x > > For those interested in the origins of this math problem, it is as follows. > The "certainty equivalent wealth" associated with some lottery in which the > payoffs are x (the bad payoff) and y (the good payoff) is traditionally > thought to be equal to the inverse utility of the expected utility of the > lottery. That is, it is thought to be the amount which, if held with > certainty, would provide the same "utility" as the lottery. Sometimes, this > formulation of certainty equivalent wealth is a bit messy. > > Thus, others have proposed a simpler formulation that does not rely on > utility functions. Under this method, which game theorist Martin Shubik and > others have used, the certainty equivalent wealth of a lottery is set equal > to something between the worst case of the lottery and the expected value of > the lottery. The "where" in between is determined by a coefficient of risk > aversion (r). If r is zero, the lottery is valued at the expected value. If > r is one, the lottery is valued at the worst case. > > My question is whether there is any utility function that could emulate the > behavior of this simpler formulation. Unfortunately, I can't figure out what > branch of mathematics is relevant to the question, or, more importantly, I > supposed, how to solve it. If Mathematica could be used in finding the > answer, that would be great. > > Seth J. Chandler > Associate Professor of Law > University of Houston Law Center The answer depends to some extent on what exactly you are willing to use. Before going into more detail, I'll reformulate your problem a bit. You require a function u[x], invertible on some domain of interest, such that f*u[x] + (1 - f)*u[y] == u[(1 - r)*(f* x + (1 - f)*y) + r*x] By letting f+r-f*r == k, we may rewrite the rhs as u[k*x + (1-k)*y] The case where k==f is trivial (just take u[x]==x) and it arises when either r==0 or f==1. We'll assume neither of these occurs. One can show there is no differentiable function u[x] that satisfies this functional equation. To prove this, assume u is differentiable at x and chose y = x + dx/(1-k). We then have u[x+dx] == f*u[x] + (1-f)*u[x+dx/(1-k)] Invoking differentiability at x we obtain u[x] + u'[x]*dx + o(dx) == f*u[x] + (1-f)*(u[x]+u'[x]*dx/(1-k)+o(dx/(1-k))) where in both places o(...) vanishes faster than dx (think of dx as small, i.e. we take a limit as it goes to zero). Rewriting the rhs we have u[x] + (1-f)/(1-k)*u'[x]*dx + (1-f)/(1-k)*o(dx/(1-k)) As the small-o terms vanish faster than the linear terms, sufficiently close to x these cannot be equal because the linear terms in dx disagree. I have not successfully convinced myself whether or not there can be a nowhere differentiable function u[x] that does what you want. But already we realize there will be no useful computable u[x] (how many nowhere-differentiable functions can you compute?). That said, you might get a useful approximation. The method outlined below was suggested by Michael Trott. We simply assume a polynomial form for u[x] with undetermined coefficients, then minimize some functional over an interval of interest. Last we plug the resulting coefficients into our function, then see where the resulting function is monotonic. One catch is that having u[x] identically zero will minimize the functional but otherwise be useless. We prevent this by insisting that the linear term be 1. This is okay because if u[x] "works" then so do scalar multiples of it. We'll use a degree 5 polynomial. The function minimized is the integral of the square of the difference between lhs and rhs expressions. I use a particular pair of values for r and f, and try to find u[x] for the domain 0<=x<=2. n = 5; coeffs = Array[c, {n}]; u[x_] = Table[x^j, {j,0,n}] . Insert[coeffs,1,2]; ee = Expand[u[f*x+(1-f)*y] - k*u[x] + (1-k)*u[y]]; rul = {f->1/2, r->1/5}; ff = (ee /. k->f+r-f*r) /. rul; expr = Expand[ff^2]; gg = Map[Integrate[#, {x,0,2}, {y,0,2}]&, expr]; {min, vals} = FindMinimum[gg, Evaluate[Apply[Sequence, Transpose[{coeffs,Table[0,{n}]}]]], MaxIterations->1000, AccuracyGoal->30, WorkingPrecision->50, PrecisionGoal->30]; func[x] = u[x] /. vals; Plot[Evaluate[func[x]], {x,0,2}]; A problem with this approach is that u[x] is not monotonic for any great stretch. One way to correct for this is to use a constrained optimizer, with constraints that u[j+.1]>u[j] for j in the range of interest (rescale as appropriate for your preferred range). I used a package we have in development and obtained Out[16]= {0.142724, {c[1] -> -0.663381, c[2] -> -0.521863, c[3] -> 0.360023, c[4] -> -0.33924, c[5] -> 0.10758}} If you do func[x] = u[x] /. vals; Plot[Evaluate[func[x]], {x,0,2}]; you will find that this is indeed monotonic, hence invertible, on the range in question. This appears to be a tricky business, though. When I allow more coefficients it seems difficult for the optimization code to reach a suitable minimizer. Daniel Lichtblau Wolfram Research
- Follow-Ups:
- Re: Re: What kind of math problem is this?
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Re: What kind of math problem is this?