STATA十八讲 矩阵.doc_第1页
STATA十八讲 矩阵.doc_第2页
STATA十八讲 矩阵.doc_第3页
STATA十八讲 矩阵.doc_第4页
STATA十八讲 矩阵.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STATA十八讲:8矩阵8 矩阵STATA9.0版本的矩阵组件有了根本的革新,出现了与其他专门的矩阵运算软件功能一样强大的新组件MATA,用MATA可以完成除绘图以外的所有STATA数据处理和分析功能。这里介绍的仍然是传统的STATA矩阵命令,如果对MATA有兴趣,请参看笔者即将编写的另一本讲义(MATA讲义)。8.1生成矩阵8.1.1输入新矩阵可以直接录入一个新的矩阵matrix A= (1,0,12,1,0-3,2,-5) /录入矩阵Amatrix list A /显示录入的矩阵Amatlist A /显示录入的矩阵A,该命令只能在stata9以上版本使用matrx B=(1+1,2*3/4 5/2, 32)matrix list Bmatrix C=(2,3,4)matrix E=(123)matrix F=(4)matrix rownames A= sex edu marriagematrix colnames A=obs1 obs2 obs3matrix list8.1.2生成特定格式矩阵生成一个5行3列的矩阵A,矩阵中的元素均为0matrix A=J(5,3,0)生成一个6阶单位阵Imatrix I=I(6)生成一个3行5列的随机矩阵R,每个随机元素均服从(0,1)均匀分布matrix R=matuniform(3,5)matrix d=(1,4,9)matrix D=diag(d) /以d中元素为对角元素生成对角矩阵Dmatrix list D8.1.3数据与矩阵之间的相互转化将矩阵R转换为数据文件mkmat varlist if exp in range matrix(matname) nomissing svmat type A names(col|eqcol|matcol|string) matname A namelist rows(range) columns(range) explicit *=begin=sysuse auto, clear*将foreign weight displ这三个变量的前5个观察数据转换为矩阵Xmkmat foreign weight displ in 1/5, matrix(X) matrix list X*将带条件的数据转换为矩阵Ymkmat foreign weight displ if fore=1, matrix(Y)matrix list Ymatrix A= (1,0,12,1,0-3,2,-5) /录入矩阵Asvmat A /将矩阵A中的数据转化为数据,变量为A1,A2,A3listsvmat A, name(ccb) /将矩阵A中的数据转化为新的变量ccb1,ccb2,ccb38.2矩阵四则运算表5-1:矩阵运算一览表以上表格引用自arlionEstimation with STATAMatrix8.2.1矩阵扩展matrix A= (1,0,12,1,0-3,2,-5) matrix B=(437)matrix C=(A,B)matrix list Cmatrix D= (10,9,25) matrix E= (AD) matrix list E8.2.2矩阵加、减、数乘、除法mat e=(3,52,0)mat t=(1,32,1)mat r1=e+t /加mat list r1mat r2=e-t /减mat list r2mat e2=2*e /数乘(每个元素均乘标量)mat list e2mat e3=e/10 /除法(每个元素均除以一个标量)mat list e38.2.3矩阵乘法、直乘及Kronecker乘积运算mat w=e*t /乘mat list w*矩阵乘法不满足交换律,一般来说a*b=b*amat a=(2,31,-23,1)mat b=(1,-2,-32,-1,0)mat ab=a*bmat list abmat ba=b*amat list ba/*两个矩阵对应元素直接相乘,要求两个矩阵结构相同。*/mat A=(1,23,45,6)mat B=(7,89,01,9) matrix H=hadamard(A,B)mat list H/*矩阵的Kronecker乘积运算定义如下:Kronecker乘积运算对A和B没有任何要求。*/mat ab2=a#bmat list ab2mat ba2=b#amat list ba28.3矩阵函数以上表格引用自arlionEstimation with STATAMatrix8.3.1转置、求迹mat b=(1,-2,-32,-1,0)mat list bmat b2=b /b2为b的转置矩阵mat list b2/*迹的表达式为,它只能对方阵求,其结果是一个数*/matrix A= (1,0,12,1,0-3,2,-5) scalar a=trace(A) /求A的主对角线上的元素之和并赋予该值给bscalar list8.3.2求逆、求行列式的值matrix B=inv(A) /B为A的逆矩阵mat list B/*任务:解线性方程Ax=b,其中:A=(1,-1,1,-22,0,-1,43,2,1,0-1,2,-1,2)b=(24-1-4) */mat A1=(1,-1,1,-22,0,-1,43,2,1,0-1,2,-1,2)mat b=(24-1-4) matrix B1=inv(A1) /B为A的逆矩阵mat X=B1*bmat list Xmat a=(1,0,12,1,0-3,2,-5)scalar aa=det(a) /det()计算行列式的值mat d=(1,-1,1,-2,22,0,-1,4,43,2,1,0,-1-1,2,-1,2,-4)mat dd=det(d)scalar list8.3.3返回或者修改矩阵中某个元素的值el(A,i,j)=Ai,jmat d=(1,-1,1,-2,22,100,-1,4,43,2,1,0,-1-1,2,-1,2,-4)scalar dd=d2,2scalar ddd=el(d,2,2)scalar listmat d1,3=1000mat list d8.3.4Nullmat命令该命令在编程时特别有用,有点类似于数据管理中的mereg命令mat A=I(3)mat B=J(3,3,9)mat list C /矩阵C不存在mat C=(nullmat(C),A) /当C矩阵不存在时,将得到C=Amat list C /C=Amat C=(nullmat(B),A) /C变成由B和A两个矩阵横向对接mat list C /C=(B,A)mat A=A/10mat C=(nullmat(C),A) /C在原来的基础上对接了A变成新的矩阵mat list C /C=(C,A)8.3.5其他矩阵函数matrix A= (1,0,12,1,0-3,2,-5) matrix e=vec(A) /将矩阵A转化为一维列矩阵emat list ematrix d=vecdiag(A) /返回矩阵A的对角元素为一行向量dmatrix list dmat J=J(10,2,.)scalar a=rowsof(J) /求矩阵的行数scalar b=colsof(J) /求矩阵的列数scalar list 8.4随机向量与矩阵代数(选学内容)该部分的目的是更好地理解随机向量的现实运行机理。设(X,Y)的概率分布由右表给出。(数理统计书本73页的例题)X Y-10200.10.2010.30.050.120.1500.1(1)求pX!=0,Y=0; PX=0,Y

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论