1

我在 r 的 sjPlot 中使用 tab_model 函数。这个函数通常对我来说很顺利,但是,我注意到输出表以不同于 lmer 输出的顺序对变量进行了奇怪的排序。

问题底部的数据。

这是我的工作代码

#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)

在此处输入图像描述

在此处输入图像描述

我知道一种解决方案是手动重新排序预测变量,但这不是最佳选择,因为我还想为预测变量分配标签,当我尝试同时执行这两种操作时,标签是默认分配的,而不是手动分配的重做,下单。

任何有关为什么我的表格以 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")
4

1 回答 1

0

根本问题不是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上提交问题。

于 2020-01-23T23:53:43.357 回答