SAS简单的矩阵运算和变量的协方差矩阵
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAS/IML矩阵功能简介
SAS/IML是SAS提供的一个可以进行矩阵运算编程的工具,详细使用请参见有关资料或系统帮助(Help | Extended Help | SAS System Help: Main Menu | Help for SAS Products | SAS/IML)。
下面给出SAS/IML常用命令:
●proc iml 调用SAS/IML矩阵运算编程的工具;
●用+、-、*符号表示矩阵的加减乘;
●用||表示矩阵左右连接,用//表示矩阵上下连接;
●用#表示用某个常数分别乘以矩阵中的每个元素3#x;
●用/表示用某个常数分别去除矩阵中的每个元素x/3;
●用##矩阵中的每个元素进行乘方运算x##2;
●用g=inv(x)表示g是x的逆;
●用e=eigval(x) 表示e是x特征值;
●用d=eigvec(x) 表示d是x特征向量;
●用h=det(x) 表示h是x行列式;
●用t=trace(x) 表示t是x的迹;
●用rank=round(trace(ginv(x)*x)) 表示rank是x的秩;
G = GINV(A) 表示求A的广义逆矩阵,如果G = GINV(A),那么AGA = A,GAG =
G,(AG)' = AG和(GA)' = GA;
●用下面的程序表示求矩阵x的某个子矩阵
proc iml;
x={123,
456,
789};
m=x[2:3,1:3]; (矩阵m是x的第2行到第3行和第1列到第3列构成的子矩阵)
print m;
●用下面的程序求由几个子矩阵构成一个矩阵⎡⎤
⎢⎥
⎢⎥
⎢⎥
⎣⎦
A
B
C。
proc iml; a={2 2, 4 4} ;
b={6 6,
8 8} ;
c=block(a,b);
print c;
2 2 0 04 4 0 00 0 6 60 0 8 8⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦
c
● 用a=I(k)求k 阶单位矩阵a=I(k) 111k ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣
⎦I = ● 用b=j(k)求每个元素均为“1”的k 阶矩阵
111111111k
⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦J 。
用CORR 过程计算相关系数和偏相关系数
相关系数可以反映变量两两之间的线性相关,偏相关系数反映在某些变量给定的条件下,两个变量之间的相关关系的密切程度。
程序示例: data a; input x1-x7@@; cards;
数据行省略 ; proc corr cov nosimple noprob; var x1-x7; proc corr cov; var x1;
with x3;
partial x7;
run;
proc corr:计算相关系数;
cov 给出协方差矩阵;
nosimple 不计算简单的描述统计量,省略时给出描述统计量;
noprob 不做相关系数检验,仅仅计算相关系数的值
var 变量名分析变量的名字
with 变量名关系变量
partial 变量名条件变量
输出分为两个部分,第一部分是各变量的简单统计量,第二部分是三个变量两两之间的相关系数矩阵。