我想用cplot()绘制我的logit模型(mod7)的边际效应,但我不知道如何解决这个错误。
这里的代码。
mod7 <- glm(Crosssectionunique$ACQYes ~ Crosssectionunique$management + controls + Crosssectionunique$emp_firm)
mod8 <- glm(Crosssectionunique$ACQYes3 ~ Crosssectionunique$management + controls + Crosssectionunique$emp_firm)
summary(mod7)
install.packages("margins")
library("margins")
cplot(mod7, x = "Crosssectionunique$management", se.type = "shade")
Error in names(classes) <- clean_terms(names(classes)) :
'names' attribute [3] must be the same length as the vector [2]
任何建议?
你得到这个问题是因为你试图通过 "Crosssectionunique$management"
到cplot,这可能是相当混乱的。因此,使用一个示例数据集。
library(margins)
Crosssectionunique = data.frame(
ACQYes = runif(50),
management = sample(letters[1:3],50,replace=TRUE),
emp_firm = factor(sample(1:3,50,replace=TRUE))
)
controls = runif(50)
mod <- glm(Crosssectionunique$ACQYes ~ Crosssectionunique$management + controls + Crosssectionunique$emp_firm)
cplot(mod, x = "Crosssectionunique$management", se.type = "shade")
Error in names(classes) <- clean_terms(names(classes)) :
'names' attribute [5] must be the same length as the vector [3]
你可以看到我得到同样的错误。在进行lm等操作时,尝试使用data.frame,并调用data.frame中的变量,例如。
Crosssectionunique$controls = controls
mod <- glm(ACQYes ~ management + controls + emp_firm,data=Crosssectionunique)
现在我们调用cplot,并指定x应该是一个叫 "管理 "的变量,它的工作原理很好。
cplot(mod, x = "management", se.type = "shade")