Предикторы в случайном порядке в sjPlot с использованием tab_model (r) (теперь с воспроизводимым кодом) - PullRequest
1 голос
/ 24 января 2020

Я использую функцию tab_model в sjPlot в r. Эта функция обычно работает для меня гладко, однако я заметил, что выходная таблица странным образом упорядочивает переменные в порядке, отличном от того, который есть в выводе lmer.

Данные внизу вопроса.

Вот мой рабочий код r

#Packages that are currently loaded
library(lmerTest)
library(sjPlot)
library(sjlabelled)

##Run model

model <- lmer(depvar ~ predictor1*predictor2 + covariate1 + covariate2 + (1|id), data = exampledata)
summary(model)

#Make table

table <- tab_model(model)

enter image description here

enter image description here

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

Любые указания о том, почему моя таблица печатается в порядке, отличном от вывода lmer, будут наиболее полезны!

Заранее благодарим вас за любые идеи, которые у вас могут быть!

Майкл


Данные:

exampledata <- structure(list(X = c(142L, 51L, 720L, 730L, 664L, 826L, 605L, 
587L, 216L, 75L, 862L, 928L, 935L, 972L, 724L, 840L, 506L, 771L, 
393L, 14L, 592L, 62L, 635L, 572L, 800L, 36L, 744L, 971L, 166L, 
649L, 901L, 975L, 723L, 145L, 895L, 1017L, 677L, 570L, 106L, 
451L, 1018L, 13L, 735L, 579L, 433L, 586L, 56L, 363L, 889L, 504L
), id = c(202L, 139L, 662L, 671L, 610L, 751L, 566L, 554L, 270L, 
153L, 773L, 819L, 831L, 858L, 665L, 759L, 494L, 707L, 402L, 110L, 
556L, 145L, 592L, 542L, 729L, 130L, 683L, 858L, 221L, 600L, 797L, 
862L, 665L, 204L, 793L, 889L, 624L, 541L, 175L, 453L, 889L, 110L, 
678L, 548L, 440L, 552L, 141L, 381L, 789L, 492L), predictor1 = c(1L, 
0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 1L, 
0L, 0L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 
0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L), predictor2 = c(0.5, -0.5, -0.5, 0.5, 0.5, 0.5, -0.5, 0.5, 
0.5, -0.5, -0.5, -0.5, 0.5, 0.5, -0.5, -0.5, 0.5, -0.5, 0.5, 
-0.5, -0.5, -0.5, -0.5, 0.5, -0.5, 0.5, -0.5, 0.5, 0.5, 0.5, 
0.5, -0.5, -0.5, 0.5, 0.5, 0.5, 0.5, -0.5, -0.5, 0.5, 0.5, -0.5, 
0.5, -0.5, 0.5, 0.5, -0.5, -0.5, -0.5, 0.5), covariate1 = c(2L, 
-1L, -1L, -1L, -1L, -1L, -1L, 2L, 2L, -1L, 2L, -1L, -1L, -1L, 
-1L, -1L, -1L, -1L, -1L, -1L, 2L, 2L, -1L, -1L, -1L, -1L, -1L, 
-1L, -1L, -1L, 2L, 2L, -1L, -1L, 2L, -1L, -1L, -1L, -1L, -1L, 
-1L, -1L, -1L, -1L, 2L, 2L, -1L, 2L, -1L, 2L), covariate2 = c(0L, 
-1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 0L, 1L, -1L, 1L, 1L, -1L, 
-1L, 1L, 1L, -1L, 0L, 0L, 1L, -1L, 1L, -1L, -1L, 1L, 1L, -1L, 
0L, 0L, 1L, -1L, 0L, -1L, -1L, 1L, -1L, 1L, -1L, -1L, 1L, -1L, 
0L, 0L, 1L, 0L, 1L, 0L), depvar = c(25, 16.6666666666667, 66.6666666666667, 
33.3333333333333, 41.6666666666667, 0, 8.33333333333333, 25, 
83.3333333333333, 58.3333333333333, 91.6666666666667, 33.3333333333333, 
41.6666666666667, 0, 0, 41.6666666666667, 33.3333333333333, 50, 
100, 16.6666666666667, 100, 66.6666666666667, 25, 66.6666666666667, 
50, NA, 16.6666666666667, 0, 8.33333333333333, 16.6666666666667, 
75, 58.3333333333333, 0, 41.6666666666667, 50, 16.6666666666667, 
16.6666666666667, 0, 50, 50, 25, 8.33333333333333, 41.6666666666667, 
41.6666666666667, 41.6666666666667, 50, 66.6666666666667, 58.3333333333333, 
50, 50)), row.names = c(NA, -50L), class = "data.frame")

1 Ответ

0 голосов
/ 24 января 2020

Основная проблема не sjPlot, а parameters::model_parameters. Это то, что используется под капотом и дает странный порядок:

parameters::model_parameters(model)
Parameter               | Coefficient |   SE |           95% CI |     t |    df |      p
----------------------------------------------------------------------------------------
(Intercept)             |       41.08 | 3.82 | [ 33.59,  48.58] | 10.75 | 42.14 | < .001
predictor1              |        3.62 | 2.72 | [ -1.72,   8.95] |  1.33 |  2.78 | > .1  
predictor1 * predictor2 |       -2.60 | 5.46 | [-13.31,   8.11] | -0.48 |  2.74 | > .1  
covariate1              |        8.85 | 2.67 | [  3.62,  14.09] |  3.31 | 41.15 | < .001
predictor2              |       -5.78 | 7.68 | [-20.84,   9.28] | -0.75 | 41.27 | > .1  
covariate2              |        1.39 | 4.34 | [ -7.13,   9.90] |  0.32 | 40.89 | > .1

Это нарушение порядка происходит где-то в недрах parameters (особенно в parameters:::.extract_parameters_mixed) , Я предполагаю, что это ошибка. Проблема может быть подана на Github .

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