我想知道是否有人知道如何限制lm
或gls
中的某些系数为正?
例如,我想要lm(y ~ x1 + x2 + ... + xn)
或gls(y ~ x1 + x2 + ... + xn)
,我希望x1
和x2
的系数为非负数。
答案 0 :(得分:2)
一种选择是使用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。