Answers:
您需要使用如下offset
参数:
library(glmnet)
x=matrix(rnorm(100*20),100,20)
x1=matrix(rnorm(100),100,1)
y=rnorm(100)
fit1=glmnet(x,y,offset=x1)
fit1$offset
print(fit1)
关于范围...我认为尚未在中实现glmnet
。如果他们使用某种数值方法,则可能需要深入研究R代码并尝试将其限制在那儿,但是您将需要一个良好而扎实的编程背景。
offset
真正在做什么?1.1*x1
问题的价值如何确定?
offset
在glmnet
包装,通过统计所提供的答案无厘头我。当我运行fit1 beta)]时,看不到任何。您能否阐明示例中的偏移量是如何工作的?对于Beta的范围,可以使用和参数。β 1 = 1.0lower.limits
upper limits
好吧,让我们考虑一下。你有:
(为了简单)您想强制所以
因此您只需从两边减去就可以了:
然后可以估算。
关于将系数约束在一个范围内,贝叶斯估计方法是实现此目的的一种方法。
特别地,人们将依赖于马尔可夫链蒙特卡洛。首先,考虑吉布斯采样算法,这是在没有限制的情况下如何将MCMC放入贝叶斯框架中。在Gibbs采样中,在算法的每个步骤中,您将根据数据和所有其他参数,从每个参数(或一组参数)的后验分布中采样。维基百科提供了一种很好的方法总结。
限制范围的一种方法是应用Metropolis-Hastings步骤。基本思想是简单地抛出边界之外的任何模拟变量。然后,您可以继续进行重新采样,直到达到您的要求为止,然后再进行下一次迭代。不利的一面是,您可能在许多次仿真中陷入困境,从而降低了MCMC的速度。最初由John Geweke在几篇 论文中开发并由Rodriguez-Yam,Davis,Sharpe扩展到论文中的另一种方法是从受约束的多元正态分布中进行模拟。这种方法可以处理对参数的线性和非线性不等式约束,我已经取得了一些成功。
glmnet
。
我不熟悉LASSO或glmnet
,但是lavaan
(“潜在变量分析”的简称)促进了同时具有等式约束和单界不等式约束的多元回归模型(请参阅本PDF第7页的表,“ lavaan:R包”)用于结构方程建模”)。我不知道您是否可以在系数上同时设置上限和下限,但是也许可以用单独的线添加每个上限,例如:
Coefficient>.49999999
Coefficient<1.0000001
当然,如果要在拟合模型之前对所有内容进行标准化,则不必担心在回归系数上加上1的上限。我想说,在这种情况下,最好不要这样做,以防万一出问题了!(lavaan
是仍处于测试阶段毕竟...我已经看到了我自己的用途有限,它的一些微腥,结果迄今。)