2013-06-30 2 views
0

У меня есть модель, которая выглядит (в части), как это: m = lm(log(y)~ID+x), которые дают мне следующую ошибку:Очень много фиктивных переменных в R 2.15.2 - ошибка решена путем обновления R до 3.0.1?

Error in rep.int(c(1, numeric(n)), n - 1L) : 
    negative length vectors are not allowed 

y является 500000 долго, и ID является фактором 60000 уровней. 500Kx60K> 2^31, что является пределом размера объекта R.

Если я обновляюсь до нового R (3.0.1), будет ли эта проблема решена? или появляется сообщение об ошибке откуда-то еще? (Я не совсем понимаю, как обновить R от Ubuntu 13.04, который я использую.)

EDIT: Фактор на самом деле не предназначен для интерпретации. Этот фактор сродни де-смыслу в регрессии с фиксированными эффектами. Интересны другие компоненты модели (x). Возникает вопрос: каков ответ y на изменение x, контролируя ненаблюдаемую неоднородность во времени? Набор данных представляет собой панель. Я должен добавить, что я не использую plm, потому что основной интересующей моделью будет модель случайных коэффициентов или обобщенная аддитивная модель. Я бы предпочел не вручную исправлять стандартные ошибки после ручного де-значения, и я хотел бы получить приспособленный модельный объект для использования в анализе monte-carlo.

+3

Думаю, вам будет намного лучше преобразовать ваш фактор во что-то со многими, намного меньшими уровнями. Такая переменная почти никогда не будет полезна. Даже если вам удастся запустить модель, результаты не будут значимыми или информативными. – joran

+0

Фактор на самом деле не предназначен для интерпретации. Этот фактор сродни де-смыслу в регрессии с фиксированными эффектами. Интересны другие компоненты модели (не перечисленные здесь, поскольку они не имеют отношения к проблеме). Возникает вопрос: каков ответ 'y' на изменение' x', контролируя ненаблюдаемую неоднородность во времени? Набор данных представляет собой панель. Чтобы понять эти модели, проконсультируйтесь с текстом эконометрики. –

+0

Я должен добавить, что я не использую 'plm', потому что основной интересующей моделью будет модель случайных коэффициентов или обобщенная аддитивная модель. Я бы предпочел не вручную исправлять стандартные ошибки после ручного де-значения, и я хотел бы получить приспособленный модельный объект для использования в анализе monte-carlo. И да, я работаю на кластерном компьютере, который может обрабатывать такую ​​память. –

ответ

0

Чтобы ответить на ограниченный вопрос, да, это количество уровней меньше, чем новый предел размера вектора, который является размером мантиссы (или использовать the word preferred by the IEEE Committee, "significand") для переменных числового класса (64-разрядной с плавающей запятой):

> 500000*60000 > 2^32 
[1] TRUE 
> 500000*60000 > 2^52 
[1] FALSE 

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

a <- numeric(10) 
> a[ 2^56] <- 0 
Error in a[2^56] <- 0 : vector is too large 

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