1

在 R 中,似乎有两种流行的计算 VIF(方差膨胀因子,用于检测回归变量之间的共线性)的方法:

  1. 包中的vif()函数car,其中输入是模型。这要求您首先拟合模型,然后才能检查模型中变量之间的 VIF。

  2. 函数,其中corvif()输入是实际的候选解释变量(即变量列表,甚至在模型拟合之前)。此功能是AED包的一部分 (Zuur et al. 2009),该包已停产。这似乎只适用于变量列表,而不适用于拟合回归模型。

这是一个数据示例:

MyData<-structure(list(site = structure(c(3L, 1L, 5L, 1L, 2L, 3L, 2L, 
4L, 1L, 2L, 2L, 3L, 4L, 3L, 2L, 2L, 4L, 1L, 1L, 3L, 3L, 1L, 4L, 
3L, 1L, 3L, 4L, 5L, 1L, 3L, 1L, 2L, 4L, 2L, 1L, 1L, 5L, 3L, 1L, 
3L, 4L, 3L, 1L, 4L, 4L, 2L, 5L, 2L, 1L, 4L, 1L, 1L, 1L, 4L, 4L, 
3L, 5L, 3L, 1L, 3L, 1L, 1L, 3L, 1L, 4L, 5L, 1L, 5L, 1L, 4L, 1L, 
4L, 1L, 2L, 5L, 2L, 3L, 1L, 5L, 4L, 1L, 1L, 3L, 2L, 1L, 3L, 5L, 
3L, 3L, 5L, 2L, 1L, 3L, 5L, 4L, 5L, 5L, 1L, 3L, 2L, 5L, 4L, 3L, 
3L, 2L, 5L, 2L, 1L, 1L, 3L, 3L, 5L, 5L, 5L, 3L, 1L, 1L, 5L, 5L, 
5L, 2L, 3L, 5L, 1L, 3L, 3L, 4L, 4L, 4L, 5L, 2L, 3L, 1L, 4L, 2L, 
4L, 3L, 4L, 3L, 3L, 4L, 1L, 3L, 4L, 1L, 4L, 4L, 5L, 4L, 4L, 1L, 
4L, 1L, 2L, 1L, 2L, 4L, 2L, 4L, 3L, 5L, 1L, 2L, 3L, 1L, 1L, 4L, 
3L, 1L, 1L, 1L, 4L, 3L, 5L, 4L, 2L, 1L, 4L, 1L, 2L, 1L, 1L, 5L, 
1L, 5L, 3L, 1L, 5L, 3L, 5L, 3L, 5L, 3L, 1L, 5L, 1L, 1L, 1L, 3L, 
1L, 4L, 4L, 2L, 5L, 4L, 1L, 3L, 2L, 4L, 5L, 4L, 5L, 5L, 3L, 2L, 
2L, 4L, 2L, 5L, 4L, 1L, 5L, 5L, 4L, 4L, 3L, 1L, 3L, 4L, 4L, 1L, 
1L, 1L, 3L, 3L, 1L, 1L, 3L, 4L, 4L, 1L, 5L, 3L, 5L, 5L, 3L, 5L, 
5L, 1L, 4L, 3L, 1L, 1L, 1L, 1L, 2L, 3L, 1L, 4L, 3L, 3L, 4L, 3L, 
4L, 3L, 3L, 4L, 1L, 5L, 4L, 3L, 1L, 2L, 2L, 5L, 1L, 3L, 3L, 4L, 
1L, 4L, 3L, 1L, 2L, 5L, 5L, 4L, 1L, 3L, 4L, 4L, 3L, 5L, 4L, 5L, 
2L, 5L, 4L, 2L, 5L, 1L, 2L, 4L, 1L, 5L, 3L, 5L, 4L, 1L, 4L, 4L, 
2L, 3L, 5L, 4L, 3L, 4L, 2L, 1L, 1L, 5L, 3L, 3L, 1L, 3L, 1L, 3L, 
3L, 5L, 2L, 4L, 3L, 1L, 1L, 4L, 4L, 3L, 3L, 3L, 4L, 5L, 1L, 5L, 
3L, 3L, 1L, 1L, 3L, 2L, 5L, 1L, 3L, 1L, 5L, 3L, 4L, 4L, 2L, 1L, 
2L, 4L, 1L, 4L, 4L, 3L, 3L, 5L, 3L, 2L, 2L, 4L, 2L, 1L, 1L, 3L, 
3L, 4L, 3L, 1L, 4L, 2L, 1L, 2L, 4L, 3L, 4L, 1L, 1L, 4L, 4L, 3L, 
5L, 1L), .Label = c("R1a", "R1b", "R2", "Za", "Zb"), class = "factor"), 
    species = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    3L, 4L, 3L, 1L, 4L, 3L, 4L, 1L, 4L, 3L, 3L, 4L, 1L, 1L, 1L, 
    2L, 4L, 1L, 2L, 1L, 3L, 1L, 4L, 3L, 3L, 2L, 2L, 4L, 1L, 1L, 
    3L, 2L, 4L, 3L, 3L, 1L, 3L, 1L, 3L, 1L, 1L, 2L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 3L, 4L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 1L, 1L, 
    1L, 3L, 1L, 1L, 3L, 2L, 3L, 3L, 2L, 1L, 1L, 1L, 3L, 3L, 3L, 
    1L, 3L, 2L, 1L, 3L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 3L, 3L, 
    3L, 1L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 1L, 1L, 4L, 1L, 1L, 
    1L, 4L, 1L, 1L, 4L, 1L, 1L, 4L, 1L, 1L, 1L, 3L, 3L, 1L, 1L, 
    1L, 4L, 1L, 1L, 1L, 1L, 4L, 3L, 2L, 1L, 3L, 1L, 4L, 4L, 1L, 
    1L, 1L, 1L, 1L, 3L, 1L, 3L, 1L, 1L, 3L, 1L, 3L, 1L, 1L, 3L, 
    3L, 1L, 4L, 1L, 3L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 3L, 1L, 
    1L, 3L, 1L, 1L, 3L, 1L, 1L, 1L, 1L, 3L, 4L, 3L, 3L, 1L, 1L, 
    1L, 4L, 1L, 3L, 4L, 1L, 3L, 4L, 3L, 3L, 3L, 3L, 1L, 3L, 2L, 
    3L, 3L, 4L, 3L, 1L, 2L, 1L, 1L, 2L, 3L, 4L, 3L, 1L, 1L, 4L, 
    1L, 1L, 1L, 4L, 1L, 2L, 1L, 1L, 3L, 4L, 4L, 1L, 3L, 1L, 3L, 
    3L, 1L, 3L, 3L, 3L, 1L, 3L, 1L, 3L, 1L, 2L, 3L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 3L, 4L, 1L, 1L, 3L, 1L, 1L, 4L, 1L, 
    3L, 3L, 1L, 1L, 1L, 1L, 3L, 1L, 3L, 3L, 2L, 3L, 1L, 3L, 1L, 
    1L, 1L, 3L, 1L, 3L, 1L, 1L, 1L, 1L, 4L, 1L, 1L, 1L, 1L, 1L, 
    1L, 4L, 1L, 3L, 3L, 1L, 1L, 3L, 1L, 3L, 2L, 4L, 1L, 1L, 4L, 
    1L, 1L, 3L, 4L, 1L, 1L, 4L, 2L, 3L, 3L, 1L, 1L, 1L, 3L, 1L, 
    3L, 1L, 3L, 4L, 4L, 1L, 3L, 1L, 3L, 1L, 4L, 1L, 1L, 1L, 4L, 
    1L, 4L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 4L, 2L, 3L, 3L, 3L, 1L, 
    3L, 1L, 1L, 4L, 2L, 3L, 1L, 4L, 1L, 1L, 3L, 1L, 4L, 1L, 1L, 
    3L, 1L, 3L, 1L, 1L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 1L, 1L, 1L, 
    4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Monogyna", 
    "Other", "Prunus", "Rosa"), class = "factor"), aspect = structure(c(4L, 
    4L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 4L, 3L, 3L, 3L, 4L, 4L, 
    3L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 2L, 3L, 4L, 4L, 4L, 4L, 
    4L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 2L, 4L, 3L, 3L, 4L, 
    4L, 4L, 4L, 3L, 4L, 4L, 4L, 3L, 3L, 3L, 4L, 4L, 4L, 2L, 4L, 
    4L, 2L, 4L, 1L, 1L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 4L, 4L, 4L, 
    2L, 4L, 1L, 3L, 4L, 4L, 2L, 4L, 4L, 4L, 4L, 1L, 4L, 1L, 4L, 
    4L, 4L, 1L, 3L, 3L, 1L, 4L, 3L, 4L, 4L, 3L, 4L, 5L, 4L, 4L, 
    4L, 4L, 4L, 3L, 2L, 4L, 2L, 1L, 2L, 4L, 4L, 4L, 4L, 1L, 4L, 
    4L, 1L, 4L, 4L, 4L, 3L, 3L, 3L, 4L, 4L, 2L, 4L, 3L, 4L, 3L, 
    5L, 3L, 2L, 4L, 3L, 4L, 4L, 3L, 4L, 3L, 3L, 4L, 3L, 3L, 4L, 
    3L, 4L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 1L, 4L, 4L, 4L, 4L, 4L, 
    3L, 3L, 4L, 4L, 4L, 3L, 5L, 4L, 3L, 4L, 4L, 3L, 4L, 4L, 4L, 
    4L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 1L, 4L, 4L, 3L, 4L, 4L, 4L, 
    4L, 4L, 3L, 4L, 3L, 3L, 4L, 4L, 3L, 4L, 3L, 4L, 3L, 4L, 3L, 
    4L, 4L, 2L, 4L, 4L, 3L, 4L, 1L, 3L, 4L, 4L, 4L, 3L, 3L, 3L, 
    4L, 3L, 3L, 3L, 4L, 4L, 4L, 2L, 5L, 4L, 4L, 3L, 3L, 3L, 4L, 
    4L, 4L, 1L, 4L, 4L, 1L, 4L, 4L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 
    4L, 4L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 3L, 4L, 4L, 3L, 2L, 
    4L, 4L, 4L, 1L, 4L, 3L, 3L, 3L, 4L, 3L, 2L, 4L, 4L, 4L, 4L, 
    3L, 4L, 4L, 3L, 3L, 1L, 4L, 3L, 1L, 4L, 4L, 3L, 4L, 4L, 4L, 
    4L, 3L, 4L, 1L, 4L, 1L, 3L, 4L, 3L, 3L, 4L, 2L, 4L, 3L, 4L, 
    3L, 4L, 4L, 4L, 4L, 4L, 3L, 4L, 4L, 4L, 2L, 3L, 4L, 4L, 3L, 
    2L, 4L, 4L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 4L, 1L, 4L, 2L, 4L, 
    4L, 4L, 4L, 1L, 4L, 5L, 4L, 4L, 3L, 3L, 3L, 4L, 4L, 4L, 3L, 
    4L, 3L, 3L, 3L, 4L, 3L, 2L, 4L, 4L, 3L, 4L, 4L, 4L, 5L, 1L, 
    3L, 2L, 4L, 3L, 4L, 4L, 4L, 3L, 4L, 3L, 4L, 4L, 3L, 3L, 4L, 
    4L, 4L), .Label = c("East", "Flat", "North", "South", "West"
    ), class = "factor"), height = c(515L, 60L, 60L, 30L, 70L, 
    70L, 40L, 70L, 50L, 75L, 160L, 85L, 40L, 90L, 70L, 210L, 
    30L, 60L, 45L, 60L, 410L, 50L, 40L, 210L, 140L, 120L, 70L, 
    35L, 30L, 90L, 40L, 240L, 40L, 55L, 120L, 200L, 65L, 40L, 
    95L, 140L, 220L, 70L, 40L, 30L, 50L, 95L, 50L, 50L, 50L, 
    70L, 160L, 45L, 35L, 50L, 70L, 230L, 110L, 300L, 50L, 105L, 
    60L, 50L, 60L, 70L, 30L, 60L, 30L, 110L, 80L, 80L, 30L, 60L, 
    70L, 80L, 60L, 40L, 220L, 140L, 110L, 40L, 40L, 40L, 90L, 
    125L, 90L, 100L, 270L, 420L, 60L, 70L, 53L, 40L, 80L, 90L, 
    30L, 40L, 65L, 40L, 110L, 90L, 40L, 190L, 110L, 70L, 52L, 
    120L, 95L, 50L, 50L, 140L, 75L, 30L, 50L, 60L, 125L, 60L, 
    80L, 35L, 55L, 140L, 140L, 240L, 65L, 40L, 200L, 80L, 60L, 
    65L, 120L, 80L, 230L, 150L, 40L, 50L, 60L, 210L, 50L, 130L, 
    140L, 210L, 60L, 50L, 90L, 120L, 55L, 50L, 20L, 50L, 40L, 
    70L, 40L, 100L, 80L, 85L, 60L, 50L, 20L, 200L, 40L, 70L, 
    50L, 200L, 60L, 43L, 30L, 60L, 40L, 70L, 40L, 40L, 40L, 50L, 
    110L, 70L, 30L, 50L, 85L, 70L, 40L, 100L, 40L, 50L, 100L, 
    40L, 70L, 40L, 40L, 50L, 210L, 50L, 140L, 80L, 75L, 90L, 
    40L, 50L, 60L, 50L, 80L, 50L, 60L, 40L, 60L, 170L, 60L, 80L, 
    80L, 15L, 40L, 70L, 45L, 45L, 45L, 110L, 200L, 30L, 60L, 
    40L, 60L, 160L, 40L, 90L, 80L, 30L, 40L, 270L, 50L, 50L, 
    60L, 60L, 50L, 30L, 70L, 170L, 50L, 30L, 50L, 60L, 40L, 60L, 
    60L, 140L, 80L, 80L, 220L, 45L, 80L, 130L, 50L, 40L, 220L, 
    40L, 70L, 60L, 80L, 50L, 200L, 115L, 50L, 90L, 400L, 50L, 
    360L, 40L, 60L, 60L, 65L, 100L, 50L, 55L, 60L, 50L, 130L, 
    40L, 130L, 40L, 40L, 120L, 66L, 55L, 100L, 75L, 60L, 80L, 
    60L, 90L, 160L, 50L, 210L, 35L, 60L, 40L, 55L, 50L, 90L, 
    220L, 60L, 120L, 62L, 60L, 40L, 60L, 70L, 60L, 90L, 50L, 
    50L, 30L, 110L, 70L, 80L, 90L, 210L, 70L, 65L, 160L, 100L, 
    25L, 55L, 40L, 60L, 110L, 70L, 50L, 60L, 70L, 60L, 60L, 170L, 
    45L, 60L, 120L, 40L, 60L, 130L, 40L, 170L, 50L, 80L, 60L, 
    150L, 90L, 60L, 120L, 120L, 80L, 30L, 110L, 230L, 190L, 70L, 
    110L, 50L, 60L, 82L, 60L, 30L, 60L, 200L, 90L, 30L, 140L, 
    60L, 70L, 70L, 100L, 60L, 415L, 115L, 90L, 60L, 60L, 80L, 
    60L, 55L, 90L, 65L, 60L, 40L, 40L, 90L, 50L, 70L, 70L, 120L, 
    40L, 50L, 110L, 45L, 30L, 95L, 30L, 70L), width = c(310L, 
    50L, 40L, 30L, 60L, 70L, 20L, 80L, 70L, 20L, 220L, 40L, 60L, 
    30L, 230L, 110L, 20L, 40L, 25L, 60L, 240L, 90L, 30L, 130L, 
    120L, 110L, 60L, 70L, 30L, 110L, 30L, 180L, 20L, 80L, 110L, 
    310L, 40L, 10L, 80L, 160L, 134L, 30L, 20L, 40L, 20L, 230L, 
    100L, 180L, 40L, 120L, 130L, 30L, 40L, 100L, 30L, 180L, 70L, 
    110L, 170L, 40L, 30L, 50L, 30L, 40L, 30L, 50L, 80L, 50L, 
    80L, 90L, 70L, 70L, 190L, 60L, 50L, 30L, 150L, 150L, 50L, 
    80L, 30L, 40L, 130L, 390L, 60L, 130L, 400L, 200L, 110L, 30L, 
    15L, 300L, 70L, 140L, 30L, 50L, 30L, 40L, 110L, 240L, 50L, 
    90L, 70L, 20L, 40L, 100L, 50L, 30L, 30L, 130L, 40L, 70L, 
    70L, 60L, 10L, 30L, 60L, 50L, 40L, 120L, 90L, 210L, 50L, 
    20L, 100L, 100L, 110L, 100L, 100L, 80L, 120L, 80L, 5L, 40L, 
    50L, 60L, 15L, 100L, 120L, 200L, 30L, 80L, 60L, 70L, 30L, 
    30L, 20L, 50L, 50L, 60L, 15L, 80L, 60L, 130L, 40L, 60L, 30L, 
    100L, 20L, 130L, 60L, 120L, 70L, 20L, 60L, 20L, 40L, 50L, 
    15L, 120L, 60L, 50L, 300L, 40L, 30L, 25L, 70L, 130L, 30L, 
    50L, 60L, 50L, 50L, 50L, 20L, 30L, 70L, 35L, 180L, 40L, 50L, 
    70L, 40L, 70L, 50L, 20L, 40L, 40L, 40L, 40L, 50L, 20L, 30L, 
    180L, 30L, 130L, 30L, 15L, 25L, 50L, 40L, 40L, 40L, 50L, 
    170L, 20L, 50L, 20L, 50L, 110L, 30L, 90L, 15L, 50L, 40L, 
    150L, 30L, 30L, 30L, 20L, 40L, 20L, 100L, 60L, 40L, 30L, 
    30L, 140L, 40L, 50L, 120L, 150L, 100L, 70L, 300L, 30L, 60L, 
    120L, 30L, 50L, 100L, 60L, 90L, 50L, 40L, 140L, 130L, 60L, 
    60L, 70L, 200L, 30L, 40L, 50L, 20L, 20L, 20L, 80L, 35L, 70L, 
    15L, 40L, 360L, 70L, 50L, 50L, 30L, 110L, 30L, 30L, 90L, 
    50L, 30L, 70L, 40L, 110L, 70L, 40L, 150L, 100L, 40L, 40L, 
    40L, 20L, 250L, 180L, 40L, 60L, 20L, 120L, 40L, 50L, 60L, 
    260L, 110L, 30L, 30L, 40L, 100L, 50L, 50L, 100L, 150L, 190L, 
    70L, 110L, 50L, 10L, 40L, 50L, 60L, 80L, 30L, 20L, 150L, 
    70L, 25L, 30L, 40L, 50L, 30L, 50L, 210L, 40L, 100L, 30L, 
    80L, 20L, 30L, 70L, 130L, 60L, 50L, 50L, 70L, 50L, 30L, 150L, 
    130L, 110L, 50L, 40L, 80L, 90L, 40L, 40L, 40L, 40L, 200L, 
    140L, 40L, 25L, 50L, 50L, 40L, 20L, 40L, 340L, 70L, 60L, 
    50L, 20L, 80L, 60L, 25L, 260L, 20L, 15L, 40L, 30L, 300L, 
    120L, 60L, 100L, 50L, 40L, 20L, 90L, 50L, 40L, 80L, 30L, 
    40L), length = c(450L, 80L, 55L, 50L, 90L, 90L, 30L, 90L, 
    90L, 30L, 240L, 50L, 70L, 40L, 380L, 200L, 40L, 40L, 35L, 
    110L, 250L, 120L, 70L, 150L, 130L, 140L, 90L, 90L, 40L, 390L, 
    40L, 190L, 40L, 110L, 140L, 360L, 50L, 30L, 130L, 500L, 200L, 
    30L, 25L, 60L, 30L, 350L, 110L, 180L, 70L, 180L, 200L, 40L, 
    70L, 110L, 70L, 180L, 90L, 150L, 400L, 100L, 60L, 70L, 70L, 
    60L, 30L, 50L, 80L, 180L, 110L, 100L, 110L, 110L, 210L, 80L, 
    70L, 40L, 500L, 210L, 50L, 80L, 40L, 50L, 350L, 400L, 150L, 
    200L, 400L, 280L, 240L, 40L, 50L, 360L, 140L, 140L, 50L, 
    50L, 40L, 50L, 210L, 370L, 70L, 110L, 80L, 50L, 50L, 100L, 
    80L, 50L, 35L, 140L, 60L, 90L, 110L, 60L, 130L, 180L, 70L, 
    70L, 40L, 230L, 130L, 290L, 90L, 40L, 100L, 100L, 120L, 150L, 
    110L, 80L, 220L, 90L, 5L, 50L, 50L, 60L, 30L, 150L, 120L, 
    200L, 60L, 170L, 80L, 90L, 40L, 50L, 70L, 50L, 60L, 100L, 
    15L, 90L, 70L, 150L, 60L, 90L, 50L, 120L, 20L, 220L, 80L, 
    140L, 120L, 30L, 60L, 40L, 40L, 70L, 30L, 180L, 60L, 110L, 
    300L, 50L, 60L, 50L, 110L, 160L, 40L, 70L, 70L, 60L, 70L, 
    50L, 25L, 30L, 215L, 70L, 220L, 70L, 80L, 90L, 60L, 130L, 
    60L, 20L, 60L, 50L, 40L, 60L, 100L, 40L, 70L, 210L, 40L, 
    500L, 40L, 30L, 50L, 80L, 40L, 60L, 80L, 50L, 220L, 20L, 
    70L, 50L, 50L, 180L, 50L, 90L, 15L, 120L, 80L, 170L, 30L, 
    30L, 60L, 20L, 60L, 30L, 140L, 80L, 40L, 50L, 40L, 200L, 
    80L, 80L, 120L, 160L, 210L, 120L, 400L, 60L, 60L, 180L, 70L, 
    70L, 150L, 70L, 110L, 70L, 80L, 250L, 140L, 90L, 60L, 180L, 
    400L, 60L, 50L, 60L, 40L, 30L, 50L, 100L, 40L, 110L, 30L, 
    80L, 400L, 70L, 50L, 80L, 30L, 180L, 70L, 60L, 100L, 70L, 
    50L, 100L, 60L, 220L, 70L, 70L, 200L, 110L, 50L, 110L, 50L, 
    60L, 250L, 220L, 60L, 80L, 35L, 210L, 70L, 70L, 110L, 320L, 
    280L, 60L, 50L, 60L, 100L, 70L, 70L, 170L, 170L, 230L, 80L, 
    130L, 90L, 10L, 60L, 70L, 60L, 120L, 40L, 50L, 160L, 100L, 
    30L, 40L, 40L, 90L, 30L, 80L, 240L, 100L, 170L, 60L, 120L, 
    20L, 40L, 70L, 150L, 80L, 50L, 90L, 130L, 70L, 60L, 480L, 
    150L, 130L, 90L, 70L, 150L, 100L, 70L, 50L, 40L, 60L, 400L, 
    200L, 80L, 30L, 120L, 70L, 50L, 40L, 40L, 360L, 90L, 70L, 
    60L, 40L, 110L, 80L, 25L, 270L, 40L, 25L, 50L, 30L, 320L, 
    150L, 100L, 100L, 60L, 40L, 50L, 100L, 50L, 50L, 200L, 30L, 
    80L), ground = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
    2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 
    1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 3L, 1L, 
    2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 
    2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 3L, 
    1L, 2L, 1L, 2L, 1L, 1L, 3L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 
    1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 3L, 2L, 
    2L, 1L, 1L, 1L, 2L, 2L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
    2L, 3L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 3L, 1L, 1L, 2L, 1L, 1L, 
    2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 
    2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 
    2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 
    2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 
    1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 3L, 1L, 3L, 2L, 
    1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 
    1L, 1L, 1L, 2L, 1L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    2L, 1L, 1L, 1L, 2L, 3L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 
    2L, 2L, 2L, 2L, 2L, 1L, 3L, 1L, 1L, 2L, 1L, 2L, 1L, 3L, 2L, 
    2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 3L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 
    1L, 2L, 3L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 
    2L, 1L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 1L, 
    1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 
    1L, 1L, 2L, 1L, 1L, 3L, 2L, 1L, 3L, 1L), .Label = c("Grass", 
    "GrassRock", "Rock"), class = "factor"), sun = structure(c(3L, 
    1L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 1L, 1L, 1L, 
    3L, 3L, 3L, 1L, 3L, 3L, 3L, 1L, 3L, 3L, 1L, 2L, 3L, 1L, 1L, 
    1L, 3L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 
    3L, 1L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 1L, 3L, 
    3L, 3L, 1L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 1L, 1L, 3L, 1L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 1L, 1L, 3L, 3L, 
    3L, 1L, 1L, 3L, 2L, 1L, 3L, 1L, 3L, 2L, 1L, 1L, 3L, 3L, 1L, 
    3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 
    3L, 1L, 3L, 1L, 1L, 3L, 3L, 3L, 2L, 1L, 3L, 3L, 1L, 3L, 3L, 
    1L, 3L, 2L, 1L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 3L, 3L, 
    3L, 1L, 1L, 3L, 3L, 3L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 3L, 1L, 
    1L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 1L, 1L, 3L, 3L, 1L, 1L, 
    1L, 3L, 1L, 1L, 1L, 3L, 1L, 1L, 3L, 1L, 2L, 1L, 3L, 1L, 3L, 
    3L, 3L, 1L, 1L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 
    3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 
    3L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 3L, 1L, 3L, 3L, 1L, 2L, 1L, 
    1L, 1L, 3L, 3L, 1L, 3L, 1L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 3L, 
    3L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 1L, 3L, 3L, 1L, 1L, 3L, 1L, 1L, 2L, 3L, 3L, 1L, 3L, 
    1L, 1L, 1L, 3L, 1L, 1L, 3L, 3L, 1L, 1L, 1L, 3L, 1L, 1L, 2L, 
    3L, 1L, 3L, 3L, 2L, 1L, 1L, 3L, 2L, 1L, 3L, 3L, 3L, 1L, 3L, 
    3L, 3L, 1L, 3L, 1L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 
    1L, 3L, 1L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 
    1L, 1L, 3L, 3L, 3L, 3L, 3L, 2L, 1L, 3L, 1L, 1L, 3L, 3L, 1L, 
    3L, 3L, 3L, 3L, 1L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 
    3L, 1L), .Label = c("Half", "Shade", "Sun"), class = "factor"), 
    leaf = structure(c(2L, 2L, 4L, 2L, 2L, 4L, 2L, 2L, 4L, 2L, 
    2L, 2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 4L, 2L, 1L, 2L, 1L, 3L, 1L, 1L, 1L, 4L, 4L, 4L, 1L, 
    1L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 4L, 1L, 1L, 2L, 4L, 2L, 2L, 
    2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 2L, 4L, 2L, 2L, 
    2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 4L, 4L, 2L, 2L, 1L, 2L, 2L, 
    1L, 1L, 2L, 2L, 4L, 2L, 2L, 1L, 2L, 4L, 4L, 4L, 2L, 1L, 2L, 
    2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 4L, 1L, 2L, 2L, 
    2L, 2L, 4L, 2L, 1L, 4L, 2L, 4L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 
    2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 4L, 1L, 2L, 2L, 1L, 2L, 2L, 
    2L, 2L, 4L, 4L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 4L, 2L, 2L, 1L, 
    2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 1L, 2L, 4L, 2L, 
    2L, 2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 2L, 4L, 
    2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 1L, 1L, 2L, 
    2L, 4L, 2L, 4L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 4L, 2L, 4L, 1L, 
    2L, 4L, 4L, 4L, 2L, 2L, 2L, 4L, 1L, 2L, 4L, 4L, 2L, 1L, 2L, 
    4L, 4L, 1L, 4L, 2L, 2L, 2L, 2L, 4L, 1L, 2L, 1L, 1L, 2L, 2L, 
    2L, 4L, 2L, 2L, 4L, 2L, 1L, 2L, 2L, 2L, 2L, 4L, 2L, 4L, 2L, 
    2L, 2L, 1L, 4L, 4L, 4L, 2L, 2L, 2L, 1L, 4L, 4L, 2L, 2L, 2L, 
    4L, 1L, 2L, 4L, 2L, 1L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 2L, 2L, 
    2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 4L, 2L, 2L, 2L, 
    2L, 1L, 2L, 1L, 4L, 2L, 1L, 2L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 
    2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 4L, 2L, 4L, 
    1L, 2L, 4L, 2L, 2L, 2L, 4L, 1L, 2L, 1L, 2L, 2L, 2L, 4L, 1L, 
    2L, 2L, 2L, 1L, 2L, 4L, 2L, 2L, 2L, 1L, 4L, 4L, 2L, 2L, 2L, 
    4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 
    2L, 2L, 4L, 4L, 4L, 2L, 4L, 2L), .Label = c("Large", "Medium", 
    "Scarce", "Small"), class = "factor"), Presence = c(0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 
    0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 
    1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 
    0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    0L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 
    0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
    1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 
    0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 
    1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 
    0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
    1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 
    1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 
    0L)), .Names = c("site", "species", "aspect", "height", "width", 
"length", "ground", "sun", "leaf", "Presence"), row.names = c(NA, 
393L), class = "data.frame")

模型选择后,这是最优模型:

model <- glm(Presence ~ site + species + aspect + length + sun 
            + leaf, data=MyData, family=binomial)

对于上面提到的第一种方式,可以执行以下操作:

library(car)
vif(model)

基于模型作为输入获得 VIF。

但是对于第二种方式,可以在拟合模型之前查看变量的 VIF:

library(AED) # note that his package has been discontinued
vars <- cbind(MyData$site, MyData$species,
MyData$aspect , MyData$length ,
MyData$width, MyData$height,
MyData$ground, MyData$sun, MyData$leaf)
corvif(vars)

corvif()功能代码可以在这里找到:http ://www.highstat.com/Book2/HighstatLibV6.R )

这两个函数的基础数学看起来是相同的,但是函数的编写方式,它们接受不同类型的对象作为输入。

我的问题是:

  1. 您是否更喜欢基于 VIF 计算

    1. 在模型拟合之前的变量列表上,
    2. 在拟合模型上,或
    3. 两个都?
  2. 人们是否推荐和/或使用任何函数(除了已经提到的两个函数)来计算 VIF?

  3. 有没有人知道一个 R 函数可以在变量列表拟合模型上作为输入工作?

4

1 回答 1

0

我对这个问题的(主观)回答:在模型对象或数据本身上使用 vif 是否更合适,最好的做法是在构建模型之前将其作为理解过程的一部分建模前数据之间的关系。但说实话,我认为大多数时候它是由于意外的结果(通常会爆炸的标准错误)而事后才完成的。

如果您想要一个可以采用适合对象或尺寸数据对象(矩阵或数据框)的函数,那么我认为您可能需要“自己动手”。我已经广泛使用了 rms/Hmisc 包对,并且vif在“rms”包中还有一个which.influence函数可以让您知道导致多重共线性的组合。它只接受一个合适的对象。因为处理 fit-objects 的版本可以查看vcov公式的结果和 RHS 中的项,所以您只需要一个参数。但是,如果您想指定在标注对象中检查哪些列,​​则需要提供函数代码来处理第二个参数。

我进行了搜索:

 sos::findFn("vif") 

...并且检查的第四页(vif包“HH”中的函数)似乎提供了使用哪种策略的选择:http: //finzi.psych.upenn.edu/R/library/HH/html/vif.html

如果您想编写自己的代码,那么您已经在链接到的页面上拥有了corvif和函数形式的代码。myvifcorvif函数使用myvif基于模型的函数。因此,您可以插入代码来检查第一个参数的类是否存在于返回的方法向量中methods(vcov)

于 2017-02-21T18:32:30.413 回答