При запуске lm
RStudio выдает мне фатальную ошибку и перезапускает мой сеанс. Мои исходные данные содержат несколько столбцов факторов, которые разбиты на несколько сотен фиктивных переменных каждый. Ниже ld.vars
, в котором извлекаются фиктивные переменные, содержит 363 записи. Итак, мое общее уравнение регрессии имеет сотни терминов по RHS; все столбцы, манекены, а затем вычитаем линейно зависимые манекены:
y = (все x переменных, включая каждую фиктивную переменную, автоматически сгенерированные) - (363 линейно зависимых фиктивных переменных)
Является ли длина RHS источником моей фатальной ошибки?
Моя попытка ниже, используя код из этого SO решения .
Код
library(car)
load(‘full_data.rda’)
## build original regression with all dummy variables included
formula <- as.formula(paste0("Closing.Cost ~ ", paste(colnames(full_data[-19]), collapse=' + ')))
reg3 <- lm(formula, full_data)
## this line produces a warning: "prediction from a rank-deficient fit may be misleading"
predict(reg3, newdata=full_data[106,], interval="prediction")
## this line produces an error: "Error in vif.default(reg3) : there are aliased coefficients in the model"
vif(reg3)
## find the linearly dependent variables
ld.vars <- attributes(alias(reg3)$Complete)$dimnames[[1]]
ld.vars <- paste0("`", ld.vars, "`")
## remove the linearly dependent variables
formula.new <- as.formula(paste0(formula, " - ", paste0(ld.vars, collapse = " - "), collapse = " - "))
## run new model: this line produces a fatal error
reg4 <-lm(formula.new, full_data)
## assess collinearity of new regression (haven't been able to run this line)
vif(reg4)
> matrix <- model.matrix(formula, full_data)
> dim(matrix)
[1] 4179 1311
У меня есть несколько факторов с сотнями уровней
> total_levels <- full_data %>% purrr::map(levels) %>% map(length)
> Reduce("+", total_levels)
[1] 1271
От @BenBolker в комментариях я попробовал обобщенный lm
с большим количеством терминов в RHS (2582 столбца, достаточно, чтобы равняться количеству терминов, которые я пытаюсь использовать в моем примере выше). Это работало нормально:
dd <- as.data.frame(matrix(rnorm(4179*2582),ncol=2582)); m1 <- lm(V1 ~ ., data=dd)
Фатальная ошибка
Информация о сеансе (хотя это до запуска фрагмента кода, который генерирует фатальную ошибку):
> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] car_3.0-2 carData_3.0-2 rattle_5.2.0 rpart_4.1-13 caret_6.0-81 lattice_0.20-38 DT_0.5
[8] plotly_4.8.0 generics_0.0.2 broom_0.5.1 lubridate_1.7.4 janitor_1.1.1 ggrepel_0.8.0 rio_0.5.16
[15] data.table_1.12.0 forcats_0.4.0 stringr_1.4.0 dplyr_0.8.0.1 purrr_0.3.1 readr_1.3.1 tidyr_0.8.3
[22] tibble_2.0.1 ggplot2_3.1.0 tidyverse_1.2.1 kableExtra_1.0.1
loaded via a namespace (and not attached):
[1] nlme_3.1-137 RColorBrewer_1.1-2 webshot_0.5.1 httr_1.4.0 tools_3.5.2 backports_1.1.3 R6_2.4.0
[8] lazyeval_0.2.1 colorspace_1.4-0 nnet_7.3-12 withr_2.1.2 tidyselect_0.2.5 curl_3.3 compiler_3.5.2
[15] cli_1.0.1 rvest_0.3.2 xml2_1.2.0 bookdown_0.9 scales_1.0.0 digest_0.6.18 foreign_0.8-71
[22] rmarkdown_1.11 pkgconfig_2.0.2 htmltools_0.3.6 htmlwidgets_1.3 rlang_0.3.1 readxl_1.3.0 rstudioapi_0.9.0
[29] shiny_1.2.0 jsonlite_1.6 crosstalk_1.0.0 ModelMetrics_1.2.2 zip_2.0.0 magrittr_1.5 Matrix_1.2-15
[36] Rcpp_1.0.0 munsell_0.5.0 abind_1.4-5 stringi_1.3.1 yaml_2.2.0 MASS_7.3-51.1 plyr_1.8.4
[43] recipes_0.1.4 grid_3.5.2 promises_1.0.1 crayon_1.3.4 haven_2.1.0 splines_3.5.2 hms_0.4.2
[50] knitr_1.22 pillar_1.3.1 reshape2_1.4.3 codetools_0.2-15 stats4_3.5.2 glue_1.3.0 evaluate_0.13
[57] blogdown_0.11 rpart.plot_3.0.6 modelr_0.1.4 httpuv_1.4.5.1 foreach_1.4.4 cellranger_1.1.0 gtable_0.2.0
[64] assertthat_0.2.0 xfun_0.5 gower_0.2.0 openxlsx_4.1.0 mime_0.6 prodlim_2018.04.18 xtable_1.8-3
[71] later_0.8.0 class_7.3-14 survival_2.43-3 viridisLite_0.3.0 timeDate_3043.102 iterators_1.0.10 lava_1.6.5
[78] ipred_0.9-8