Answers:
lm.ridge
MASS软件包中的例程。如果你传递一个范围值的,例如,像一个电话,你会回来的广义交叉验证统计数据,并可以绘制他们对λ:挑最小。foo <- lm.ridge(y~x1+x2,lambda=seq(0,10,by=0.1))
foo
plot(foo$GCV~foo$lambda)
好吧,我以前使用过一种临时方法。我不确定该过程是否有名称,但是直观上是有意义的。
假设您的目标是拟合模型
其中两个预测变量高度相关。正如您所指出的,在同一个模型中同时使用它们会对系数估计和p值产生奇怪的影响。替代方法是拟合模型
它将捕获第一个模型的所有效果(并且确实具有与第一个模型完全相同的),但预测变量不再共线。
编辑: OP要求解释为什么当忽略截距时,残差在定义上与预测变量的样本相关性为零,就像包含截距时一样。这个时间太长,无法在评论中发布,因此我在这里进行了编辑。这个推导并不是特别有启发性(不幸的是,我无法提出一个合理的直觉论点),但是它确实显示了OP的要求:
当在简单线性回归省略截距,β = Σ X 我ÿ 我
首先我们有
但
我喜欢到目前为止给出的两个答案。让我添加一些内容。
另一个选择是您还可以组合变量。这是通过将两者标准化(即将它们转换为z分数),对其进行平均,然后仅使用复合变量来拟合模型来完成的。当您认为它们是同一基础结构的两个不同量度时,这将是一个好方法。在这种情况下,您有两个测量值会被错误污染。您实际使用的变量最有可能的真实价值不在乎它们之间,因此对它们求平均值可以得到更准确的估计。首先将它们标准化,以使其具有相同的比例,这样名义上的问题就不会污染结果(例如,如果某些温度为华氏度而有些为摄氏温度,则您不希望对多个温度测量值求平均值)。当然,如果它们已经处于相同规模(例如,几个高度相关的民意测验),则可以跳过该步骤。如果您认为其中一个变量可能比另一个变量更准确,则可以进行加权平均(也许使用测量误差的倒数)。
将它们结合在一起,但是为什么要打扰呢? 但是,这在很大程度上取决于以下事实:变量是关联的,因为它们是同一事物的两个不同版本。如果有其他原因将它们关联起来,则可能完全不合适。
我同意岭回归可以说是更好的选择,因为它可以让您使用最初打算使用的变量,并且可能会产生非常接近其真实值的beta(尽管它们会产生偏差- 有关更多信息,请参见此处或此处))。尽管如此,我认为它也有两个潜在的缺点:我认为它更复杂(需要更多的统计数据),并且所得到的模型更难以解释。
我认为也许最终的方法是拟合结构方程模型。这是因为它可以让您制定出您认为有效的确切关系集,包括潜在变量。但是,除了提到可能性之外,我对SEM的了解还不够。(我还怀疑在您仅描述两个协变量的情况下,这种做法可能会过大。)