查看原文
其他

Stata:聚类分析-cluster

连享会 连享会 2023-02-21

👇 连享会 · 推文导航 | www.lianxh.cn

连享会视频课 · 因果推断实用计量方法

作者:李秋萍 (中国地质大学)
邮箱:liqiuping2017@outlook.com


目录

  • 1. 简介

  • 2. 理论背景

    • 2.1 聚类分析的原理

    • 2.2 聚类分析统计量

    • 2.3 聚类分析的类型

  • 3. Stata 实操

    • 3.1 cluster 命令

    • 3.2 clustermat 命令

  • 4. 参考文献

  • 5. 相关推文



温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:

1. 简介

  • 聚类分析是一种探索性的数据分析,用于分类观察和辨别不同的群体的多元统计分析方法;
  • 将样本或变量根据数据特征 (内在相似性 ) 划分成不同类别,类别内的数据差异尽可能小,而类别之间的差异尽可能大;
  • 它适合用来分析复杂的数据集,通常使用的回归建模方法可能由于异常值、复杂的相互影响或违背假设而不适用;
  • 应用方向广泛,被广泛应用于数据挖掘、经济分析、地质勘探、土壤分类、天气预报等各个领域。

2. 理论背景

2.1 聚类分析的原理

基本思想:研究的样本或变量之间存在着程度不同的相似性 (亲疏关系)。

基本原理:根据样本自身的属性,用数学方法按照某种相似性 (或差异性 ) 指标,定量地确定样本之间的亲疏关系,并按这种亲疏关系程度对样本进行聚类。

分析步骤

  • 对数据进行变换处理;
  • 找出能够度量样本或变量之间相似程度的统计量;
  • 利用统计量将样本或变量进行分类;
  • 决定类的个数,得出聚类结果。

2.2 聚类分析统计量

研究样本或变量的相似性的数量指标有两种:

相似系数:性质越相似的样本或变量,它们的相似系数越接近于 1 或 -1,而彼此越无关的变量或样本相似系数越接近于 0。常用相似系数统计量有两个:

  • 相关系数
  • 夹角余弦

距离:将每一个样本看作 p 维空间的一个点,用某种度量测量点与点之间的距离,距离较近的归为一类,距离较远的点归为不同类。常用距离统计量有以下几种:

  • 绝对距离
  • 欧式距离
  • 兰式距离
  • 马氏距离
  • 切比雪夫距离

2.3 聚类分析的类型

根据聚类对象的不同,分为 Q 型聚类和 R 型聚类:

  • Q 型聚类:样本之间的聚类,按照变量对所观察的样本进行分类,常用距离来测度样本之间的相似程度。
  • R 型聚类:变量之间的聚类,按照样本对多个变量进行分类,常用相似系数来测度变量之间的相似程度。

根据聚类方法的不同分为系统聚类、K 均值聚类、模糊聚类、图论聚类法等,其中,

  • 系统聚类法:最常用的聚类方法之一,又称为层次聚类 (hierarchical cluster)。事先不确定要分多少类,先把每一个对象作为一类,然后按照一定层次进行分类聚类。不仅度量个体之间的距离,还度量类与类之间的距离,由类间距离定义的不同产生不同的聚类方法;

  • K 均值聚类法:又称为快速聚类 (quick cluster),事先需要确定要分的类别数据,效率比层次聚类要高。若观测数据比较大 (通常 200 以上),宜使用快速聚类分析方法。

3. Stata 实操

3.1 cluster 命令

// Kmeans cluster analysis
cluster kmeans [varlist] [if] [in] , k(#) [ options ]

// Kmedians cluster analysis
cluster kmedians [varlist] [if] [in] , k(#) [ options ]
options Description
---------------------------------------------------------------
* k(#) 聚类到 # 个组
measure(measure) 相似性或不相似性度量,默认为 L2 (欧式距离)
name(clname) 聚类分析结果名称

Options
start(start_option) 获取 k 个初始组
keepcenters 将 k 个最终组的平均值或中位数添加到数据中

Advanced
generate(groupvar) 分组变量名称
iterate(#) 最大迭代次数,默认是迭代 (10000)
---------------------------------------------------------------
. webuse labtech, clear //加载数据
. cluster kmeans x1 x2 x3 x4, k(8) //进行 kmeams 聚类分析,生产8个组
. cluster kmeans x1 x2 x3 x4, k(8) measure(L1) name(k8abs) //用绝对值距离代替欧氏距离,命名聚类分析结果为k8abs
. cluster kmedians x1 x2 x3 x4, k(6) measure(Canberra) //执行kmedians聚类分析,使用兰式距离创建6个组
. cluster kmedians x1 x2 x3 x4, k(6) start(firstk) //创建6个组,使用数据集中的前6个观察数据作为起始中心
. cluster kmedians x1 x2 x3 x4, k(6) start(firstk, exclude) //不包括前6个观察结果

3.2 clustermat 命令

clustermat 命令是 cluster 命令中的一部分,对用户提供的不相似矩阵进行层次聚类分析。使用 clustermat 命令可以使用所有的分层聚类方法,但不可以使用分区聚类方法 (kmeans 和 kmedians)。

clustermat linkage matname ...
linkage Description
----------------------------------------------------------------
singlelinkage single-linkage cluster analysis
averagelinkage average-linkage cluster analysis
completelinkage complete-linkage cluster analysis
waveragelinkage weighted-average linkage cluster analysis
medianlinkage median-linkage cluster analysis
centroidlinkage centroid-linkage cluster analysis
wardslinkage Ward's linkage cluster analysis
---------------------------------------------------------------
. webuse wclub, clear //加载数据
. matrix dissimilarity clubD = , variables Jaccard dissim(oneminus)
. matlist clubD[1..5, 1..5] //检查不相似矩阵
. clustermat singlelinkage clubD, name(singlink) clear //执行最短距离聚类分析,并清除内存中的数据集
. cluster dendrogram singlink //图形
. clustermat wardslinkage clubD, name(wardslink) add //执行Ward距离聚类分析,在内存中添加结果
. cluster dendrogram wardslink //查看结果

在聚类命令后,可用 cluster list 命令描述聚类过程:

. cluster list
wardslink (type: hierarchical, method: wards, dissimilarity: user matrix clubD)
vars: wardslink_id (id variable)
wardslink_ord (order variable)
wardslink_hgt (height variable)
other: cmd: clustermat wardslinkage clubD, name(wardslink) add

singlink (type: hierarchical, method: single, dissimilarity: user matrix clubD)
vars: singlink_id (id variable)
singlink_ord (order variable)
singlink_hgt (height variable)
other: cmd: clustermat singlelinkage clubD, name(singlink) clear

4. 参考文献

  • 陈峰. 现代医学统计方法与 Stata 应用. 第2版[M]. 中国统计出版社, 2003.
  • cluster 帮助文档

5. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh cluster 聚类, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

  • 专题:回归分析
    • Stata:聚类调整标准误笔记
    • Stata:聚类调整后的标准误-Cluster-SE
    • 小样本下OLS估计的纠偏聚类标准误
  • 专题:面板数据
    • wcbregress:面板聚类标准误

课程推荐:因果推断实用计量方法
主讲老师:邱嘉平教授
🍓 课程主页https://gitee.com/lianxh/YGqjp

New! Stata 搜索神器:lianxhsongbl  GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉  使用:
. lianxh DID 倍分法
. songbl all

🍏 关于我们

  • 连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存