Re: Linear Regressions with non-negativity constraint

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Linear Regressions with non-negativity constraint

Aleksandrovic, Aljosa (Pfaeffikon)
Hi all,

I hope you are doing well?

I'm currently using lm() to estimate a linear multi-factor (5 factors without intercept) model as follows ...

factor.lm <- lm(y~x1+x2+x3+x4+x5-1, data = data.frame.rbind)

Using nnls(A,b) I estimated the same model, extended by a non-negativity constraint on the 5 independent factors. It works quite well but unfortunately nnls() only returns the x estimates. Is there a way to extract the Std.Errors, t-values, p-valuess and R^2 as well?

Thanks in advance and kind regards,
Aljosa



Aljosa Aleksandrovic, FRM, CAIA
Senior Quantitative Analyst - Convertibles
[hidden email]
Tel +41 55 417 76 03

Man Investments (CH) AG
Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland


-----Original Message-----
From: R-help [mailto:[hidden email]] On Behalf Of Aleksandrovic, Aljosa (Pfaeffikon)
Sent: Donnerstag, 28. April 2016 15:06
To: Gabor Grothendieck
Cc: [hidden email]
Subject: Re: [R] Linear Regressions with constraint coefficients

Thx a lot Gabor!

Aljosa Aleksandrovic, FRM, CAIA
Quantitative Analyst - Convertibles
[hidden email]
Tel +41 55 417 76 03

Man Investments (CH) AG
Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland


-----Original Message-----
From: Gabor Grothendieck [mailto:[hidden email]]
Sent: Donnerstag, 28. April 2016 14:48
To: Aleksandrovic, Aljosa (Pfaeffikon)
Cc: [hidden email]
Subject: Re: [R] Linear Regressions with constraint coefficients

The nls2 package can be used to get starting values.

On Thu, Apr 28, 2016 at 8:42 AM, Aleksandrovic, Aljosa (Pfaeffikon) <[hidden email]> wrote:

