带你了解Stata中的矩阵 您所在的位置:网站首页 矩阵行列式为0 带你了解Stata中的矩阵

带你了解Stata中的矩阵

#带你了解Stata中的矩阵| 来源: 网络整理| 查看: 265

0 分享至

用微信扫码二维码

分享至好友和朋友圈

本文作者:邱 沣,河南大学经济学院 本文编辑:温和铭 技术总编:李婷婷

矩阵是高等代数学中的常见工具,在数理统计方面更是作用甚广。今天我们主要介绍一下Stata中矩阵的使用,包括矩阵的读入、矩阵的命名、矩阵之间的运算等。

读入矩阵及简单的矩阵命令

在Stata中,矩阵matrix,可以简写为mat。输入一个新的矩阵一般有两种方法:第一种是直接使用matrix,另一种是使用matrix input。

matrix:矩阵读入命令,后面加矩阵名和具体行列数值。矩阵的每行数值用“ \ ”隔开,每列数值用“,”分隔。比如我们读入一个新的矩阵 A ,矩阵A的第一行的第一、二列数值分别为1,2;第二行的第一、二列数值分别为3,4。读入矩阵的命令就如下所示:

matrix A= (1,2\3,4)

matrix input:矩阵读入命令,和matrix两者的差异在于,matrix可以读入元素是带有运算符号的矩阵,而matrix input仅限于数字。例如:

matrix A = (6+1, 2*2/5 \ 6/4, 3-6\4,8)matrix input B = (1,2 \ 3,4 \5,6)

下边再介绍一些简单的矩阵显示、矩阵删除、矩阵重命名的命令。

mat dir:列出内存中所有矩阵。

mat list:显示矩阵。

mat drop:删除矩阵。

mat drop_all:删除全部矩阵。

mat rename:矩阵重命名。

我们可以通过下边的综合案例来看一下这几个命令的用法~

matrix A = (1,2.3,4.5) //首先读入一个矩阵Amatrix input B = (1,2.3,4.5) //读入矩阵Bmat list A //列出矩阵Amat list B //列出矩阵Bmat dir //显示内存中的所有矩阵mat rename A C //将矩阵A命名为Cmat drop C //删除矩阵C

命名矩阵的行和列

我们在Stata中使用矩阵时,有时需要给它们一个自定义的名称,这时我们在命令matrix后面分别添加命令rownames和colnames就能完成对矩阵行和列的命名。在Stata中对于任意一个新读入的矩阵,系统会自动赋予行名和列名,分别为r1,r2,…;c1,c2,…。

首先读入矩阵A并且展示一下矩阵A,可以看到矩阵A的行名称和列名称分别为r1,r2,r3,c1,c2,c3。我们可以将矩阵A的行名称分别命名为a、b、c,将矩阵A的列名称分别命名为obs1、obs2、obs3。程序如下所示:

mat A = (9,8,7\6,5,4\3,2,1)mat list Amatrix rownames A =a b cmatrix colnames A=obs1 obs2 obs3mat list A

重新命名前的矩阵A如下图所示:

命名后的矩阵A如下图所示:

提取矩阵中的元素

接下来我们来看一下如何提取矩阵中的单个元素。

首先我们要明确元素所在的行数和列数,如A[i,j]表示矩阵A的第i行第j列元素,或者用行和列的名称来指代,如A[“ri”,“rj”],表示矩阵A中行名为“ri”,列名为“rj”的元素,不过这样一来得到的是一个矩阵。我们通过例子来看一下提取矩阵中单个元素的方法:

clearmat A=(1,1,1\2,2,2\3,3,3)disp A[2,2] //返回A矩阵2行2列的元素为2mat B=A/A[2,2] //生成B矩阵等于A矩阵除以二行二列的元素mat l B //展示B矩阵mat a=A["r2","c3"] //生成a矩阵等于A矩阵二行三列的元素mat l amat b=B[2,"c3"]mat l b

运行结果如下:

下面我们来看如何提取矩阵中的多个元素。

提取矩阵的多个元素可以用符号“ .. ”实现,比如A[1..3,2..3]表示,矩阵A的第1至第3行,第2至第3列元素;A[.,2...]表示矩阵A的所有行,第2列至最后一列元素,当然也可以用行名和列名进行提取。

clearmat A=(1,1,1,1\2,2,2,2\3,3,3,3\4,4,4,4)mat C=A[1..4,2..4]mat l Cmat D=A[1...,2...]mat l Dmat E=A["r1",1...]mat l Emat F=A[1,3...]\A[4,3...]mat l F

