# [R] Constrained OLS regression

vito muggeo vmuggeo at dssm.unipa.it
Thu Sep 28 09:59:25 CEST 2006

```In addition to Dimitris's approach, probably the following is more
straightforward..(the idea is the same, but implementation is simpler;
you do not need starting values, for instance..)

Given the linear predictor lp:
b0+b1X1+b2X2
as b2=1-b1 the lp becomes:
b0+b1X1+(1-b1)X2 => b0+b1(X1-X2)+offset(X2)

Hence for a generic GLM you can type
glm(y~1+I(x1-x2)+offset(x2))

Hope this helps,
vito

Dimitris Rizopoulos wrote:
> you could reparameterize, e.g.,
>
> x1 <- runif(100, -4, 4)
> x2 <- runif(100, -4, 4)
> X <- cbind(1, x1 , x2)
> y <-  rnorm(100, as.vector(X %*% c(5, -3, 4)), 2)
> ######################
>
> fn <- function(betas){
>     betas <- c(betas, 1 - betas[2])
>     crossprod(y - X %*% betas)[1, ]
> }
>
> opt <- optim(c(5, -3), fn, method = "BFGS")
> c(opt\$par, 1 - opt\$par[2])
>
>
> I hope it helps.
>
> Best,
> Dimitris
>
> ----
> Dimitris Rizopoulos
> Ph.D. Student
> Biostatistical Centre
> School of Public Health
> Catholic University of Leuven
>
> Address: Kapucijnenvoer 35, Leuven, Belgium
> Tel: +32/(0)16/336899
> Fax: +32/(0)16/337015
> Web: http://med.kuleuven.be/biostat/
>      http://www.student.kuleuven.be/~m0390867/dimitris.htm
>
>
> ----- Original Message -----
> From: "Mesomeris, Spyros [CIR]" <spyros.mesomeris at citigroup.com>
> To: <r-help at stat.math.ethz.ch>
> Sent: Wednesday, September 27, 2006 12:51 PM
> Subject: [R] Constrained OLS regression
>
>
>
>>Hello R helpers,
>>
>>I am trying to do a linear OLS regression of y on two variables x1
>>and
>>x2. I want to constrain the coefficients of x1 and x2 to sum up to
>>1.
>>and therefore run a constrained OLS. Can anybody help with this? (I
>>have
>>seen some answers to similar questions but it was not clear to me
>>what I
>>need to do) - I have tried the lm function with offset but I must
>>not
>>have used it properly.
>>
>>Thanks,
>>Spyros
>>
>>______________________________________________
>>R-help at stat.math.ethz.ch mailing list
>>https://stat.ethz.ch/mailman/listinfo/r-help
>>http://www.R-project.org/posting-guide.html
>>and provide commented, minimal, self-contained, reproducible code.
>>
>
>
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> and provide commented, minimal, self-contained, reproducible code.
>
>

--
====================================
Vito M.R. Muggeo
Dip.to Sc Statist e Matem `Vianelli'
Università di Palermo
viale delle Scienze, edificio 13
90128 Palermo - ITALY
tel: 091 6626240
fax: 091 485726/485612

```