使用 Coefplot 手动绘制多个模型的系数

问题描述 投票:0回答:1

我有一些来自模型对象的模型输出,但 R 中的 coefplot 不支持。我试图在一个系数图中绘制多个模型的结果。如果我放入一个带有系数的向量和一个带有标准误差的向量,我可以用一个模型来做到这一点。但是,如果我放一个向量列表来绘制多个模型。

可重现的例子:

coefs_1 <- c(1, 2, 3)
coefs_2 <- c(4, 5, 6)

ses_1 <- c(0.5, 0.3, 0.6)
ses_2 <- c(0.7, 0.4, 0.5)
coefplot(coefs_1, sd = ses_1) 

有效,但是

coefplot(list(coefs_1, coefs_2), sd = list(ses_1, ses_2)) 

抛出错误。错误是:

Error in coefplot_prms(object = object, ..., sd = sd, ci_low = ci_low,  : 
  The first element of 'object' raises and error:
Error in nb * sd : non-numeric argument to binary operator

我尝试使用不同的方式将系数和 ses 馈入函数,但也得到了相同错误的变化。我觉得我错过了这个功能如何工作和处理输入的一些重要部分。

r plot regression linear-regression figure
1个回答
0
投票

澄清一下,您提到的功能

coefplot
来自图书馆
fixest
.

简短的回答:

coefplot(list(
  matrix(c(coefs_1, ses_1, rep(NA, 6)), ncol = 4),
  matrix(c(coefs_2, ses_2, rep(NA, 6)), ncol = 4))
))

长答案:

看起来这个函数除了拟合模型对象外,还可以将矩阵作为输入,看起来像

coeftable(object)
的输出。这里的对象是拟合模型(你可以用
lm()
试试)。

此输出是一个矩阵,其中前两行是估计值和标准误差,接下来的两行是此处未使用的任何其他内容(在

lm()
的情况下,它是 t 值和 p 值)。

现在,类似于对象列表,该函数也可以获取这些矩阵的列表,因此您可以使用如上所示的代码。

© www.soinside.com 2019 - 2024. All rights reserved.