# [R-SIG-Finance] Fwd: Fwd: Inequality constraints in GMM estimation?

spencerg spencer.graves at prodsyse.com
Wed Jul 22 18:40:40 CEST 2009

```      I haven't used "gmm", but if it will pass 'method = "L-BFGS-B"'
with "lower = 0", you might be able to transform your problem into that
form as follows:

Let m(q) = m q, where m = an n x p matrix, and q = a p x 1
vector.  If n = p, then let z = m q so q = solve(m, z), and parameterize
your function "g" in terms of z.

If n < p, first compute the qr decomposition of t(m)

m <- matrix(1:2, 1)
mq <- t(qr.Q(qr(t(m)), complete=TRUE))

Then let mc be an n x n matrix with the first n rows = m and the
last (p-n) rows being the last (p-n) rows of mq.  Then let z = mc q and
solve similar to the above.

If n > p, I suggest you start by solving the unconstrained
problem, then find out which constraints are violated, add the
constraints that seem to be violated the worst perhaps one at a time
iteratively until you have a solution.

Or you could read the code for "gmm" and try to modify it to use
"constrOptim".

Hope this helps.
Spencer Graves

David J. Moore, Ph.D. wrote:
> I need m(theta) > 0 where m() is a linear function of theta.  While the
> reparameterization is a creative workaround for a parameter constraint,I do
> not believe I can apply it here.  Other thoughts?
>
> David J. Moore, Ph.D.
> Visiting Assistant Professor of Finance
> The University of Memphis
>
>
> On Jul 18, 2009, at 2:04 PM, Liviu Andronic <landronimirc at gmail.com> wrote:
>
>  From: Eric Zivot <ezivot at u.washington.edu>
>
>> Date: Sat, Jul 18, 2009 at 8:08 PM
>> Subject: Re: [R-SIG-Finance] Inequality constraints in GMM estimation?
>> To: Liviu Andronic <landronimirc at gmail.com>
>>
>>
>> Not sure your inequality constraint makes sense. Do you want theta > 0
>> or m(theta) > 0
>>
>> Usually, inequality constraints are put on parameters. If you want to
>> constrain theta > 0 then just re-parameterize theta as theta =
>> exp(gamma) and optimize over gamma. You will need to use delta method
>> to get the correct std errors for theta.hat = exp(gamma.hat).
>>
>> ****************************************************************
>> *  Eric Zivot                                                  *
>> *  Professor and Gary Waterman Distinguished Scholar           *
>> *  Department of Economics                                     *
>> *  Adjunct Professor of Finance                                *
>> *  Adjunct Professor of Statistics
>> *  Box 353330                  email:  ezivot at u.washington.edu *
>> *  University of Washington    phone:  206-543-6715            *
>> *  Seattle, WA 98195-3330                                      *
>>                                                   *
>> *  www:  http://faculty.washington.edu/ezivot                  *
>> ****************************************************************
>>
>> On Sat, 18 Jul 2009, Liviu Andronic wrote:
>>
>>  Hello,
>>
>>> On Sat, Jul 18, 2009 at 4:58 AM, David J. Moore, Ph.D.<djmphd at gmail.com>
>>> wrote:
>>>
>>>
>>>> I have a relatively simple finance application of GMM. Given the moment
>>>> condition:
>>>> E[m*R]=0
>>>>
>>>> where m=m[theta]
>>>>
>>>> I would like to constrain m>0. Any ideas?
>>>>
>>>>  Check library(gmm).
>>>>
>>> Liviu
>>>
>>>
>>>
>>
>>
>>
>
> 	[[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Finance at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only.
> -- If you want to post, subscribe first.
>
>

```