GAM в R: меньше уникальных ковариатных комбинаций, чем df - PullRequest
0 голосов
/ 09 июля 2020

Я пробовал подогнать гаммы к некоторым имеющимся у меня фреймворкам. Все минус одна работа. Это не срабатывает с ошибкой:

Error in smooth.construct.tp.smooth.spec(object, dk$data, dk$knots) : A term has fewer unique covariate combinations than specified maximum degrees of freedom

Я немного посмотрел на inte rnet, но не мог понять, что на самом деле идет не так. Все мои 7 фреймов данных работают без проблем. Затем я запустил epiR::epi.cp(srtm[-c(1,7,8)]), и он дал мне следующий результат:

$cov.pattern
     id n     curv_plan     curv_prof  dem     slope       ca
1     1 1  1.113192e-02  3.991046e-03 3909 43.601479 5.225853
2     2 1 -2.686749e-03  3.474989e-03 3312 35.022511 4.418310
3     3 1 -1.033450e-02 -4.626922e-03 3326 36.678623 4.421465
4     4 1 -5.439283e-03  2.066148e-03 4069 31.501045 3.887526
5     5 1 -2.602015e-03 -1.249511e-04 3021 37.199219 5.010560
6     6 1  1.068216e-03  1.216902e-03 2844 44.694374 4.852220
7     7 1 -1.855443e-02 -5.965539e-03 2841 42.753750 5.088554
8     8 1  2.363193e-03  2.353357e-03 2833 33.160995 4.652209
9     9 1  2.169674e-02  1.049735e-02 2964 32.311535 4.671970
10   10 1  2.850910e-02  9.416230e-03 2956 50.791847 3.496096
11   11 1 -1.932028e-02  4.949751e-04 2794 38.714302 4.217102
12   12 1 -1.372750e-03 -4.437230e-03 3799 48.356312 4.597039
13   13 1  1.154181e-04 -4.114155e-03 3808 54.669777 3.518823
14   14 1  2.743768e-02  7.829833e-03 3580 23.674162 3.268744
15   15 1  7.216539e-03  9.818082e-04 3969 29.421440 4.354250
16   16 1  2.385139e-03  6.333927e-04 3635 10.555381 4.905733
17   17 1 -1.129411e-02  2.719948e-03 2805 29.195084 4.807369
18   18 1  4.584329e-04 -1.497223e-03 3676 32.754879 3.729304
19   19 1  1.883965e-03  4.189690e-03 3165 30.973505 4.833158
20   20 1 -5.350136e-03 -2.615470e-03 2745 32.534698 4.420852
21   21 1  1.484253e-02 -1.245213e-03 3872 26.113234 4.045357
22   22 1 -2.449377e-02 -5.045668e-04 2931 31.060991 5.170872
23   23 1 -2.962795e-02 -9.271557e-03 2917 21.680889 4.547461
24   24 1 -2.487545e-02 -7.834328e-03 2736 41.775677 4.543325
25   25 1  2.890568e-03 -2.040353e-03 2577 47.003765 3.739546
26   26 1 -5.119631e-03  8.869720e-03 3401 38.519680 5.428564
27   27 1  6.171266e-03 -6.515175e-04 2687 36.678623 4.152842
28   28 1 -8.297552e-03 -7.053435e-03 3678 39.532673 4.081311
29   29 1  8.652663e-03  2.394378e-03 3515 33.895370 4.220177
30   30 1 -2.528805e-03 -1.293259e-03 3404 42.548138 4.266330
31   31 1  1.899994e-02  6.367806e-03 3191 41.696201 3.300749
32   32 1 -2.243623e-02 -1.866033e-04 2433 34.162479 5.364681
33   33 1 -6.934012e-03  9.280805e-03 2309 32.667160 5.650699
34   34 1 -1.121149e-02  6.376335e-05 2188 31.119059 4.706416
35   35 1 -1.429000e-02  5.299596e-04 2511 34.543365 4.538456
36   36 1 -7.168889e-03  1.301791e-03 2625 30.826660 4.059711
37   37 1 -4.226461e-03  7.440552e-03 2830 33.398251 4.941027
38   38 1 -2.635832e-03  8.748529e-03 3378 45.972672 4.861779
39   39 1 -2.007920e-02 -8.081778e-03 3281 31.735376 5.173269
40   40 1 -3.453595e-02 -6.867430e-03 2690 47.515182 4.935358
41   41 1  1.698363e-03 -8.296107e-03 2529 42.224693 4.386349
42   42 1  5.257193e-03  1.021242e-02 2571 43.070564 4.194372
43   43 1  6.968817e-03  5.538784e-03 2581 36.055031 4.209373
44   44 1 -7.632907e-04  2.803704e-04 2582 28.257311 4.230427
45   45 1 -3.468894e-03 -9.099842e-04 2409 29.421440 4.190946
46   46 1  1.879089e-02  6.532978e-03 3733 41.535984 4.032614
47   47 1 -1.076225e-03 -1.138945e-03 2712 39.260731 4.580621
48   48 1 -5.306205e-03  2.667941e-03 3446 34.250553 4.925404
49   49 1 -5.380515e-03 -2.595619e-03 3785 50.561493 4.642792
50   50 1 -2.571232e-03 -2.063937e-03 3768 46.160892 4.728879
51   51 1 -7.638110e-03 -2.432463e-03 3413 32.401161 5.058373
52   52 1 -2.950254e-03 -2.034031e-04 3852 32.543564 4.443869
53   53 1 -2.702386e-03 -1.776183e-03 2483 31.002720 3.879390
54   54 1 -3.892425e-02 -2.266178e-03 2225 26.126318 5.750985
55   55 1 -2.644659e-03  3.034660e-03 2192 32.103516 4.949506
56   56 1 -2.862503e-02  3.673996e-04 2361 23.930893 5.181818
57   57 1  6.263880e-03 -7.725377e-04 3780 17.752790 4.890797
58   58 1  1.054093e-03 -1.563014e-03 3089 36.422310 4.520845
59   59 1  9.474340e-04 -3.901043e-03 3155 42.552841 4.265886
60   60 1  5.569567e-03 -1.770366e-04 3516 13.166321 4.772187
61   61 1 -8.342760e-03 -9.908290e-03 3097 36.815479 5.346615
62   62 1 -1.422498e-03 -1.645628e-03 2865 29.802414 4.131463
63   63 1  4.523963e-02  1.067406e-02 2163 36.154739 3.369432
64   64 1 -1.164162e-02  6.808200e-04 2316 19.610609 4.634536
65   65 1 -8.043590e-03  9.395104e-03 2614 44.298817 3.983136
66   66 1 -1.925332e-02 -4.521391e-03 2035 31.205780 4.134195
67   67 1 -1.429050e-02  5.435983e-03 2799 38.876656 4.180761
68   68 1  6.935605e-04  3.015038e-03 2679 37.863647 4.213497
69   69 1 -5.062089e-03  5.961242e-04 2831 32.401161 3.729215
70   70 1 -3.617065e-04 -2.874465e-03 3152 45.871994 4.703659
71   71 1 -4.216370e-02 -4.917050e-03 3726 25.376934 4.614913
72   72 1 -2.184333e-02 -2.840071e-03 3610 43.138550 4.237120
73   73 1 -1.735273e-02 -2.199261e-03 3339 33.984894 4.811754
74   74 1  1.929157e-02  5.358084e-03 3447 32.356407 3.355368
75   75 1 -4.118797e-02 -2.408211e-03 3251 22.373844 5.160147
76   76 1 -1.393304e-02  7.900328e-05 3297 22.090260 4.724728
77   77 1 -3.078095e-02 -5.535597e-03 3143 37.298687 4.625203
78   78 1  1.717030e-02 -1.120720e-03 3617 37.965389 4.627342
79   79 1 -5.965119e-04 -5.377157e-04 3689 28.360373 4.767213
80   80 1  7.843294e-03 -9.579902e-04 3676 48.356312 3.907819
81   81 1  5.994634e-03  2.034169e-03 2759 25.142431 3.980591
82   82 1 -1.323012e-02  2.393529e-03 3972 26.880308 5.107575
83   83 1  6.312347e-03  2.877600e-04 3323 32.167103 3.496723
84   84 1 -1.180464e-02  4.438243e-03 3790 40.369972 4.081389
85   85 1 -8.333334e-03  4.009274e-03 3248 14.931417 4.881107
86   86 1  2.016023e-03 -5.707344e-04 3994 18.305449 4.278613
87   87 1 -5.515654e-03 -8.373593e-04 3368 40.703190 4.229169
88   88 1  8.931696e-03  1.677515e-03 4651 30.133842 4.327270
89   89 1  1.962347e-04 -7.458636e-04 5075 57.352509 3.263017
90   90 1 -2.880805e-02 -5.200595e-04 2645 11.976726 5.634262
91   91 1 -2.101875e-02 -5.110677e-03 3109 34.218582 4.925558
92   92 1 -8.390786e-03 -1.188547e-02 3667 39.895481 4.249029
93   93 1 -1.366958e-02  9.873455e-04 2827 22.636129 5.269634
94   94 1  1.004551e-02  5.205147e-04 3667 44.028976 3.993555
95   95 1  5.892557e-03 -5.482296e-04 2416  5.385977 4.614692
96   96 1 -1.662132e-02 -9.946494e-04 3806 42.599808 3.951163
97   97 1 -7.977792e-03  5.937776e-03 3470 28.888371 3.120762
98   98 1 -2.408042e-02 -2.647421e-03 2975 16.228737 4.227977
99   99 1 -1.191509e-02 -2.014583e-03 2461 30.051607 4.361413
100 100 1  1.110316e-02  2.506189e-04 3362 29.517509 4.591039
101 101 1  2.010373e-03  4.185408e-04 5104 17.387333 3.642855
102 102 1 -3.218945e-03  1.004196e-02 4113 44.448421 3.282414
103 103 1  2.438254e-03  2.551999e-03 3234 31.205780 3.844411
104 104 1 -1.178511e-02  2.775465e-04 1864  1.350224 3.875072
105 105 1 -9.511201e-04 -1.446065e-03 2351 22.406872 4.392300
106 106 1 -4.563018e-03 -5.890041e-03 3141 24.862123 3.998985
107 107 1 -1.471223e-02  5.965497e-03 3765 25.363234 3.661456
108 108 1 -5.857890e-03 -9.363544e-03 2272 22.878105 5.105480
109 109 1  1.369277e-02  1.019289e-02 4016 44.848000 4.092690
110 110 1 -8.784844e-03  3.358194e-03 3293 32.543564 4.115062
111 111 1 -5.148044e-03  5.372697e-03 3038 31.772562 3.626687
112 112 1 -1.556184e+35  5.799786e+34 4961 29.421440 3.020591
113 113 1  3.831991e-03  1.570888e-03 2069 28.821898 3.790284
114 114 1  8.289138e-04  6.439757e-04 2154 21.045721 3.959267
115 115 1 -4.800863e-03  3.194520e-03 5294 45.660866 3.701611
116 116 1  2.974254e-02  1.197812e-02 4380 31.670097 3.877057
117 117 1  1.137725e-02 -1.082659e-02 5172 18.774675 3.572600
118 118 1 -4.678526e-03  7.448288e-03 2257 39.260731 4.227000
119 119 1 -4.655881e-03 -1.119303e-03 3233 30.205467 5.613868
120 120 1 -4.827522e-03 -4.766134e-03 3414 42.974857 3.831894
121 121 1 -8.568994e-04  1.053632e-03 1750 29.421440 4.132886
122 122 1  1.212121e-02  0.000000e+00 5018 20.136303 3.669850
123 123 1 -4.711660e-03 -2.261143e-03 3013 45.007954 3.622240
124 124 1 -1.226328e-02  4.688181e-04 3842 26.880308 3.098333
125 125 1  3.438910e-03  1.441129e-03 3470 11.386165 4.552782
126 126 1  1.192164e-02 -1.295839e-03 3473 22.684824 4.748498
127 127 1 -1.960781e-40  0.000000e+00 4155 90.000000 2.960569
128 128 1  2.124726e-04  1.945100e-03 2496 32.103516 5.242211
129 129 1  5.669804e-03 -4.589476e-03 2577 35.398876 4.271112
130 130 1 -8.838220e-03 -9.496282e-04 4921 14.506372 4.088247
131 131 1  1.009090e-02 -2.243944e-03 3385 38.372120 4.067030
132 132 1  5.630660e-03 -8.632211e-04 4003 33.322365 3.776054
133 133 1 -9.103803e-03 -6.322661e-03 2758 47.934212 3.739807
134 134 1  6.225513e-03 -1.824928e-03 3925 37.085732 3.389725
135 135 1 -1.303080e-03  3.580316e-03 2978 27.432941 4.345174
136 136 1  1.355920e-02  3.468190e-03 5058 57.797195 3.739124
137 137 1  2.092464e-02 -3.244962e-04 2400  3.931096 3.032193
138 138 1  5.691811e-02 -7.933985e-04 3885 15.069956 3.414036
139 139 1  8.052407e-05 -3.197287e-03 3493 33.993008 3.881695
140 140 1 -1.892967e-02 -5.049255e-03 2985 24.904482 4.417928
141 141 1  2.278842e-02  1.188287e-02 3666 31.670097 3.313449
142 142 1  1.496110e-02  2.181270e-03 3702 30.498932 3.171413
 [ reached 'max' / getOption("max.print") -- omitted 18 rows ]

