2013-08-17 2 views
-2

Я подгоняю естественную сплайн-модель, и я получаю ошибки ниже. Можете ли вы помочь мне понять и решить ошибку ниже?Ошибка при подгонке натурального сплайна в R

Error in double(nx * ncoef) : vector size cannot be NA

In addition: Warning message: In nx * ncoef : NAs produced by integer overflow

К сожалению, я не могу загрузить набор данных и, к сожалению, вы не могли бы повторить мой код. Вместо этого, я попытаюсь объяснить свой код так же, как я могу:

Ниже приведен код, который я бегу, чтобы соответствовать естественный сплайн припадок:

fit.temp <- lm(y ~ ns(x,knots = seq(1, nrow(data), by = 10)),data = data) 

В моем наборе данных, х представляет собой последовательность из 1 к числу строк в данных, которое составляет 424742.

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

Большое спасибо,

+0

Спасибо @ Ferdinand.kraft за ваш комментарий. Обратите внимание, что я не определяю их, это ошибка R. – Sam

ответ

1

Где-то в коде, он пытается умножить два числа, но результат больше, чем максимальное целое число, которое может храниться на вашем компьютере (.Machine$integer.max).

Не вдаваясь в код, ваши входы должны быть слишком большими для этого инструмента. Либо работайте с меньшим data, либо меньше узлов, увеличивая аргумент by до seq. Примерно, (nrow(data)^2/.Machine$integer.max должен дать вам нижнюю границу того, насколько велика by.

+0

Привет @flodel, спасибо за ответ. Данные имеют около 425000 наблюдений. – Sam