Stata可视化:biplot一图看尽方差、相关性和主成分

发布时间:2021-12-13 阅读 454

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者: 左祥太 (武汉纺织大学)
邮箱: Shutter_Z@outlook.com


目录

[TOC]

1. biplot 命令介绍

通过使用 biplot 可以将一份数据集的分布特征生动地展现在一副二维图上。biplot 将会同时显示观测值和变量的相对位置。标记符号(点)会显示指定的标签,而变量则用箭头表示。所有特征的观测值将被投射到两个维度上,从而使观测值之间的距离近似保留(压缩至两个维度的主成分)。箭头之间角度的余弦近似于变量之间的相关性,箭头的长短近似于表示该变量的方差。

2. biplot 基本语法

biplot 语法中的 [, options] 划分了主要选项、行选项与列选项,本文将着重介绍几个最基本的实用项,其余选项以及介绍可以通过 help biplot 查看。

biplot varlist [if] [in] [, options]
  • rowlabel: 用于指定图中点的标签
  • alpha: 默认值为 0.5,此时绘制对称比例双平面图;取 1 时绘制主成分双平面图 (也称 row-preserving biplot)
  • stretch: 伸展列 (变量) 箭头,可简单记忆为调整图中箭头的长短
  • table: 用于设定是否需要返回图中点的坐标
  • rowover: 是否需要识别来自不同组别的变量
  • colopts(name()): 更改图例中箭头的名称
  • rowopts(name()): 更改图例中点的名称
  • title: 设置图片标题
  • autoaspect: 根据数据内容自动调整图片长宽比,默认为1

3. Stata 实例

3.1 图形详解

在使用 biplot 绘图前需要下载安装该命令至本地:

ssc install biplot

接下来调用该命令所提供的数据集进行绘图操作,为了方便后期图片中颜色的显示,我们采用连享会上期推文中的 schemes 对图片风格进行设置,具体参考:Stata 绘图:用 Stata 绘制一打精美图片-schemes| 连享会主页 (lianxh.cn)

首先我们调用命令集所提供的数据文件,并观察数据的基本结构与变量名称。

. webuse renpainters			//调用数据

clear
input str15 painter byte(composition drawing colour expression)
"Del Sarto"       12 16  9  8
"Del Piombo"       8 13 16  7
"Da Udine"        10  8 16  3
"Giulio Romano"   15 16  4 14
"Da Vinci"        15 16  4 14
"Michelangelo"     8 17  4  8
"Fr. Penni"        0 15  8  0
"Perino del Vaga" 15 16  7  6
"Perugino"         4 12 10  4
"Raphael"         17 18 12 18
end

然后我们设置一副白色的背景风格,方便后续颜色的展示,最后通过 biplot 绘制一幅最基本的图片。

. set scheme white_tableau //设定绘图风格为white_tableau
                           //本推文的输出风格
. set scheme s2color  // Stata 默认

. biplot composition-expression	//简单绘制图片

/* 以下为 Stata 窗口显示内容 */
Biplot of 10 observations and 4 variables

    Explained variance by component 1  0.6700
    Explained variance by component 2  0.2375
             Total explained variance  0.9075

Stata 的窗口展示了每个组成维度的解释性方差,不难发现降维后的两个维度对原样本的方差解释力度达到了 90.75% ,即在一个可以接受的范围内还原了原始数据 90.75 %的数据特征。

image-20211128105729604
image-20211128105729604

图形解读如下:

  • 点: 上图中两点之间的距离近似于真实的多变量空间中两个观测点之间的欧氏距离。以第 4 和第 5 条样本为例,在原始数据中两个样本的取值一样,根据四维空间中欧氏距离的计算公式有:

​ 可得两点之间在四维空间中的距离为 0 ,所以压缩至二维空间,在 bioplot 图中表现为重合状态,观察上图可知样本 4 和样本 5 重合。

  • 箭头: 上图中线条的长度近似于变量的方差,即线条越长,方差越大。可以看到 colour 在所有变量中的方差最大,而 drawing 的方差最小。
  • 夹角: 线条之间角度的余弦值,可以近似于它们所对应变量之间的关联性。角度越接近 90 度 (cos90=0) 或 270 度 (cos270=0) ,相关度就越小。同理, 0 度或 180 度的角度分别反映了 1 或 -1 的关联性。上图展现了 compositionexpression 之间的强正相关关系, colourdrawing 之间的强负相关关系,而 compositioncolour 以及 drawing 之间则表现为弱相关关系。

3.2 图形美化

为了方便对点标签的识别,引入 rowlabel 选项将变量 painter 中的文本作为上图中点的标签,同时通过 rowopts(name())colopts(name()) 分别改变图例中点和箭头的名称,并通过 title 选项为图加上标题。

biplot composition-expression, rowlabel(painter) ///
	rowopts(name(Painters)) colopts(name(Attributes)) ///
	title(Renaissance painters)
image-20211128110313998
image-20211128110313998

接下来通过 alpha 选项和 stretch 选项使得图片看起来更加舒适。

biplot composition-expression, rowlabel(painter) ///
	rowopts(name(Painters)) colopts(name(Attributes)) ///
	title(Renaissance painters) ///
	alpha(1) stretch(10)
image-20211128110659582
image-20211128110659582

同时我们可以利用 table 选项来返回图中各点的坐标值。

biplot composition-expression, rowlabel(painter) ///
	rowopts(name(Painters)) colopts(name(Attributes)) ///
	title(Renaissance painters) ///
	alpha(1) stretch(10) table
							   
/* 以下为 Stata 窗口显示内容 */
Biplot coordinates

        Painters |     dim1      dim2 
    -------------+--------------------
       Del Sarto |   1.2120    0.0739 
      Del Piombo |  -4.5003    5.7309 
        Da Udine |  -7.2024    7.5745 
    Giulio Rom~o |   8.4631   -2.5503 
        Da Vinci |   8.4631   -2.5503 
    Michelangelo |   0.1284   -5.9578 
        Fr Penni | -11.9449   -5.4510 
    Perino del~a |   2.2564   -0.9193 
        Perugino |  -7.8886   -0.8757 
         Raphael |  11.0131    4.9251 
    ----------------------------------

      Attributes |     dim1      dim2 
    -------------+--------------------
     composition |   6.4025    3.3319 
         drawing |   2.4952   -3.3422 
          colour |  -2.4557    8.7294 
      expression |   6.8375    1.2348 
    ----------------------------------

最后,不知你是否觉得这个图片的风格很清爽,完全不同于 Stata 默认的粗笨风格。若想实现这个风格,只需在绘图之前执行如下命令,将绘图模板设定为 white_tableau 风格即可。

有关绘图模板的设定方法,参见往期推文

. ssc install schemepack, replace //安装white_tableau 模板
. set scheme white_tableau //设定绘图风格为white_tableau

若需重设为 Stata 默认绘图风格,可以按需执行如下两条命令之一:

. set scheme s2color  // Stata 默认, 彩色
. set scheme s2mono   // Stata 默认, 黑白

4. 结语

biplot 命令的出现很好地帮助我们在一张图内同时展现了变量之间的近似相关性、主成分等内容。与此同时,biplotschemes 所提供的绘图背景相结合有助于我们画出更加惊艳的图片。

5. 参考资料

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxh 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh