R: Ошибка множественной регрессии (при необходимости отсутствует true/false)

Мой R sessionInfo() неудачных запусков:

R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils    
[5] datasets  methods   base     

other attached packages:
[1] caper_0.5.2     mvtnorm_1.0-2   MASS_7.3-35    
[4] gsubfn_0.6-6    proto_0.3-10    picante_1.6-2  
[7] nlme_3.1-118    vegan_2.2-1     lattice_0.20-29
[10] permute_0.8-3   ape_3.2        

loaded via a namespace (and not attached):
[1] cluster_1.15.3 grid_3.1.2     Matrix_1.1-4  
[4] mgcv_1.8-3     parallel_3.1.2 tcltk_3.1.2   
[7] tools_3.1.2 

Я работаю над выделением, какие переменные вызывают конкретный сбой при взаимодействии. (Обновление: конкретного предиктора не существует, это просто количество предикторов, превышающих пороговое значение, определяемое числом видов)


У меня есть ошибка, которая, по-видимому, является внутренней для пакета "caper" в R. Точная ошибка:

Error in if (any(stRes > robust)) { : missing value where TRUE/FALSE needed

Where the error occurs on this line of code:
crunchMod <- crunch(f, data = contrasts)

С помощью dataSet1.txt ниже с 7 предикторами, я считаю, что регрессия отлично работает с ), )^2 а также )^3, С помощью dataSet2.txt ниже с 12 предикторами, я считаю, что работает только ")" и оба )^2 а также )^3 выдать ошибку выше. Вот минимальный код, необходимый для воспроизведения моей ошибки:

library(caper)
library(ape)

setwd("Your_Directory")
caperDS <- read.table("dataSet1.txt", header = TRUE) #Also include "dataSet2.txt"

myTrees = read.nexus("Tree1.tre") #Also include "Tree2.tre"

contrasts <- comparative.data(myTrees, caperDS, Species)
f <- as.formula(paste(paste(names(caperDS)[2],"~"), paste(paste("(",paste(names(caperDS)[3:ncol(caperDS)], collapse="+"))),")^3")) #Vary this between ")", ")^2" and ")^3"
crunchMod <- crunch(f, data = contrasts)
print(summary(crunchMod))

Из-за занимаемого места я отредактировал предоставленные ранее данные. Поскольку теперь очевидно, что эта ошибка является общей проблемой (см. Ниже), вы можете найти наборы данных для изучения, указанные в http://cran.r-project.org/web/packages/caper/vignettes/caper.pdf

1 ответ

Решение

Итак, я провел много экспериментов, и ответ почти наверняка заключается в том, что я поместил слишком много предикторов в функцию crunch(), и она "сломалась". Количество предикторов, которые он может принять, зависит от того, сколько предметов присутствует в наборе данных.

Я пришел к такому выводу, потому что не имело значения, какие предикторы я удалил; это было достаточно, чтобы просто удалить несколько наугад. Тем не менее, я не понимаю, почему функция crunch() выдает ошибку из этой ситуации вместо того, чтобы выходить мирно (при условии, что такое поведение намечено). Если бы кто-то мог уточнить это в комментарии / последующем ответе, я был бы признателен.

Другие вопросы по тегам