请问有没有人知道如何限制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") 请点击这里阅读相关技术文档。
R
中的nnls
包以及与非负最小二乘相关的文献,我认为这正是您要寻找的内容。 - usεr11852