在SAS中创建相关矩阵时部分负相关系数缺失,请问该如何解决?
SAS创建相关矩阵负系数缺失问题解决方法
问题根源
出现缺失问题是两个语法错误共同导致的:
- 负号使用了非ASCII的长破折号(
–),SAS无法识别该特殊字符,会直接判定对应值为无效值,读取为缺失 - 数据行末尾的连续点属于多余占位符,SAS读取时会将这些点识别为额外变量值,和你定义的
p1-p9共9个变量不匹配,引发读取错位进一步扩大缺失范围
具体解决步骤
- 将所有负系数前的长破折号全部替换为标准ASCII减号(
-) - 调整每行的点占位符数量,确保每行只有
_name_+9个相关系数共10个值,避免多余字符干扰读取 - 修正后可正常运行的代码如下:
data pain (type=corr); _TYPE_='CORR'; input _name_ $ p1 - p9 ; datalines; p1 1.0000 . . . . . . . . p2 -0.0385 1.0000 . . . . . . p3 0.6066 -0.0693 1.0000 . . . . . p4 0.4507 -0.1167 0.5916 1.0000 . . . . p5 0.0320 0.4881 0.0317 -0.0802 1.0000 . . . p6 -0.2877 0.4271 -0.1336 -0.2073 0.4731 1.0000 . . p7 -0.2974 0.3045 -0.2404 -0.1850 0.4138 0.6346 1.0000 . p8 0.4526 -0.3090 0.5886 0.6286 -0.1397 -0.1329 -0.2599 1.0000 . p9 0.2952 -0.1704 0.3165 0.3680 -0.2367 -0.1541 -0.2893 0.4047 1.0000 ; run;
如果需要填充完整的相关矩阵,直接把下三角对应位置的.替换为实际计算得到的相关系数即可。
内容的提问来源于stack exchange,提问作者Kate
相关产品推荐
相关产品推荐