> Hi Gabor,
>
> Thanks a lot for your help!
>
> I tried to implement your nonlinear least squares solver on my data set. I was just wondering about the argument start. If I would like to force all my coefficients to be inside an interval, let’s say, between 0 and 1, what kind of starting values are normally recommended for the start argument (e.g. Using a 4 factor model with b1, b2, b3 and b4, I tried start = list(b1 = 0.5, b2 = 0.5, b3 = 0.5, b4 = 0.5))? I also tried other starting values ... Hence, the outputs are very sensitive to that start argument?
>
> Thanks a lot for your answer in advance!
>
> Kind regards,
> Aljosa
>
>
>
> Aljosa Aleksandrovic, FRM, CAIA
> Quantitative Analyst - Convertibles
> [hidden email]
> Tel +41 55 417 76 03
>
> Man Investments (CH) AG
> Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland
>
> -----Original Message-----
> From: Gabor Grothendieck [mailto:[hidden email]]
> Sent: Dienstag, 26. April 2016 17:59
> To: Aleksandrovic, Aljosa (Pfaeffikon)
> Cc: [hidden email]
> Subject: Re: [R] Linear Regressions with constraint coefficients
>
> This is a quadratic programming problem that you can solve using
> either a quadratic programming solver with constraints or a general
> nonlinear solver with constraints.  See
> https://cran.r-project.org/web/views/Optimization.html
> for more info on what is available.
>
> Here is an example using a nonlinear least squares solver and non-negative bound constraints. The constraint that the coefficients sum to 1 is implied by dividing them by their sum and then dividing the coefficients found by their sum at the end:
>
> # test data
> set.seed(123)
> n <- 1000
> X1 <- rnorm(n)
> X2 <- rnorm(n)
> X3 <- rnorm(n)
> Y <- .2 * X1 + .3 * X2 + .5 * X3 + rnorm(n)
>
> # fit
> library(nlmrt)
> fm <- nlxb(Y ~ (b1 * X1 + b2 * X2 + b3 * X3)/(b1 + b2 + b3),
>      data = list(Y = Y, X1 = X1, X2 = X2, X3 = X3),
>      lower = numeric(3),
>      start = list(b1 = 1, b2 = 2, b3 = 3))
>
> giving the following non-negative coefficients which sum to 1 that are reasonably close to the true values of 0.2, 0.3 and 0.5:
>
>> fm$coefficients / sum(fm$coefficients)
>      b1      b2      b3
> 0.18463 0.27887 0.53650
>
>
> On Tue, Apr 26, 2016 at 8:39 AM, Aleksandrovic, Aljosa (Pfaeffikon) <[hidden email]> wrote:
>> Hi all,
>>
>> I hope you are doing well?
>>
>> I’m currently using the lm() function from the package stats to fit linear multifactor regressions.
>>
>> Unfortunately, I didn’t yet find a way to fit linear multifactor regressions with constraint coefficients? I would like the slope coefficients to be all inside an interval, let’s say, between 0 and 1. Further, if possible, the slope coefficients should add up to 1.
>>
>> Is there an elegant and not too complicated way to do such a constraint regression estimation in R?
>>
>> I would very much appreciate if you could help me with my issue?
>>
>> Thanks a lot in advance and kind regards, Aljosa Aleksandrovic
>>
>>
>>
>> Aljosa Aleksandrovic, FRM, CAIA
>> Quantitative Analyst - Convertibles
>> [hidden email]
>> Tel +41 55 417 7603
>>
>> Man Investments (CH) AG
>> Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland
>>
>>
>> -----Original Message-----
>> From: Kevin E. Thorpe [mailto:[hidden email]]
>> Sent: Dienstag, 26. April 2016 14:35
>> To: Aleksandrovic, Aljosa (Pfaeffikon)
>> Subject: Re: Linear Regressions with constraint coefficients
>>
>> You need to send it to [hidden email] however.
>>
>> Kevin
>>
>> On 04/26/2016 08:32 AM, Aleksandrovic, Aljosa (Pfaeffikon) wrote:
>>> Ok, will do! Thx a lot!
>>>
>>> Please find below my request:
>>>
>>> Hi all,
>>>
>>> I hope you are doing well?
>>>
>>> I’m currently using the lm() function from the package stats to fit linear multifactor regressions.
>>>
>>> Unfortunately, I didn’t yet find a way to fit linear multifactor regressions with constraint coefficients? I would like the slope coefficients to be all inside an interval, let’s say, between 0 and 1. Further, if possible, the slope coefficients should add up to 1.
>>>
>>> Is there an elegant and not too complicated way to do such a constraint regression estimation in R?
>>>
>>> I would very much appreciate if you could help me with my issue?
>>>
>>> Thanks a lot in advance and kind regards, Aljosa Aleksandrovic
>>>
>>>
>>>
>>> Aljosa Aleksandrovic, FRM, CAIA
>>> Quantitative Analyst - Convertibles
>>> [hidden email]
>>> Tel +41 55 417 7603
>>>
>>> Man Investments (CH) AG
>>> Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland
>>>
>>>
>>> -----Original Message-----
>>> From: Kevin E. Thorpe [mailto:[hidden email]]
>>> Sent: Dienstag, 26. April 2016 14:28
>>> To: Aleksandrovic, Aljosa (Pfaeffikon); [hidden email]
>>> Subject: Re: Linear Regressions with constraint coefficients
>>>
>>> I believe I approved a message with such a subject. Perhaps there was another layer that subsequently rejected it after that. I didn't notice any unusual content. Try again, making sure you send the message in plain text only.
>>>
>>> Kevin
>>>
>>> On 04/26/2016 08:16 AM, Aleksandrovic, Aljosa (Pfaeffikon) wrote:
>>>> Do you know where I get help for my issue?
>>>>
>>>> Thanks in advance and kind regards, Aljosa
>>>>
>>>>
>>>> Aljosa Aleksandrovic, FRM, CAIA
>>>> Quantitative Analyst - Convertibles [hidden email]
>>>> Tel +41 55 417 7603
>>>>
>>>> Man Investments (CH) AG
>>>> Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland
>>>>
>>>> -----Original Message-----
>>>> From: R-help [mailto:[hidden email]] On Behalf Of
>>>> [hidden email]
>>>> Sent: Dienstag, 26. April 2016 14:10
>>>> To: Aleksandrovic, Aljosa (Pfaeffikon)
>>>> Subject: Linear Regressions with constraint coefficients
>>>>
>>>> The message's content type was not explicitly allowed
>>>>
>>
>>
>> --
>> Kevin E. Thorpe
>> Head of Biostatistics,  Applied Health Research Centre (AHRC) Li Ka
>> Shing Knowledge Institute of St. Michael's Hospital Assistant
>> Professor, Dalla Lana School of Public Health University of Toronto
>> email: [hidden email]  Tel: 416.864.5776  Fax: 416.864.3016
>>
>> This email has been sent by a member of the Man group (“Man”). Man’s parent company, Man Group plc, is registered in England and Wales (company number 08172396) at Riverbank House, 2 Swan  Lane, London, EC4R 3AD.
>> The contents of this email are for the named addressee(s) only. It
>> contains information which may be confidential and privileged. If you
>> are not the intended recipient, please notify the sender immediately,
>> destroy this email and any attachments and do not otherwise disclose
>> or use them. Email transmission is not a secure method of
>> communication and Man cannot accept responsibility for the
>> completeness or accuracy of this email or any attachments. Whilst Man
>> makes every effort to keep its network free from viruses, it does not
>> accept responsibility for any computer virus which might be
>> transferred by way of this email or any attachments. This email does
>> not constitute a request, offer, recommendation or solicitation of
>> any kind to buy, subscribe, sell or redeem any investment instruments
>> or to perform other such transactions of any kind. Man reserves the
>> right to monitor, record and retain all electronic and telephone
>> communications through its network in accordance with applicable laws
>> and regulations. --UwQe9f5k7pI3vplngP
>>
>> ______________________________________________
>> [hidden email] mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>
>
> --
> Statistics & Software Consulting
> GKX Group, GKX Associates Inc.
> tel: 1-877-GKX-GROUP
> email: ggrothendieck at gmail.com



