一分钟带你了解R语言包“lmtest”






一分钟带你了解R语言包“lmtest”

小师妹  生信果  2023-07-16 19:00:05

点击蓝字 关注我们

R包 “lmtest” 是一个用于线性回归模型的假设检验和诊断的扩展包。它提供了一系列函数,用于检验线性回归模型的假设,包括参数稳健性,异方差性,多重共线性等,并提供了一些诊断工具,用于评估模型的拟合和预测能力。


以下是lmtest包中一些常用函数的介绍:

coeftest():用于对回归模型的系数进行假设检验。它可以计算不同假设下的系数估计值、标准误差、t值和p值。


waldtest():用于进行Wald检验,检验回归模型中的线性约束。它可以对多个系数的线性组合进行检验。


lrtest():用于进行Likelihood Ratio (LR) 检验,用于比较两个嵌套的回归模型的拟合优度。


resettest():用于进行RESET检验,检验回归模型的函数形式是否正确。


bptest():用于进行Breusch-Pagan-Godfrey检验,检验回归模型中的异方差性。


dwtest():用于进行Durbin-Watson检验,检验回归模型中的自相关性。


除了上述函数,lmtest还提供了其他一些函数,用于多重共线性检验(如vif())、诊断回归模型拟合(如lm.diag())以及计算回归模型的条件数(如cn.cond())等。


要使用lmtest包,可以在R中使用以下命令进行安装和加载:

>install.packages("lmtest") # 安装lmtest包>library(lmtest) # 加载lmtest包

coeftest()

函数语法如下

coeftest(model, vcov., test = NULL, … )


示例:

library(lmtest)model <- lm(mpg ~ cyl + disp + hp, data = mtcars)coeftest(model)coeftest(model, test = “wald”)


在上述示例中,首先加载了lmtest包,然后使用lm()函数拟合了一个简单的线性回归模型。接下来,使用coeftest()函数对模型系数进行假设检验,默认为t检验。也可以通过设置test参数为”wald”来进行Wald检验。


coeftest()函数将返回一个包含检验结果的表格,其中包括系数估计值、标准误差、t值和p值等信息。这些结果可以帮助我们评估模型系数的显著性和统计意义。

waldtest()

函数语法如下:

waldtest(model, constr, vcov. = NULL, test = NULL, …)


示例:

library(lmtest)model <- lm(mpg ~ cyl + disp + hp, data = mtcars)constr <- matrix(c(1, -1, 0, 0), nrow = 1)waldtest(model, constr)


在上述示例中,首先加载了lmtest包,然后使用lm()函数拟合了一个简单的线性回归模型。接下来,我们定义了一个线性约束矩阵constr,其中约束了cyl和disp的系数之差为0。然后,使用waldtest()函数对该约束进行Wald检验。


waldtest()函数将返回一个包含检验结果的表格,其中包括约束矩阵、估计值、标准误差、Wald统计量和p值等信息。通过检验结果,我们可以判断线性约束是否成立,以评估模型中系数的约束关系。

lrtest()

函数语法如下:

lrtest(model1, model2, …)


示例:

library(lmtest)model1 <- lm(mpg ~ cyl + disp + hp, data = mtcars)model2 <- lm(mpg ~ cyl + disp, data = mtcars)lrtest(model1, model2)


在上述示例中,首先加载了lmtest包,然后使用lm()函数分别拟合了两个嵌套的线性回归模型model1和model2。其中,model2是model1的嵌套模型,即model2是在model1的基础上去除了hp变量。


然后,使用lrtest()函数对这两个模型进行LR检验。函数将计算LR统计量、自由度和相应的p值,并返回一个包含检验结果的表格。通过检验结果,我们可以判断两个嵌套模型的拟合优度是否有显著差异,以判断模型是否能够更好地解释数据。


需要注意的是,进行LR检验的两个模型必须是嵌套的,即第二个模型是在第一个模型的基础上添加或删除了一些自变量。

resettest()

函数语法如下:

resettest(model, power = NULL, type = c(“regressor”, “power”, “linear”), …)


示例:

library(lmtest)model <- lm(mpg ~ cyl + disp + hp, data = mtcars)resettest(model)


在上述示例中,首先加载了lmtest包,然后使用lm()函数拟合了一个简单的线性回归模型。


接下来,使用resettest()函数对该模型进行RESET检验,默认为尝试不同的幂次变换。函数将根据给定的幂次变换和检验类型计算RESET统计量,并返回一个包含检验结果的表格。通过检验结果,我们可以判断模型是否存在遗漏的非线性项,以评估模型的函数形式是否正确。


需要注意的是,RESET检验可以根据指定的幂次变换和检验类型进行不同的检验。根据具体的需求,可以在函数调用中指定相应的参数,例如指定power参数为特定的幂次变换,指定type参数为特定的检验类型。

bptest()

函数语法如下:

bptest(model, …)


示例:

library(lmtest)model <- lm(mpg ~ cyl + disp + hp, data = mtcars)bptest(model)


在上述示例中,首先加载了lmtest包,然后使用lm()函数拟合了一个简单的线性回归模型。


接下来,使用bptest()函数对该模型进行异方差检验。函数将计算Breusch-Pagan-Godfrey统计量,并返回一个包含检验结果的表格。通过检验结果,我们可以判断模型中是否存在异方差问题,以评估模型的合理性。


需要注意的是,bptest()函数假设异方差的形式为线性形式。如果存在其他形式的异方差,可能需要使用其他方法或进行相应的转换来处理异方差问题。

dwtest()

函数语法如下:

dwtest(model, alternative = c(“two.sided”, “less”, “greater”), …)


示例:

library(lmtest)model <- lm(mpg ~ cyl + disp + hp, data = mtcars)dwtest(model)


在上述示例中,首先加载了lmtest包,然后使用lm()函数拟合了一个简单的线性回归模型。


接下来,使用dwtest()函数对该模型进行Durbin-Watson检验。函数将计算Durbin-Watson统计量,并根据备择假设的类型返回一个包含检验结果的表格。通过检验结果,我们可以判断模型的残差是否存在自相关,以评估模型的合理性。


Durbin-Watson统计量的取值范围为0到4。当DW统计量接近2时,表示残差不存在自相关;当DW统计量接近0或4时,表示存在正向或负向自相关;当DW统计量接近1.5或2.5时,表示存在更严重的自相关。


需要注意的是,Durbin-Watson检验对于检测一阶自相关是有效的,对于更高阶的自相关可能不适用。如果怀疑存在更高阶的自相关,可以考虑使用其他方法进行检验。


以上就是对lmtest的简单介绍啦,其实lmtest这个语言包在统计数据模型中很常见,因为是分析线性回归模型的必备公式,所以大家要多多运用到生活的实践和学习当中。


小伙伴们,今天有没有学到新知识呢,想要继续了解R语言内容可以持续关注小师妹哦~~或者也可以关注我们的官网也会持续更新的哦~ http://www.biocloudservice.com/home.html

E

N

D