lm()或gls()的正系数

4

请问有没有人知道如何限制lmgls中的某些系数为正数?

例如,我希望使用lm(y ~ x1 + x2 + ... + xn)gls(y ~ x1 + x2 + ... + xn),并且我希望x1x2的系数为非负数。


请查看R中的nnls包以及与非负最小二乘相关的文献,我认为这正是您要寻找的内容。 - usεr11852
还有这个链接也应该会有所帮助:http://stats.stackexchange.com/questions/61733/linear-regression-with-slope-constraint。 - agstudy
1个回答

3

一种选择是使用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")

点击这里阅读相关技术文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接