- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8 矩阵
STATA9.0版本的矩阵组件有了根本的革新,出现了与其他专门的矩阵运算软件功能一样强大的新组件MATA,用MATA可以完成除绘图以外的所有STATA数据处理和分析功能。这里介绍的仍然是传统的STATA矩阵命令,如果对MATA有兴趣,请参看笔者即将编写的另一本讲义(《MATA讲义》)。
8.1生成矩阵
8.1.1输入新矩阵
可以直接录入一个新的矩阵
matrix A= (1,0,1\2,1,0\-3,2,-5) //录入矩阵A
matrix list A //显示录入的矩阵A
matlist A //显示录入的矩阵A,该命令只能在stata9以上版本使用
matrx B=(1+1,2*3/4 \ 5/2, 3^2)
matrix list B
matrix C=(2,3,4)
matrix E=(1\2\3)
matrix F=(4)
matrix rownames A= sex edu marriage
matrix colnames A=obs1 obs2 obs3
matrix list
8.1.2生成特定格式矩阵
生成一个5行3列的矩阵A,矩阵中的元素均为0
matrix A=J(5,3,0)
生成一个6阶单位阵I
matrix I=I(6)
生成一个3行5列的随机矩阵R,每个随机元素均服从(0,1)均匀分布
matrix R=matuniform(3,5)
matrix d=(1,4,9)
matrix D=diag(d) //以d中元素为对角元素生成对角矩阵D
matrix list D
8.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个观察数据转换为矩阵X
mkmat foreign weight displ in 1/5, matrix(X)
matrix list X
*将带条件的数据转换为矩阵Y
mkmat foreign weight displ if fore==1, matrix(Y)
matrix list Y
matrix A= (1,0,1\2,1,0\-3,2,-5) //录入矩阵A
svmat A //将矩阵A中的数据转化为数据,变量为A1,A2,A3
list
svmat A, name(ccb) //将矩阵A中的数据转化为新的变量ccb1,ccb2,ccb3
8.2矩阵四则运算
表5-1:矩阵运算一览表
以上表格引用自arlion《Estimation with STATA-Matrix》
8.2.1矩阵扩展
matrix A= (1,0,1\2,1,0\-3,2,-5)
matrix B=(4\3\7)
matrix C=(A,B)
matrix list C
matrix D= (10,9,25)
matrix E= (A\D)
matrix list E
8.2.2矩阵加、减、数乘、除法
mat e=(3,5\2,0)
mat t=(1,3\2,1)
mat r1=e+t //加
mat list r1
mat r2=e-t //减
mat list r2
mat e2=2*e //数乘(每个元素均乘标量)
mat list e2
mat e3=e/10 //除法(每个元素均除以一个标量)
mat list e3
8.2.3矩阵乘法、直乘及Kronecker乘积运算
mat w=e*t //乘
mat list w
*矩阵乘法不满足交换律,一般来说a*b~=b*a
mat a=(2,3\1,-2\3,1)
mat b=(1,-2,-3\2,-1,0)
mat ab=a*b
mat list ab
mat ba=b*a
mat list ba
/*两个矩阵对应元素直接相乘,要求两个矩阵结构相同。*/
mat A=(1,2\3,4\5,6)
mat B=(7,8\9,0\1,9)
matrix H=h
文档评论(0)