前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现对应分析的随笔记

python实现对应分析的随笔记

作者头像
悟乙己
发布2024-05-26 09:12:44
1150
发布2024-05-26 09:12:44
举报
文章被收录于专栏:素质云笔记素质云笔记

文档来源: Correspondence analysis

1 对应分析

参考:

对应分析的实质(理论很复杂,但是结果很明了简单)

  • 就是对列联表中的数据信息进行浓缩,然后以易于阅读的图形方式呈现出来
  • 以默认的卡方测量方式为例,首先以列联表为分析基础,计算基于H0假设的标化单元格残差
  • 将每行看成是一条记录,基于列变量相关系数阵进行因子分析,计算出列变量各类的负荷值
  • 将每列看成是一条记录,基于行变量相关系数阵进行因子分析,计算出行变量各类的负荷值
  • 一句话来说就是计算出残差,残差做因子分析提取主成分之后绘图(散点图)表示

对应分析的局限性

  • 不能进行变量间相关关系的检验,仍然只是一种统计描述方法
  • 解决方案的所需维度需要研究者决定
  • 对极端值敏感,对于小样本不推荐使用

数据要求: 列联表的形式

需要先做卡方检验: Pearson卡方检验Sig.<0.05证明两个变量并不是没有关联的,并不是完全独立的 在做对应分析

对应分析图的正确解释:

  • 错误的解释:金色头发的儿童中蓝色、浅色眼睛者居多
  • 正确的解释:相对于平均水平而言,金色头发的儿童中蓝色、浅色眼睛的比例要高一些,也就是高于其他颜色头发的儿童

2 python代码

随笔记python实现对应分析:

代码语言:javascript
复制
import prince

dataset = prince.datasets.load_french_elections()
dataset[['Le Pen', 'Macron', 'Mélenchon', 'Abstention']].head()

# 拟合
ca = prince.CA(
    n_components=3,
    n_iter=3,
    copy=True,
    check_input=True,
    engine='sklearn',
    random_state=42
)
ca = ca.fit(dataset)

数据样例可见:

其中:

  • prince.CA一定需要指定engine='sklearn'
  • n_components是降维维度数量,如果你只有两列,只能降低到1维

其他:

代码语言:javascript
复制
# Eigenvalues
ca.eigenvalues_summary

# 看最后的row维度的降维
ca.row_coordinates(dataset).head()
# 看最后的columns维度的降维
ca.column_coordinates(dataset).head()

可视化

代码语言:javascript
复制
ax1 = ca.plot(
    dataset,
    x_component=0,
    y_component=1,
    show_row_markers=True,
    show_column_markers=True,
    show_row_labels=False,
    show_column_labels=False
)
ax1.save('ax1.html')

此时可以可视化并保存成Html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 对应分析
  • 2 python代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档