# [R] Solving an equation in R (and using a loop)

leohearn leohearn at dal.ca
Fri Oct 16 01:05:38 CEST 2009

```Thank you both for your help.
I'll ask my advisor for help on the issue tomorrow as perhaps I've
made a specification error or I'm taking the wrong approach entirely. I'm a
master's student in economics; the equation is comprised of CARA utility
functions(CARA utility is when u(x) = 1-exp(-rx)), and the
r represents the corresponding individual's coefficient of risk aversion.

Perhaps I just have a selection bias since I am choosing
from observations that only have x1 and x2, when I have some observations
that
go all the way up to x20. (so the part of f which follows the negative sign
would be
(1/n)(sum(1-exp(-rx(i)). I am solving for r when that equation equals 0, so,
yes, I'm looking for the root. I'll try with a few more observations that
have
more xs.

cheers
Laura

leohearn wrote:
>
> Hi
> So, I have a dataset and I'm trying to solve for a parameter in an
> equation using the dataset. Before applying more sophisticated statistical
> techniques, I want to tell R to solve it out for each observation. I know
> I have to use a loop for it (and I have done that before, but am a bit
> rusty), but before I do that, I'm trying to get R to solve it for just one
> observation, to make sure that I have that part right before applying to
> the rest. However, when I do it, I get 0 for an answer, which is a valid
> answer, but a trivial one. What am I doing wrong? (tips for the loop would
> also be appreciated, but this is my main concern right now.)
>
> Here's my code:
> f<-function(r){1-exp(-r*b)-(1/2)*(1-exp(-r*x1)+1-exp(-r*x2))}
> uniroot(f,c(0,1))\$root
>
> r is the unknown. I've plugged in a couple numbers from my data for b, x1,
> and x2 such as:
> b=5500
> x1=0.01
> x2=10000
> and
> b=198000
> x1=10
> x2=500000
> and gotten 0 both times.
>