lm()或gls()的正系数

我想知道是否有人知道如何限制lm或gls中的某些系数为正?

例如,我想要lm(y~x1 x2 … xn)或gls(y~x1 x2 … xn),我希望x1和x2的系数是非负的.

最佳答案 一种选择是使用nls(…),它允许指定参数的上限和下限.所以,像:

# not tested...
fit <- nls(y~a*x1 + b*x2 +c*x3...,data=mydata, 
           start=c(a=1,b=1,c=1...), lower=c(a=0,b=0,c=NA,...), algorithm="port")

阅读文档here.

点赞