使用Ochiia系数将共词矩阵转换为相关矩阵(基于EXCEL+VBA的实现)

1. 公式与代码

  • Ochiia系数公式:

(原理不再赘述,有兴趣可自行搜索学习)

  • 代码如下,后附参考案例一个。

(v值为变量个数,例如9×9的共现矩阵,则v=9;m×m的共现矩阵,则v=m)

Sub ochiia()
    '变量个数
    v = 9
    '输出的起始行列号
    rOutput = v + 2
    cOutput = 1
  
    For i = 2 To v
        For j = i To v
            Cells(rOutput + i, cOutput + j) = Cells(i, j + 1) / (Sqr(Cells(i, i)) * Sqr(Cells(j + 1, j + 1)))
        Next
    Next
    
    For i = 1 To v
        Cells(rOutput + i + 1, cOutput + i) = 1
    Next
    
    '给另一边赋值
    'Str(rOutput + j) & "," & (cOutput + i)
    rOutput = rOutput + 2
    cOutput = 2
    For i = 1 To v - 1
        For j = 0 To i - 1
            Cells(rOutput + i, cOutput + j) = Cells(rOutput + j, cOutput + i)
        Next
    Next
    
End Sub

2. 参考案例

  • 原始数据如下图共现矩阵所示:

(可使用BICOMB2生成共现矩阵,参见:https://download.csdn.net/download/u010785550/12628654

  • 首先将文档另存为.xlsm格式,默认启用宏功能,避免后续麻烦。

  • 新文档中使用快捷键ALT+F11打开代码窗口,将上方VBA代码拷贝放入

(上图共现矩阵含15个变量,因此将v值改为15)

  • 快捷键F5运行代码,会再共现矩阵下方输出生成的相关系数矩阵。

  • 将矩阵剪切到另一表格并补全变量名即可完成相关系数矩阵的制作。

3. 参考文献

VBA代码来源:http://blog.sina.com.cn/s/blog_67532f7c0102v60z.html

使用SPSS生成相关系数矩阵:https://blog.csdn.net/shazao/article/details/50615600

注:使用Ochiia系数生成的相关系数矩阵,其数据值与SPSS(分析-相关-距离)中使用Person系数或余弦方法生成的相关性矩阵存在差异,建议在深入了解具体原理后,根据分析需求酌情选择相适应的计算方法。

  • 15
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值