stargazer包——线性回归结果输出到文档中

简介: 今天小编在做线性回归的时候,突然想 R 能不能把结果以表格的形式输出呢?这样就不需要自己复制粘贴画表格啦。小编搜了一下果然有相关的 R 包—— stargazer ,现将自己关于该包的一些学习笔记分享给大家。

前言


今天小编在做线性回归的时候,突然想 R 能不能把结果以表格的形式输出呢?这样就不需要自己复制粘贴画表格啦。小编搜了一下果然有相关的 R 包—— stargazer ,现将自己关于该包的一些学习笔记分享给大家。


1. stargazer 简介

stargazer 包中只有 stargazer()函数,其主要优势在于支持的模型数量多、易于使用以及表格的清楚美观。stargazer() 函数为格式良好的回归表创建 LATEX 代码、HTML 代码和 ASCII 文本,其中包括多个模型并排、汇总统计表和矩阵等。再结合 rmarkdownTEXworks 等,就可以一键输出非常好看的表格啦~


2. 安装及本文说明


2.1 安装

install.packages("stargazer") #安装包
library(stargazer) #加载包

输入上面的代码就可以直接安装和加载。


2.2 本文说明

由于 stargazer() 的参数 type 中可以指定输出 LATEX 代码、HTML 代码或 ASCII 文本,可将 R 中的输出结果粘贴到对应的编辑器上得到表格(例如  LATEX 代码可以粘贴到 TEXworks 等编辑器),故本文的结果显示直接以表格形式呈现。

本文使用 R 中自带的数据集 mtcars 来简要说明 stargazer() 函数的用法。


3. 使用方法

数据集 mtcars 中有 mpgcyl 等 11 个变量, 32 个观察值。

library(stargazer) #加载包
data(mtcars)
head(mtcars)#展示数据前6行
#> head(mtcars)
#                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
#Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
#Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
#Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
#Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
#Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
#Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1


3.1 创建汇总统计表

  • 例 1

创建汇总统计表并命名为 summary statistics table

#创建汇总统计表并命名为 `summary statistics table`
stargazer(mtcars,title = " summary statistics table")

image.gifFig1. R 中 stargazer() 的输出结果

Fig 1 是 Rstargazer() 的直接输出结果,此处默认的是 LATEX 代码,接下来再将此 LATEX 代码粘贴到 TEXworks 中,就可以一键导出该表格啦。我们来看一下效果,如 Fig 2 所示。

WB5Q1IG7$ZBKC@3ZFP2FI7M.png


Fig 2. 汇总统计表


3.2 多个模型并排

  • 例 2

构建两个线性模型和一个 probit 模型并并排显示在表格中,如 Fig 3 所示。

# creat  a linear model 1
linearmodel1 <- lm(vs ~ mpg +  cyl + disp + hp + drat + wt, data = mtcars)
# creat a linear model 1
linearmodel2 <- lm(vs ~ mpg +  cyl + disp + hp + drat, data = mtcars)
## creat a probit model 
probitmodel <- glm(vs ~ mpg +  cyl + disp + hp + drat + wt,
                    family = binomial(link = "probit"), data = mtcars)
stargazer(linearmodel1,linearmodel2,probitmodel,title = "Comparison Results")

6HK{CV62H[W94BV6VFIL`VH.png


image.gifFig 3. 多个模型并排


3.3 置信区间

  • 例 3
#置信区间
stargazer(linearmodel2, probitmodel, title="CI Results",
          dep.var.labels=c("vs"),
          covariate.labels=c("mpg","cyl",
                             "disp","hp","drat","wt"),
          omit.stat=c("LL","ser","f"), ci=TRUE, ci.level=0.95, single.row=TRUE)

这里比较的是 linearmodel2probitmodel 两个模型的置信区间结果。其中, omit.stat 参数表示不显示指定的统计量,cici.level 表示是否显示置信区间和置信区间的水平, sing.row=TRUE 表示将系数和置信区间显示在同一行,如 Fig 4 所示。

FQ%`%_44B_{~ZFB(HXJMPXG.png


Fig4. 置信区间


4. 结合 rmarkdown

由于 rmarkdown 兼容 LATEX 格式,还可以直接输出 HTMLpdf 等格式的文档,因此 stargazer() 结合 rmarkdown 非常方便,省去了粘贴的步骤,写完代码 Knit 一键导出便可生成表格。下面是 stargazer() 结合 rmarkdown 生成汇总统计表的例子。

  • 例 4

VZE$YPA%A](UB%8~LPG3~[I.png


Fig 5. rmarkdown 代码

results='asis' 保证输出的是表格,而不是 LATEX 格式。

VQQ4})7MP_}@UVU}(VVS(ZH.png

目录
相关文章
|
11天前
|
机器学习/深度学习 分布式计算 大数据
几行 Python 代码就可以提取数百个时间序列特征
几行 Python 代码就可以提取数百个时间序列特征
|
1月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
31 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
11天前
|
Python
python 随机划分图片数据集以及移动标注
这篇文章提供了一个Python脚本,用于随机划分图片数据集为训练集和测试集,并将对应的标注文件移动到相应的子文件夹中,以减少训练使用的数据量。
|
3月前
|
机器学习/深度学习 调度 Python
SOFTS: 时间序列预测的最新模型以及Python使用示例
这是2024年4月《SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion》中提出的新模型,采用集中策略来学习不同序列之间的交互,从而在多变量预测任务中获得最先进的性能。
83 4
|
3月前
|
机器学习/深度学习 算法 索引
Python梯度提升决策树的方法示例
本文简要介绍了Python梯度提升决策树的方法示例,包括鸢尾花(Iris)数据集进行分类、房价预测(回归)、垃圾邮件分类、特征选择等示例。
31 0
|
4月前
|
XML 数据格式 Python
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
python挑出训练集里图片对应的xml文件,方便统计标签框的类别与数目_python 统计voc2007xml中某一类别框个数(1)
|
3月前
|
机器学习/深度学习 SQL 数据可视化
python揭秘决策树:如何每次都精确预测鸢尾花的种类
python揭秘决策树:如何每次都精确预测鸢尾花的种类
|
4月前
|
计算机视觉 开发者 Python
OpenCV合并图像中加权和与覆盖的讲解与实战(附Python源码)
OpenCV合并图像中加权和与覆盖的讲解与实战(附Python源码)
148 0
|
4月前
|
语音技术 开发者 Python
python之pyAudioAnalysis:音频特征提取分析文档示例详解
python之pyAudioAnalysis:音频特征提取分析文档示例详解
294 0
|
机器学习/深度学习 算法 计算机视觉
线性回归 正则项(惩罚项)原理、正则项的分类与Python代码的实现
线性回归 正则项(惩罚项)原理、正则项的分类与Python代码的实现