Как исправить различные длины вектора, вызванные NA? - PullRequest
1 голос
/ 05 июля 2019

Я следовал этим процедурам для моего набора данных, но только для пробной модели.Проблема в том, что я не смог получить результаты для приложения функции table();вывод выглядит следующим образом:

Ошибка в таблице (true = y, pred = round (fit (probit))): все аргументы должны иметь одинаковую длину

Понятно, что проблема здесь в разной длине векторов, но я не могу понять, почему они имеют разную длину.Поскольку y является вектором зависимой переменной, используемым в оценке пробита, а round(fitted(probit)) является преобразованием результата регрессии, не должны ли они иметь одинаковую длину?Я также заметил, что подогнанный (пробит) «сжимает» мой вектор до 54% ​​длины набора данных.Фактические длины:

length(y)  
#[1] 445815    
length(pred)  
#[1] 243300

Почему это происходит?Какова процедура функции fitted() в R, которая приводит к этому результату?Как решить эту проблему?Я пытался использовать na.omit (набор данных), как предложено здесь , но это не имело никаких эффектов.Тем не менее, может быть еще одна проблема очистки с набором данных, которая приводит результаты к этому.

1 Ответ

0 голосов
/ 06 июля 2019

Вот одна возможность (все еще предположение, но лучше информированное.) Я предполагаю, что аргумент данных для glm был X (как он был назван в связанном документе), но если в противном случае, вы должны настроить код соответственно. Функция complete.cases возвращает вектор логических элементов, рассчитанный по строкам на размерном объекте, таком как матрица или кадр данных, и подходит для выбора:

 table(true = y[complete.cases(X)], 
       pred = round( fitted(probit ))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...