$id
  [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33
 [34]  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66
 [67]  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99
[100] 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
[133] 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160

Я попытался уменьшить количество узлов в вызове gam, но тоже не преуспел ... идея?

Я подхожу к игре, используя следующую строку:

mgcv::gam(slide ~ s(curv_plan) + s(curv_prof) + s(dem) + s(slope) + s(ca), data = dataframes_new[[7]], family = binomial)

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Я столкнулся с той же проблемой. Причина root заключалась в том, что некоторые из моих категориальных переменных имели меньше уровней, чем k в моей спецификации формулы. Приведу пример:

Предположим, что один из терминов в моей спецификации формулы был:

s(I(pmin(example_variable, 120)), k = 5)

, а данные в моей example_variable имели 3 уровня (скажем, «да», «нет» , "может быть"). Это привело бы к вышеупомянутой ошибке.

В моем случае я решил ее, создав дополнительные уровни в своих данных (я создавал тестовые данные для модульного теста). В других случаях это можно решить, убедившись, что k не превышает количество уровней в ваших категориальных переменных.

Если вы используете категориальные переменные, проверьте, может ли причина root будет таким же для вас.

Я нашел решение своей проблемы, прочитав эти:

https://stat.ethz.ch/pipermail/r-sig-ecology/2011-May/002148.html

https://stat.ethz.ch/pipermail/r-help/2007-October/143569.html

1 голос
/ 10 июля 2020

Ошибка означает, что вы пытались создать базисное расширение сплайна тонкой пластины с большим количеством базисных функций, чем переменная, из которой должно быть выполнено расширение, имеет уникальные значения.

Поскольку вы не показываете модель примерный код, мы не можем сказать больше, чем то, что одно из сглаживаний в модели, которую вы пытались подогнать, не имело достаточно уникальных значений для значения k, которое вы указали или использовали c (если вы не установили k использовалось значение по умолчанию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...