我想知道是否有人知道如何限制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。