Reputation: 23
I was doing a regression analysis and made regression model with this code,
regrs_2 <- lm(gii.score ~ hof.pdi + hof.idv + hof.mas + hof.uai + hof.ltowvs +
hof.ivr + ctnt.dummy.asia + ctnt.dummy.europe + ctnt.dummy.noram +
ctnt.dummy.africa + ctnt.dummy.oceania, data = data)
library(sjPlot)
plot_model(regrs_2, type="diag")
and run this code:
sjPlot::plot_model(regrs_2,type="diag")
At this time, an error occurred, saying:
Error in data.frame(x = fitted_, y = res_) :
arguments imply differing number of rows: 61, 60**
But when I changed the type=
argument of plot_model
from "diag"
to "std"
or "est"
there is no error.
How can I resolve this problem?
This is my data
:
structure(list(X = c(4L, 5L, 11L, 31L, 32L, 41L, 57L, 91L, 93L,
94L, 1L, 2L, 3L, 6L, 7L, 8L, 9L, 10L, 12L, 13L, 14L, 15L, 16L,
17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L,
30L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 42L, 43L, 44L, 45L,
46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 58L, 59L,
60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L,
73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L,
86L, 87L, 88L, 89L, 90L, 92L), ctnt = structure(c(6L, 3L, 6L,
5L, 3L, 6L, 6L, 3L, 6L, 6L, 2L, 2L, 2L, 4L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 1L, 2L, 1L, 1L, 1L, 1L,
1L, 3L, 3L, 5L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 3L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 2L, 2L,
2L, 2L, 1L, 1L, 3L, 1L, 2L, 3L, 3L, 3L, 3L), .Label = c("남아메리카",
"북아메리카", "아시아", "아프리카", "오세아니아", "유럽"), class = "factor"),
c_code = c(7L, 20L, 34L, 61L, 62L, 90L, 351L, 971L, 994L,
995L, 1L, 1L, 1L, 27L, 30L, 31L, 32L, 33L, 36L, 39L, 40L,
41L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 51L, 52L, 54L, 55L,
56L, 57L, 58L, 60L, 63L, 64L, 65L, 66L, 81L, 82L, 84L, 86L,
91L, 92L, 98L, 212L, 213L, 223L, 226L, 233L, 234L, 250L,
251L, 255L, 256L, 260L, 263L, 352L, 353L, 354L, 355L, 356L,
357L, 358L, 359L, 370L, 371L, 372L, 373L, 374L, 375L, 380L,
381L, 382L, 385L, 387L, 420L, 421L, 502L, 503L, 506L, 507L,
593L, 598L, 852L, 868L, 876L, 880L, 962L, 966L, 972L), country = structure(c(73L,
27L, 80L, 6L, 43L, 86L, 71L, 3L, 8L, 33L, 16L, 25L, 87L,
79L, 37L, 62L, 11L, 32L, 40L, 47L, 72L, 82L, 7L, 36L, 24L,
81L, 65L, 70L, 34L, 68L, 58L, 4L, 13L, 17L, 19L, 91L, 55L,
69L, 63L, 77L, 84L, 49L, 51L, 92L, 18L, 42L, 66L, 44L, 61L,
2L, 56L, 15L, 35L, 64L, 74L, 30L, 83L, 88L, 93L, 94L, 54L,
45L, 41L, 1L, 57L, 22L, 31L, 14L, 53L, 52L, 29L, 59L, 5L,
10L, 89L, 76L, 60L, 21L, 12L, 23L, 78L, 38L, 28L, 20L, 67L,
26L, 90L, 39L, 85L, 48L, 9L, 50L, 75L, 46L), .Label = c("Albania",
"Algeria", "Arab countries", "Argentina", "Armenia", "Australia",
"Austria", "Azerbaijan", "Bangladesh", "Belarus", "Belgium",
"Bosnia", "Brazil", "Bulgaria", "Burkina Faso", "Canada",
"Chile", "China", "Colombia", "Costa Rica", "Croatia", "Cyprus",
"Czech Rep", "Denmark", "Dominican Rep", "Ecuador", "Egypt",
"El Salvador", "Estonia", "Ethiopia", "Finland", "France",
"Georgia", "Germany", "Ghana", "Great Britain", "Greece",
"Guatemala", "Hong Kong", "Hungary", "Iceland", "India",
"Indonesia", "Iran", "Ireland", "Israel", "Italy", "Jamaica",
"Japan", "Jordan", "Korea South", "Latvia", "Lithuania",
"Luxembourg", "Malaysia", "Mali", "Malta", "Mexico", "Moldova",
"Montenegro", "Morocco", "Netherlands", "New Zealand", "Nigeria",
"Norway", "Pakistan", "Panama", "Peru", "Philippines", "Poland",
"Portugal", "Romania", "Russia", "Rwanda", "Saudi Arabia",
"Serbia", "Singapore", "Slovak", "South Africa", "Spain",
"Sweden", "Switzerland", "Tanzania", "Thailand", "Trinidad and Tobago",
"Turkey", "U.S.A.", "Uganda", "Ukraine", "Uruguay", "Venezuela",
"Vietnam", "Zambia", "Zimbabwe"), class = "factor"), hof.pdi = c(44L,
NA, 24L, 11L, 39L, 31L, 28L, 40L, NA, NA, 12L, NA, 13L, NA,
26L, 11L, 30L, 33L, 17L, 20L, 43L, 9L, 2L, 10L, 4L, 7L, 7L,
33L, 10L, 29L, 41L, 19L, 34L, 28L, 32L, 41L, 1L, 45L, 5L,
37L, 29L, 21L, 26L, 35L, 40L, 38L, 22L, 25L, 35L, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 13L, 6L, NA, NA, 23L,
NA, 8L, 35L, 14L, 15L, 13L, NA, NA, NA, NA, 42L, NA, 36L,
NA, 24L, 1L, 46L, 31L, 10L, 46L, 39L, 27L, 33L, 18L, 16L,
40L, NA, NA, 3L), hof.idv = c(21L, NA, 25L, 46L, 4L, 19L,
13L, 20L, NA, NA, 44L, NA, 47L, NA, 17L, 44L, 40L, 38L, 44L,
41L, 14L, 35L, 28L, 45L, 39L, 38L, 36L, 32L, 34L, 6L, 14L,
23L, 20L, 10L, 3L, 2L, 12L, 15L, 42L, 9L, 9L, 23L, 7L, 9L,
9L, 24L, 4L, 22L, 23L, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 32L, 37L, NA, NA, 30L, NA, 33L, 14L, 32L, 37L, 32L,
NA, NA, NA, NA, 11L, NA, 16L, NA, 29L, 26L, 31L, 8L, 5L,
1L, 43L, 18L, 11L, 6L, 21L, 9L, NA, NA, 27L), hof.mas = c(11L,
NA, 16L, 33L, 20L, 19L, 9L, 27L, NA, NA, 26L, NA, 34L, NA,
31L, 2L, 28L, 17L, 44L, 40L, 16L, 40L, 42L, 37L, 3L, 24L,
43L, 36L, 37L, 16L, 39L, 30L, 23L, 7L, 36L, 41L, 25L, 36L,
32L, 22L, 10L, 46L, 14L, 15L, 37L, 30L, 25L, 17L, 27L, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 25L, 38L, NA, NA,
21L, NA, 6L, 15L, 4L, 45L, 8L, NA, NA, NA, NA, 17L, NA, 15L,
NA, 31L, 1L, 12L, 15L, 5L, 18L, 35L, 13L, 31L, 32L, 38L,
29L, NA, NA, 21L), hof.uai = c(43L, NA, 37L, 17L, 14L, 36L,
3L, 27L, NA, NA, 14L, NA, 13L, NA, 4L, 18L, 42L, 37L, 35L,
30L, 39L, 20L, 28L, 9L, 6L, 7L, 16L, 41L, 25L, 38L, 35L,
37L, 31L, 37L, 33L, 31L, 10L, 12L, 15L, 32L, 24L, 40L, 36L,
8L, 8L, 11L, 28L, 21L, 27L, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 28L, 9L, NA, NA, 44L, NA, 21L, 36L, 25L, 23L,
22L, NA, NA, NA, NA, 40L, NA, 33L, NA, 29L, 17L, 2L, 42L,
37L, 37L, 26L, 1L, 7L, 19L, 5L, 22L, NA, NA, 34L), hof.ltowvs = c(50L,
43L, 29L, 8L, 38L, 27L, 14L, 9L, 37L, 22L, 21L, 2L, 12L,
19L, 26L, 41L, 51L, 39L, 35L, 37L, 32L, 47L, 36L, 31L, 20L,
33L, 20L, 22L, 52L, 11L, 10L, 7L, 25L, 16L, 2L, 5L, 24L,
13L, 18L, 46L, 17L, 55L, 1L, 34L, 54L, 31L, 30L, 3L, 3L,
12L, 7L, 13L, 23L, 2L, 6L, NA, 19L, 10L, 15L, 4L, 40L, 10L,
14L, 37L, 28L, NA, 22L, 42L, 51L, 42L, 51L, 45L, 37L, 50L,
53L, 32L, 48L, 35L, 44L, 44L, 49L, NA, 7L, NA, NA, NA, 12L,
37L, 2L, NA, 28L, 5L, 21L, 22L), hof.ivr = c(10L, 25L, 29L,
50L, 24L, 33L, 20L, 21L, 11L, 19L, 47L, 37L, 47L, 43L, 34L,
47L, 40L, 32L, 18L, 17L, 10L, 45L, 43L, 48L, 49L, 53L, 38L,
16L, 26L, 31L, 58L, 42L, 41L, 47L, 55L, 2L, 40L, 27L, 52L,
31L, 30L, 27L, 16L, 22L, 12L, 14L, 1L, 26L, 13L, 19L, 28L,
8L, 51L, 56L, 23L, 31L, 24L, 35L, 27L, 15L, 39L, 44L, 46L,
5L, 45L, 49L, 40L, 6L, 6L, 3L, 6L, 9L, NA, 5L, 4L, 15L, 10L,
20L, 29L, 16L, 15L, NA, 57L, NA, NA, NA, 36L, 7L, 54L, NA,
10L, 28L, 35L, NA), gii.score = c(39.32, 28.91, 49.07, 55.22,
29.79, 37.81, 46.61, 40.06, 30.1, 33.83, 55.73, 30.6, 60.1,
37.45, 40.28, 61.58, 50.91, 53.59, 43, 46.4, 38.2, 68.3,
54.07, 62.42, 57.7, 62.4, 53.8, 40.16, 57.05, 34.87, 38.03,
34.3, 34.95, 41.2, 36.41, 22.77, 45.98, 31.05, 55.92, 59.36,
38.1, 53.97, 56.26, 38.35, 47.47, 31.74, 23.07, 28.37, 33.19,
24.38, 28.37, 28.68, 28.04, 23.72, 30.09, 24.17, 27, 27.65,
24.64, 22.52, 59.02, 59.13, 57.02, 30.74, 50.48, 43.51, 59.97,
42.16, 42.26, 45.51, 52.81, 40.53, 37.31, 38.23, 36.45, 36.47,
41.23, 41.7, 32.31, 51.32, 42.99, 28.84, 29.31, 38.59, 36.8,
26.87, 35.76, 57.23, 32.18, 29.95, 23.71, 33.78, 40.65, 53.54
), ctnt.dummy.asia = c(0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 1, 1, 1, 1), ctnt.dummy.europe = c(1, 0, 1, 0, 0, 1,
1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ctnt.dummy.noram = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0), ctnt.dummy.africa = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ctnt.dummy.oceania = c(0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), ctnt.dummy.souam = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0)), row.names = c(NA,
-94L), class = "data.frame")
Upvotes: 2
Views: 502
Reputation: 72994
Inspecting the code of the sjPlot::plot_model
function reveals that sjPlot:::plot_diag_linear
method is used and yields the error.
# sjPlot:::plot_diag_linear(regrs_2, geom.colors="red", dot.size=1, line.size=1)
# # Error in data.frame(x = fitted_, y = res_) :
# # arguments imply differing number of rows: 61, 60
Going a level deeper into the code we get to the plot list, where sjPlot:::diag_qq
is failing.
sjPlot:::diag_vif(regrs_2)
# sjPlot:::diag_qq(regrs_2, dot.size=1, line.size=1) ## FAILS!
# # Error in data.frame(x = fitted_, y = res_) :
# # arguments imply differing number of rows: 61, 60
sjPlot:::diag_norm(regrs_2, geom.colors="red")
# Warning message:
# Removed 101 row(s) containing missing values (geom_path).
sjPlot:::diag_ncv(regrs_2, dot.size=1, line.size=1)
# `geom_smooth()` using formula 'y ~ x'
Also warnings are thrown. The issue might be due to statistical reasons, since the example on ?sjPlot::plot_model
is working fine.
Only a partial answer, I know, hoping to help you somehow.
Upvotes: 3