(原理不再赘述,有兴趣可自行搜索学习)
代码如下,后附参考案例一个。(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系数或余弦方法生成的相关性矩阵存在差异,建议在深入了解具体原理后,根据分析需求酌情选择相适应的计算方法。