R 从回归输出中检索模型矩阵
在从模型输出运行多个回归模型后,我希望检索清理后的输入协变量和结果变量-我希望访问实际估计中使用的数据。 对于lm()和lfe的felm()函数,可以通过特定的“模型”输出访问结果变量和协变量:R 从回归输出中检索模型矩阵,r,regression,R,Regression,在从模型输出运行多个回归模型后,我希望检索清理后的输入协变量和结果变量-我希望访问实际估计中使用的数据。 对于lm()和lfe的felm()函数,可以通过特定的“模型”输出访问结果变量和协变量: 库(估计值) 图书馆(lfe) 种子(1) N如果unclass对象lm_robust_fit您将看到它根本不存储模型帧中的值,因此无法直接从对象中提取它们 但是,felm\u-fit也不包含它们-正如您所示,它提供了生成它所需的对model.frame的调用,您只需要eval 如果查看lm的代码,它实
库(估计值)
图书馆(lfe)
种子(1)
N如果unclass
对象lm_robust_fit
您将看到它根本不存储模型帧中的值,因此无法直接从对象中提取它们
但是,felm\u-fit
也不包含它们-正如您所示,它提供了生成它所需的对model.frame
的调用,您只需要eval
如果查看lm
的代码,它实际上以完全相同的方式生成其模型
数据,只是需要在model.frame
调用上运行eval
通过直接调用model.frame
,可以完全按照lm
和felm\u-fit
的方式执行,默认情况下,model.frame使用传递给原始调用的data
参数,并在正确的环境中对其进行计算。这类似于您提出的解决方案,但比它更安全,因为您不必指定数据来自何处(即,您不必担心对象位于globalenv
以外的范围内)
直接调用model.frame
也将适用于所有三种不同类型的模型,因此使用此函数检索任何模型框架(无论其类型如何)可能会简化代码
因此,您可以:
head(model.frame(lm_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
head(model.frame(felm_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
head(model.frame(lm_robust_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
如果您unclass
对象lm\u robust\u fit
,您将看到它根本不存储其模型帧中的值,因此无法直接从对象中提取它们
但是,felm\u-fit
也不包含它们-正如您所示,它提供了生成它所需的对model.frame
的调用,您只需要eval
如果查看lm
的代码,它实际上以完全相同的方式生成其模型
数据,只是需要在model.frame
调用上运行eval
通过直接调用model.frame
,可以完全按照lm
和felm\u-fit
的方式执行,默认情况下,model.frame使用传递给原始调用的data
参数,并在正确的环境中对其进行计算。这类似于您提出的解决方案,但比它更安全,因为您不必指定数据来自何处(即,您不必担心对象位于globalenv
以外的范围内)
直接调用model.frame
也将适用于所有三种不同类型的模型,因此使用此函数检索任何模型框架(无论其类型如何)可能会简化代码
因此,您可以:
head(model.frame(lm_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
head(model.frame(felm_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
head(model.frame(lm_robust_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
是否检查了函数model.matrix()
?是否检查了函数model.matrix()
?
head(model.frame(lm_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
head(model.frame(felm_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105
head(model.frame(lm_robust_fit))
#> y log(X)
#> 2 1.409403 -1.6947599
#> 3 1.760336 -0.1795710
#> 4 4.348590 0.4670498
#> 5 1.004431 -1.1101553
#> 6 4.408224 -0.1978799
#> 7 2.691566 -0.7186105