lsmeans: ошибка в eval(predvars, data, env): объект 'location' не найден
Поэтому я запустил Двустороннюю Порядковую Регрессию с CLM с конкретными столбцами: гра, местоположение, виды, и это сработало:
gra.f <- clm(gra ~ location + species + location:species, data = gra)
Теперь я пытаюсь запустить попарно, используя функцию lsmeans:
pwise <- lsmeans(gra.f,
pairwise ~ location + species,
adjust="tukey")
И я получаю: Ошибка в eval(predvars, data, env): объект 'location' не найден
Я не уверен, что знаю, в чем проблема
PS: если я удаляю местоположение и пытаюсь просто сделать вид, ошибка все еще читается как 'местоположение' не найдено
1 ответ
lsmeans
должен восстановить набор данных (включая все значения предикторов), чтобы определить опорную сетку. Сообщение об ошибке, о котором вы сообщаете, связано с невозможностью сделать это. Единственное, что я могу догадаться, - это то, что фрейм данных, используемый для подгонки модели, больше не находится в рабочей области или в пути поиска.
Если вы восстановите набор данных или сделаете его видимым, lsmeans
должен работать снова. Или добавьте , data = gra
к lsmeans()
вызов.
Обновление 1
Оказывается, в коде возникает проблема, связанная с тем фактом, что эта модель является ранг-дефицитной. Как ни странно, я думаю, что это относится к этой записи в NEWS
файл для порядкового пакета:
2014-11-12:
- Reimplementation of formula, model.frame and design matrix
processing motivated by a bug in model.matrix.clm and predict.clm
reported by Russell Lenth 2014-11-07 when implementing lsmeans support
for clm::ordinal.
Я вставил некоторый код, чтобы обойти это, и, по-видимому,
- мой обходной путь работал только до вышеупомянутого обновления
- за последние 4 года не многие пользователи сталкиваются с порядковыми моделями с недостатком ранга; или, по крайней мере, я не слышал от них, если они сделали.
Сейчас я пытаюсь вспомнить, какие строки кода - мой обходной путь, а какие еще нужны... Когда я решу это, я отправлю его в репозиторий github для emmeans, и через месяц или около того emmeans будет обновлен на CRAN (это будет версия больше, чем 1.3.1). Обновление emmeans также заставит lsmeans работать, так как теперь это просто интерфейс для emmeans.
Обновление 2
Кажется, сейчас исправлено:
> lsmeans(gra.f,
+ pairwise ~ location + species,
+ adjust="tukey")
$`lsmeans`
location species lsmean SE df asymp.LCL asymp.UCL
B10 HD nonEst NA NA NA NA
B30 HD nonEst NA NA NA NA
B50 HD nonEst NA NA NA NA
B70 HD -0.2802 0.191 Inf -0.65519 0.0949
Black Pt HD -0.1298 0.325 Inf -0.76730 0.5077
Bolongo HD nonEst NA NA NA NA
... Several rows of output omitted ...
SMA TT nonEst NA NA NA NA
Confidence level used: 0.95
$contrasts
contrast estimate SE df z.ratio p.value
... MANY rows of output omitted ...
B70,HD - Magens,HD nonEst NA NA NA NA
B70,HD - SMA,HD nonEst NA NA NA NA
B70,HD - B10,HS -0.71283 0.225 Inf -3.162 0.4869
B70,HD - B30,HS 0.07174 0.227 Inf 0.316 1.0000
B70,HD - B50,HS -0.74197 0.228 Inf -3.253 0.4093
B70,HD - B70,HS -0.72863 0.226 Inf -3.229 0.4291
B70,HD - Black Pt,HS -0.10537 0.220 Inf -0.478 1.0000
B70,HD - Bolongo,HS nonEst NA NA NA NA
B70,HD - Fortuna,HS -0.64301 0.240 Inf -2.684 0.8656
B70,HD - Lindberg,HS -0.10132 0.220 Inf -0.460 1.0000
B70,HD - Magens,HS 0.02351 0.226 Inf 0.104 1.0000
B70,HD - SMA,HS -0.05100 0.219 Inf -0.232 1.0000
B70,HD - B10,HW nonEst NA NA NA NA
B70,HD - B30,HW nonEst NA NA NA NA
B70,HD - B50,HW nonEst NA NA NA NA
B70,HD - B70,HW nonEst NA NA NA NA
B70,HD - Black Pt,HW nonEst NA NA NA NA
B70,HD - Bolongo,HW nonEst NA NA NA NA
[ reached getOption("max.print") -- omitted 1059 rows ]
P value adjustment: tukey method for comparing a family of 50 estimates
Однако твои проблемы только начинаются. У вас есть большое количество не оцениваемых комбинаций из-за отсутствия данных. Удачи...
Я отправлю обновленную версию на https://github.com/rvlenth/emmeans.