首先读入矩阵A,生成一个矩阵C,矩阵C由矩阵A的第一行到第四行,第二列到第四列组成;生成一个矩阵D,矩阵D由矩阵A的第一行到第四行,第二列到第四列组成;生成一个矩阵E,矩阵E由矩阵A的第一行,第一列到第四列组成,最后生成一个矩阵F,矩阵F由矩阵A的第一行,第三列到第四列组成的矩阵纵向拼接上由矩阵A的第四行,第三列到第四列组成的矩阵组合而成。根据矩阵A生成的矩阵C、矩阵D、矩阵E、矩阵F如下图所示:

矩阵的简单运算及一些相关函数

前面介绍了一些矩阵的简单基础的命令,下面介绍一下矩阵之间的简单运算,首先我们先了解一些矩阵的运算符。

符号说明将行数相同的两个或者多个矩阵横向连接将列数相同的两个或者多个矩阵纵向连接+, -矩阵的加法(减法),注意矩阵的行数和列数需都相同矩阵相乘,左边矩阵的列数要等于右边矩阵的行数矩阵与某个数相除矩阵的转置

举例介绍矩阵之间的运算:

clear allmat A=(1,2,3\4,5,6\7,8,9)mat B=(2,6,4\6,4,6\1,5,3)mat C=A,B //将A B矩阵横向拼接mat D=A-Bmat E=A\B //将A B矩阵纵向拼接mat F=A*Bmat G=B/2mat H=A'mat I=A#B //矩阵之间的Kronecker积

截取部分结果如下:

Stata中还有类型丰富的矩阵函数,使用好它们将大大提升我们数据处理的能力。

(1)返回行列数:

colnumb(X,name):返回矩阵X中列名为name的所在列数。

rownumb(X,name):返回矩阵X中行名为name的所在行数。

colsof(X):返回矩阵X的列数。

rowsof(X):返回矩阵X的行数。

clear allmat A=(1,1,1\2,2,2\3,3,3)mat rownames A =a b cmat colnames A=obs1 obs2 obs3disp rownumb(A,"b")disp colnumb(A,"obs3")disp colsof(A)disp rowsof(A)

首先读入一个矩阵A,并对它的行列分别进行命名,接着就是返回矩阵A中行名为b的所在行数和列名为obs3的所在列数,最后返回矩阵A的列数和行数。运行结果如下:

(2)矩阵的简单函数:

diag0cnt(X):返回矩阵X的对角线上零元素的个数。

el(X,n,m):返回矩阵X中n行m列的数值。

det(X):返回矩阵X的行列式值。

trace(X):返回X的迹,即矩阵X的对角元素的和。

matmissing(X):如果矩阵X中有缺失值,返回1;否则返回0。

issymmetric(X):如果矩阵X是对称的,返回1;否则返回0。

clear allmat A=(1,1,1\2,0,2\3,3,0)disp diag0cnt(A)disp el(A,2,2)disp det(A)disp trace(A)disp matmissing(A)disp issymmetric(A)

矩阵和变量的转化

Stata中变量和矩阵的转化,由命令mkmat和svmat完成,分别如下:

mkmat:将数值型变量中的观测值转变为矩阵。

svmat:将矩阵转变成变量。

案例介绍:

sysuse auto,clearmkmat mpgmatrix list mpgmkmat price foreign mpg, matrix(A)matrix list Aclear allmat B=(1,2,3\4,5,6\7,8,9)svmat B,names(var)list

首先我们导入auto数据,将变量mpg转化为矩阵,然后将变量price foreign mpg 转化为74行3列的矩阵A。最后输入一个矩阵B,将矩阵B转化为变量,截取部分结果如下:

以上就是本次推文对Stata矩阵的简单介绍啦,大家对于矩阵有哪些想要补充以及详细了解的内容,欢迎留言哦。

北京天演融智软件有限公司(科学软件网)作为Stata软件在中国的授权经销商,除了提供以下免费视频教程外,还提供软件的免费试用。如果您对Stata 17感兴趣,欢迎联系我们申请试用。

免费资源

2021年Stata大会专题讲座回放

解锁Stata17新功能专题讲座

Stata软件应用 教程

2020年Stata大会专题讲座回放

以上视频资源可免费申请,申请方式如下:1、(推荐)自己注册账户,将本课程放入购物车,提交并结算,到付款页面,您不用支付,关闭页面即可,然后发邮件告诉我们 您的账户,我们给您开通。

2、将您的姓名、单位、联系电话、联系邮箱,以及申请课程名称发送至[email protected],开通成功后我们将以邮件形式告知您的账号及密码,您直接登录观看即可。

扫码了解更多

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/ 返回网易首页 下载网易新闻客户端


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有