MATLAB空间面板数据模型操作简介
关键词:空间面板模型简介,matlab面板数据模型,空间动态面板 matlab
MATLAB安装:在民主湖资源站上下载MATLAB 2009a,或者2010a,按照其中的安装说明安装MATLAB。(MATLAB较大,占用内存较大,安装的话可能也要花费一定的时间)
一、数据布局:
首先我们说一下MATLAB处理空间面板数据时,数据文件是怎么布局的,熟悉eviews的同学可能知道,eviews中面板数据布局是:一个省份所有年份的数据作为一个单元(纵截面:一个时间序列),然后再排放另一个省份所有年份的数据,依次将所有省份的数据排放完,如下图,红框中“1-94”“1-95” “1-96” “1-97”中,1是省份的代号,94,95,96,97表示年份,eviews是将每个省份的数据放在一起,再将所有省份堆放在一起。
与eviews不同,MATLAB处理空间面板数据时,面板数据的布局是(在excel中说明):先排放一个横截面上的数据(即某年所有省份的数据),再将不同年份的横截面按时间顺序堆放在一起。如图:
这里需要说明的是,MATLAB中省份的序号需要与空间权重矩阵中省份一一对应,我们一般就采用《中国统计年鉴》分地区数据中省份的排列顺序。(二阶空间权重矩阵我会在附件中给出)。
二、数据的输入:
MATLAB与excel链接:在excel中点击“工具→加载宏→浏览”,找到MATLAB的安装目录,一般来说,如果安装时没有修改安装路径,此安装目录为:C:\Programfiles\MATLAB\R2009a\toolbox\exlink,点击excllink.xla就可以完成excel与MATLAB的链接。这样的话excel中的数据即可直接导入MATLAB中形成MATLAB的数据文件。操作完成后excel的加载宏界面如图:
选中“Spreadsheet Link EX3.0.3 for use with MATLAB”即表示我们希望excel 与MATLAB
实现链
接。点击确定后,excel窗口如图:
红色框内选项为:
startMATLAB:表示打开MATLAB,一般来说,如果excel实现了与MATLAB的链接,当我们打开excel时,excel会自动启动MATLAB,所以excel的打开速度很慢。
Putmatrix:表示将excel中的数据输入MATLAB中,我们经常用的就是此项,选中需要导入到MATLAB中的数据(就是一个矩阵),点击putmatrix就可以。如:下表是一个数据表格,那么红色框内的数据就是我们需要导入MATLAB中的数据。
选中数据矩阵,点击putmatrix,出现如下窗口:我们需要在弹出的窗口中输入变量名称,即我们选中并输入到MATLAB中的数据矩阵在MATLAB中是以一个变量的形式存在,我们之后在使用时,需要调用该矩阵的某一列(后面详解)。如我们在此输入变量名为“pc”,点击确定。
三、MATLAB窗口
此时原来已经打开的MATLAB窗口如图:
19MATLAB空间面板数据模型操作简介_面板数据模型
这里我们简单介绍一下MATLAB的窗口,与很多我们见过的很多软件,如excel,word,spss一样,MATLAB一样有标题栏、菜单栏、工具栏。
我们主要讲MATLAB的工作窗口,如图,左侧是“控制窗口”,在此可输入很多命令,如打开某一个文件,查找函数,建立模型等等。
右侧上面是“工作空间”,一般是存储我们需要的数据文件(包括导入的原始数据,模型模拟过程中产生的数据文件等),如我们之前导入了变量名为“pc”的一个数据矩阵,就存放在这里,双击“pc”,就能查看该数据文件。
右侧下方是“历史记录”,你在控制窗口进行的任何一项操作都会在这里有显示,所以当你在此需要进行原来某项操作时,其实可以点击历史窗口中相应的记录就可。
控制窗口左侧隐藏了“current directory”,这个是“当前目录”,即我们现在所在的位置。点击“当前目录”就会以浮动的形式出现当前目录,或方便我们查找我们需要的目录。
这是我习惯的一种桌面布局,你也可以根据需要调整,在菜单栏有一项“Desktop”(桌面),点击desktop→desktop layout(桌面布局),会有几种布局形式,大家自己去看吧。
四、与MATLAB相关的重要操作
1、数据文件存储
之前我们已经将模型需要的数据作为一个变量导入并存储在MATLAB的“工作空间”中,由于我们是处理空间面板数据,所以我们还需要导入空间权重矩阵(如命名为“w1”),方法一样。这时我们需要将包含空间权重矩阵“w1”和所有数据的“pc”的数据文件进行存储,方便以后调用。数据存储方法:“File→Save Workspace As”,找到存储的地址,输入文件名,就形成了后缀名为.mat的MATLAB能识别的数据文件。
2、设置路径
MATLAB并没有自带空间计量软件包,这个需要在网上下载(我打包给你们),当然我们也需要将操作MATLAB过程中需要的数据文件、程序等保存在某个文件夹中。MATLAB通过调用软件包中已有的程序命令,以及自己保存的数据文件,来实现模型的模拟。此时我们需要告诉MATLAB它的权限在哪里,即它可以在哪里去查找这些程序、数据等(默认状况下,MATLAB只承认安装目录下文件夹中已有的程序)。所以我们需要为MATLAB设置一条路径,让它能够使用这条路径下包含的程序,数据。
设置路径的方法:点击“File→Set Path”,出现“set path”窗口,如图:
红框下按钮“Add with Subfolders”表示在添加路径时,在文件夹下的子目录也被MATLAB承认,否则该文件夹下的子文件夹中的程序、数据将不能被MATLAB识别,而不能使用。点击此按钮,选择文件夹位置,然后点击该窗口的“Save”就可以实现路径的设置。如图:我将D盘下的MATLAB文件夹及其子文件夹添加到了MATLAB能识别的路径中,那么此文件夹中的所有与MATLAB相关的程序、数据等都能被MATLAB识别并使用。
五、MATLAB程序——空间计量工具箱
一般来说,我们不会在MATLAB的控制窗口一个一个的输入命令,而是在MATLAB的
“Editor”(编辑器)中将一个完整的程序编辑完毕然后进行存储,方便以后使用。当然我们更一般的是使用别人已经编辑好的程序,进行一定的组合和修改来进行自己的研究。
这里先讲MATLAB的空间计量工具箱。在MATLAB官方网上下载的最新版的空间计量工具箱的名称为:“jplv7”。如上图,我在设置路径时,该工具箱已经包含在D盘下的MATLAB文件夹下。这时,我们可以从红框所标识的按钮找到该工具箱,如图,左侧“current directory”(当前目录)即显示该目录下所有的文件夹,其中我们要使用的是“spatial”,该文件夹下包含我们需要的关于空间面数据模型相关的程序,而我们主要使用的完整程序是该文件夹下的“panel”(空间面板)。
我们可以先看一下以“demo”开头的M文件(MATLAB程序),demo即演示,如双击打开“demoLMsarsem_panel”,就会弹出该程序文件的编辑器(editor),点击红圈下的运行按钮,整个程序的运行结果就会显示在MATLAB的“控制窗口”中。
六、空间面板数据模型解读
(一)空间面板数据模型建立的一般步骤是:
1、空间相关性检验:Moran’s I检验,LM检验(这是我目前知道的两种检验方法,对于其他的一些检验如LR,Walds等本来就是用于截面空间数据空间相关性的检验,如何推广到空间面板数据上来,我也不是很清楚,我也没找到相关的程序,只是看到有些人做空间面板数据模型时也给出了这几种检验的结果)。
打包文件中有一个“作业”文件夹,里面有单独的LM与moran检验的M文件,对自己的数据进行空间相关性检验可以直接使用这个程序,当然需要修改某些东西(后面有详解)。
2、空间模型的选择:即选择用SAR模型,还是SEM模型,同时还涉及到固定效应和随机效应选择,以及在固定或随机效应模型中选择(地区固定、时期固定、双固定、还是混合面板)。
LM检验的结果可以为SAR与SEM的选择提供依据(查看相关文献)。面板数据的固定效应SAR模型直接调用“sar_panel_FE”程序,而固定效应SEM直接调用“sem_panel_FE”程序(这些程序已经作为程序文件存在于某个子目录下)。
对于固定效应(地区固定,时间固定,双向固定,混合)的选择,其实只需要在引用上述程序时,对某些指标进行设置。如下图,是截取的一段面板SAR模型的程序,其实我们可以从百分号“%”后的文字去理解这段程序在做什么。
红框中是设定模型是那种固定效应:info.model=0:表示此模型为混合模型,即没有固定效应;info.model=1:表示此模型为地区固定效应模型;info.model=2:表示时间固定效应模型;info.model=3:表示双向固定效应模型。
关于如何使用已有的完整程序来做自己的研究将在后面详解。
(二)学会使用“帮助”自学空间面板数据
关于“panel”文件夹下带有demo字样的M文件,一般都是一个完整的演示文件,可以运行,大家可以读一下。一般等号后面的语句就是对等号左边的变量进行赋值之类的,对于任何命令,都可以在MATLAB的控制窗口输入“which 命令名”进行查找,或者直接使用MATLAB提供的帮助,看该命令是什么意思,该怎么使用(上上图给出了帮助的位置)。下图是“帮助”窗口,在红框内输入如“wk1read”点回车就可以获取“wk1read”的相关解释,用法,描述,实例等等。目前关于MATLAB 用于空间面板计量方面的中文操作书我没有在网上找到,所以也只能通过这种方法来学习“panel”下的每一个M文件到底是干什么用的。
(三)常见的命令:
1、关于%:%后面可以输入中文,对已写程序进行描述和解释,%后的文字是不被运行的。
2、wk1read:读取后缀名为.wk1的数据文件。(wk1数据文件是MATLAB能识别的数据文件,但具体该文件怎么形成的,我也不清楚。我一般使用的都是通过EXCEL链接导入到MATLAB中的数据,该数据存储后后缀名为.mat,该文件的读取,直接使用命令 load,如读取名为“pc”的mat文件,直接用load pc.mat)
3、在任何一个空间面板数据模型的程序中,首先要做的,当然是读取数据,第二步就是对空间面板数据进行描述(也叫定义空间面板数据),同时指定被解释变量y和解释变量x:如下图:
每一行分别表示:
19MATLAB空间面板数据模型操作简介_面板数据模型
这里说明一下矩阵的引用: a(:,[4:6])表示的是矩阵的第四到第六列;逗号前是行号,逗号后是列号;行号、列号必须加中括号[];如果使用连续几行或几列,如第一行到第七行,表示成[1:7]就可以;如果几行将是间断的,用逗号隔开;如果是全部的行或列,可省略数值和中括号,直接打冒号“:”就可以。
4、一般来说使用“panel”下的完整程序,在读懂意思后,我们用于自己的模型时,需要修改的也就是读取的文件名,面板数据的定义和解释变量x被解释变量y的指定,以及在输出时变量的名称,前面的都讲了,现在说说变量的名称。
下面是一段最小二乘法回归以及LM检验,moran检验的程序:
“results=ols(y,[xconstant x]);”表示以y作为被解释变量,x作为解释变量的含有常数项的最小二乘法回归(xconstant即表示含有常数项),该命令运行结果全部存储在results中;
“vnames=strvcat(‘gy’,’intercept’,’logy0′,’logpc’,’gpc’,’emp’,’edu’,’inv’,’fir’);”即是对最终显示在控制窗口中的变量进行命名,将此名字赋值给“vnames”变量;
“prt_reg(results,vnames,1);”即:将最小二乘法回归的结果输出到控制窗口中。 也就是说我们需要根据自己的模型修改“vnames=strvcat(···)”括号中的变量名,gy是被解释变量名,因为有常数项,intercept表示常数项,logy0等后面的全部是按X矩阵中每列数据具体代表的变量进行变量命名。
备注:
空间计量工具箱jplv7→spatial→panel下有一个演示程序:demopanelscompare好像是随机效应与混合模型的选择,使用的方法是LR检验,我没怎么读懂,所以也一直没用,由于大多数文献使用的是固定效应,所以对随机效应问题也没怎么认真地研究。
转载请注明:数据分析 » MATLAB空间面板数据模型操作简介 空间面板数据模型