【发布时间】:2011-12-21 16:55:21
【问题描述】:
我想强制模型中的一个系数小于或等于零。
nnls 包允许您将所有系数设置为等于或大于零,但我不知道如何将特定系数指定为小于零。
任何帮助将不胜感激。
【问题讨论】:
-
我对约束回归没有太多经验,但我的第一个想法是更改数据中相应变量的符号。然后 >= 0 约束应该可以实现您的目标(尽管您会使解释模型更加复杂)。
标签: r regression lm
我想强制模型中的一个系数小于或等于零。
nnls 包允许您将所有系数设置为等于或大于零,但我不知道如何将特定系数指定为小于零。
任何帮助将不胜感激。
【问题讨论】:
标签: r regression lm
the same package 中的函数nnnpls 是“具有非负和非正约束的最小二乘的实现”。
它的第三个参数con 允许指定哪些系数应该是非正的:
长度为
m的数字向量,其中元素i为负当且仅当元素 解决方案向量x的i应限制为非正数,而不是 非负值。
【讨论】:
sos 包的插件,它可以很好地为您寻找工具和包。
nnnpls(A,matdat[,i],con=c(1,-1,1))。前两个参数与您提供给nnls() 的参数完全相同,第三个参数如我在回答中引用的段落中所述。
包 ic.infer 可能适合这个任务。
来自包小插曲: “在线性模型和多元正态情况下,线性不等式中的先验信息 可能会遇到形式,或者可能会遇到线性不等式假设 统计检验。开发了 R 包 ic.infer 以支持不等式约束 估计和测试这种情况。”
【讨论】: