【问题标题】:Force Coefficient to be Negative in R lmR lm 中的力系数为负
【发布时间】:2011-12-21 16:55:21
【问题描述】:

我想强制模型中的一个系数小于或等于零。

nnls 包允许您将所有系数设置为等于或大于零,但我不知道如何将特定系数指定为小于零。

任何帮助将不胜感激。

【问题讨论】:

  • 我对约束回归没有太多经验,但我的第一个想法是更改数据中相应变量的符号。然后 >= 0 约束应该可以实现您的目标(尽管您会使解释模型更加复杂)。

标签: r regression lm


【解决方案1】:

the same package 中的函数nnnpls 是“具有非负和非正约束的最小二乘的实现”。

它的第三个参数con 允许指定哪些系数应该是非正的:

长度为m 的数字向量,其中元素i 为负当且仅当元素 解决方案向量xi 应限制为非正数,而不是 非负值。

【讨论】:

  • 您介意举个例子吗?我对 nnpls 的帮助页面有点困惑。
  • 没有什么比老式的 RTFM 更好的了,嗯? :-) 。尽管我不得不承认,首先要查看哪些 packages 并不总是很明显。这是sos 包的插件,它可以很好地为您寻找工具和包。
  • @BurtonGuster:手册中有以下示例:nnnpls(A,matdat[,i],con=c(1,-1,1))。前两个参数与您提供给nnls() 的参数完全相同,第三个参数如我在回答中引用的段落中所述。
  • +1 借调。对于此类计算,这是一个很好且相当快的软件包。
【解决方案2】:

包 ic.infer 可能适合这个任务。

来自包小插曲: “在线性模型和多元正态情况下,线性不等式中的先验信息 可能会遇到形式,或者可能会遇到线性不等式假设 统计检验。开发了 R 包 ic.infer 以支持不等式约束 估计和测试这种情况。”

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 2020-03-06
    • 2021-01-09
    • 2014-08-09
    • 1970-01-01
    • 2017-04-05
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多