R语言如何修复:there are aliased coefficients in the model

R语言如何修复:there are aliased coefficients in the model

在这篇文章中,我们将探讨如何在R语言中修复 “模型中存在别名系数 “的错误。

模型中存在别名的系数。

R语言编译器有时会产生这样的错误。该错误的形式如下。

Error in vif.default(model) : there are aliased coefficients in the model

如果回归模型中存在多重共线性,那么这种类型的错误可能会发生。它让我们知道,模型中至少有两个变量是高度相关的。

当这种错误可能发生时

现在我们将通过演示R的一个程序来重新生成这个错误。在下面的程序中,我们已经拟合了一个回归模型。R中的car包提供了vif()函数,我们可以用它来计算模型中每个预测变量的vif值,如果存在多重共线性问题,它将抛出一个错误。

例子

这里,首先,我们创建了三个数据组:data1、data2、data3和data4。rnorm()函数被用来生成一个由50个遵循正态分布的随机数组成的向量。

rnorm()函数的语法如下。

语法

rnorm(n)

参数

n:一个整数,代表要生成的随机数的数量。

然后,我们用lm()函数拟合一个线性回归模型。这个函数的语法如下。

语法

lm( formula, dataframe )

参数

公式。它表示线性模型的公式。

dataframe。它代表一个数据框架。

在我们的模型准备好使用后,我们使用vif()函数。这个函数用于计算线性回归模型中所有变量的变异膨胀因子,其语法如下。

语法

VIF(model)

参数

model。它代表一个线性或逻辑回归模型

# Defining data
data1 <- rnorm(50)
data2 <- rnorm(50)
data3 <- data2*4
data4 <- rnorm(50)
  
# Fit the regression model
model <- lm(data4~data1+data2+data3)
  
# Determine the VIF values for predictor
# variables
vif(model)

输出

R语言如何修复:there are aliased coefficients in the model

如何修复这个错误

我们可以通过只考虑那些完全相关的预测变量(在lm()函数的公式中)来轻松解决这个错误。为了确定模型中哪些变量是完全相关的,我们可以在cor()函数的帮助下,生成一个变量的相关矩阵。这个函数的语法如下。

语法

cor(vect1, vect2, method)

参数

这里,vect1和vect2是数据向量,method代表要使用的方法的类型。

# Defining data
data1 <- rnorm(50)
data2 <- rnorm(50)
data3 <- data2*4
data4 <- rnorm(50)
  
# Place variables in data frame
dataframe <- data.frame(data1, data2, data3, data4)
  
# Make a correlation matrix for 
# data frame
cor(dataframe)

输出

R语言如何修复:there are aliased coefficients in the model

正如你在输出中所看到的,数据2和数据3的相关系数等于1。这意味着这两个变量是造成错误的原因,因为它们是完全相关的。

如果我们用数据2和数据3中的一个变量再次拟合回归模型,这个错误就可以得到解决。

# Defining data
data1 <- rnorm(50)
data2 <- rnorm(50)
data3 <- data2*4
data4 <- rnorm(50)
  
#fit regression model
model <- lm(data4~data1+data2)
  
# Determine the VIF values for 
# predictor variables
vif(model)

输出

R语言如何修复:there are aliased coefficients in the model

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程