lme: Ошибка вsolve.default(оценки[dimE[1] - (p:1), dimE[2] - (p:1), drop = FALSE])

Когда я подойду к следующей модели

fullmod <-lme(rrF~Old_N_dep+Overstory_old+Altitude+MAT+MAP+EIV_R+EIV_F+Overstory_diff+SCA_old+SCA_diff,data = regdataOver,random = ~ 1|PlotNR, method = "REML")

Я получаю эту ошибку:

Error in na.fail.default(list(rrF = c(-0.0380393284017694, -0.0110047996186618,  : 
  missing values in object

Это должно быть что-то похожее на то, что я вижу здесь, так как у меня также нет реальных отсутствующих значений в 'rrF'. Я попытался решить эту проблему, добавив na.action=na.exclude в функцию модели, как это предлагается, но получаю другую ошибку:

> fullmod <-  lme(rrF ~ Old_N_dep+Overstory_old+Altitude+MAT+MAP+EIV_R+EIV_F+Overstory_diff+SCA_old+SCA_diff, data = regdataOver,random = ~ 1|PlotNR, method = "REML", na.action=na.exclude)
Error in solve.default(estimates[dimE[1] - (p:1), dimE[2] - (p:1), drop = FALSE]) : 
  system is computationally singular: reciprocal condition number = 8.17376e-17

Я действительно не знаю, в чем проблема с моими данными.

Матрица корреляции (Спирмен) (ОБНОВЛЕНИЕ):

               Altitude Initial_survey   MAT   MAP Old_N_dep EIV_R EIV_N EIV_F Overstory_old Overstory_diff SCA_old SCA_diff
Altitude              1                                                                                                     
Initial_survey     0.35              1                                                                                      
MAT               -0.42          -0.13     1                                                                                
MAP                0.55           0.27 -0.23     1                                                                          
Old_N_dep          0.35           0.97 -0.04  0.36         1                                                                
EIV_R              0.21           0.13  -0.4   0.2      0.13     1                                                          
EIV_N              0.07           0.09 -0.34  0.24      0.09   0.7     1                                                    
EIV_F             -0.12          -0.01 -0.06 -0.03     -0.01  0.19  0.49     1                                              
Overstory_old     -0.08          -0.07 -0.08  0.19     -0.02  0.31  0.37  0.12             1                                
Overstory_diff     0.19           0.06 -0.02  0.17      0.06  0.01  0.05  0.03         -0.54              1                 
SCA_old            0.39           0.12  -0.5  0.23      0.09  0.36  0.24 -0.01          0.08           0.14       1         
SCA_diff          -0.13          -0.07  0.09 -0.01     -0.07 -0.12  0.01  0.02             0           0.07   -0.43        1

person Gabriele Midolo    schedule 28.02.2017    source источник


Ответы (1)


Сначала проверьте, сильно ли коррелирует одна из ваших переменных с другой. Для этого типа

cor(regdataOver)

Если есть 2 переменные, коэффициент корреляции которых близок к 1 или -1, то у вас есть ситуация, когда одна переменная может быть линейно выражена через другую, и вы не можете инвертировать свою матрицу (матрицу регрессора).

person Eligijus Bujokas    schedule 28.02.2017
comment
Спасибо, Элигиюс, но я уже проверял это раньше. Я уже исключил две переменные из модели, которые показали высокое значение корреляции Спирмена с двумя другими переменными. - person Gabriele Midolo; 28.02.2017
comment
Можете ли вы дать вывод сводки (regdataOver)? - person Eligijus Bujokas; 28.02.2017
comment
Кроме того, я вижу, что есть переменные SCA_DIFF и SCA_OLD, которые могут быть линейной комбинацией. Попробуйте исключить один из этих - person Eligijus Bujokas; 28.02.2017
comment
Обновлено в основном тексте. Исключение «SCA_old» и «Overstory_old» из модели все равно дает мне ту же ошибку. - person Gabriele Midolo; 28.02.2017