--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com
______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Linear Regressions with non-negativity constraint

Aleksandrovic, Aljosa (Pfaeffikon)
Hi all,

I hope you are doing well?

I'm currently using lm() to estimate a linear multi-factor (5 factors without intercept) model as follows ...

factor.lm <- lm(y~x1+x2+x3+x4+x5-1, data = data.frame.rbind)

Using nnls(A,b) I estimated the same model, extended by a non-negativity constraint on the 5 independent factors. It works quite well but unfortunately nnls() only returns the x estimates. Is there a way to extract the Std.Errors, t-values, p-valuess and R^2 as well?

Thanks in advance and kind regards,
Aljosa


Aljosa Aleksandrovic, FRM, CAIA
Senior Quantitative Analyst - Convertibles
[hidden email]
Tel +41 55 417 76 03

Man Investments (CH) AG
Huobstrasse 3 | 8808 Pfäffikon SZ | Switzerland


This email has been sent by a member of the Man group (“Man”). Man’s parent company, Man Group plc, is registered in England and Wales (company number 08172396) at Riverbank House, 2 Swan  Lane, London, EC4R 3AD.
The contents of this email are for the named addressee(s...{{dropped:15}}

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Reply | Threaded
Open this post in threaded view
|

Linear Regressions with non-negativity constraint

Ravi Varadhan-2
In reply to this post by Aleksandrovic, Aljosa (Pfaeffikon)
Hi,

Take a look at the package "ic.infer" by Ulrike Gromping.

https://www.jstatsoft.org/article/view/v033i10

Best,
Ravi

Ravi Varadhan, Ph.D. (Biostatistics), Ph.D. (Environmental Engg)
Associate Professor,  Department of Oncology
Division of Biostatistics & Bionformatics
Sidney Kimmel Comprehensive Cancer Center
Johns Hopkins University
550 N. Broadway, Suite 1111-E
Baltimore, MD 21205
410-502-2619


        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.