R语言 普通r语言面板数据据分析

3515人阅读
数据挖掘(10)
机器学习(7)
R语言数据分析系列之三
上次讲了vector这次讲matrix,array,dataframe,ts
matrix 矩阵
R语言中矩阵可以理解为是由两个及两个以上的向量组成。
从向量创建
& x &- sample(1:100,16)
[1] 14 43 89& 3 96 58 61 75 33 66 24 54 45 15& 6 44
& m &- matrix(x)
& m &&&&&&
&&&&&&& [,1]&
[1,]&& 14&
[2,]&& 43&
[3,]&& 89&
[4,]&&& 3&
[5,]&& 96&
[6,]&& 58&
[7,]&& 61&
[8,]&& 75&
[10,]&& 66
[11,]&& 24
[12,]&& 54
[13,]&& 45
[14,]&& 15
[15,]&&& 6
[16,]&& 44
我们看到现在是16*1矩阵那么我们如果得到我们想要的m*n矩阵呢,方法如下:
& dim(m) &- c(4,4)
&&&&&& [,1] [,2] [,3] [,4]
[1,]&& 14&& 96&& 33&& 45
[2,]&& 43&& 58&& 66&& 15
[3,]&& 89&& 61&& 24&&& 6
[4,]&&& 3&& 75&& 54&& 44
也可以在创建的时候直接指定
& matrix(x,4,4)
我们发现这些矩阵在生成的时候都是按照列来采集数据的,那么我们可不可以按照行来生成矩阵呢,答案是可以的如下:
& matrix(x,4,4,byrow=T) &&&&&
&&&&&&&&[,1] [,2] [,3] [,4]
[1,]&& 14&& 43&& 89&&& 3
[2,]&& 96&& 58&& 61&& 75
[3,]&& 33&& 66&& 24&& 54
[4,]&& 45&& 15&&& 6&& 44
dim函数用来查看矩阵的维度,也可以修改矩阵的维度,上面我们已经用到了。
矩阵的访问以及操作
刚才我们已经有了一个矩阵m那么我们如何访问矩阵中的向量以及元素呢,如下所示
按行访问:
[1] 14 96 33 45
按列访问:
[1] 14 43 89& 3
访问某一个元素:
删除一列:
删除一行:
按行追加向量:
& rbind(m,c(1,1,1,1))
按列追加向量:
& cbind(m,c(2,2,2,2))
追加向量时要注意维度一定要一致。
矩阵运算:
先创建两个矩阵
& m1 &- matrix(sample(1:200,4),2,2)
& m2 &- matrix(sample(1:200,4),2,2)
矩阵加/减法:
m1 +(-) m2
矩阵间每个元素相加(减)得到新的矩阵
矩阵元素相乘
矩阵1与矩阵2的每个元素相乘得到新的矩阵。
& m1 %*% m2
解矩阵m1 %*% X = m2
& solve(m1,m2)
可直接解出来 X
特征值和特征向量
& res &- eigen(m1)
该函数返回一个list,第一个元素为values即特征值,第二个元素为vectors即特征向量。
Array 数组
R语言中的数组其实是矩阵的扩展,矩阵可以理解为一个二维数组。
创建一个三维数组
& a &- array(1:30,c(2,5,3))
访问数组的第一维数据
& a[,,1] &&&&&
&&& [,1] [,2] [,3] [,4] [,5]
[1,] &&&1&&& 3&&& 5&&& 7&&& 9
[2,]&&& 2&&& 4&&& 6&&& 8&& 10
每个维度都是一个2 * 5矩阵
& class(a[,,1])
[1] &matrix&
访问第一个矩阵的第一行
[1] 1 3 5 7 9
&list可以保存不同类型得向量,而数组不可以如:
& dl &- list(x=c(1,2,3),y=c('first','second'),z=(4+3i))
$x [1] 1 2 3
$x [1] 1 2 3
list 支持下标索引和列明索引
列表还可以转化为向量
& unlist(dl)
dataframe 数据框
R语言中数据框是最实用得一种数据结构,因为很多算法的输入就是数据框,并且数据的输入读取的结构类型大多是数据框,可见dataframe很重要。
Dataframe 数据框创建
& df.data &- data.frame(matrix(sample(1:20,16),c(4,4)))
& df.data &&
&&X1 X2 X3 X4
&&1& &&15& 9 11& 2
1&&&& 6& 5& 4 10
2&&&& 1 17 19& 8
4&&& 12 13 14 20
我们也可以直接创建:
& df.web &- data.frame(date = c('','','',''),pv=c(,),times=c(30.98,20.09,22.98,40.09))
& df.web &&&&&&
&&&&&date&&& pv times
1 34 30.98
2 19 20.09
3 87 22.98
4 99 40.09
Dataframe 数据框的索引
数据框的列和行都是可以单独命名的,并且可以通过这些名称索引也可以通过下标索引:
& names(df.web)
[1] &date&& &pv&&&& &times&
& row.names(df.web)
[1] &1& &2& &3& &4&
& row.names(df.web)[1] &- 'firstrow'
& row.names(df.web)
[1] &firstrow& &2&&&&&&&& &3&&&&&&&& &4&
通过列名可以索引整列,也可通过下标方式
& df.web$pv
& df.web[,2]
范围索引和matrix一样,比如:
& df.web[2:3,c('pv','times')]
&&& pv times
subset函数,该函数可以用来方便的进行条件索引:
& subset(df.web,pv&10000&pv&20000,c(times,pv))
Dataframe 操作
rbind 与cbind
& levels(df.web$date)[5] &- ''
& rbind(df.web,c(',1))
& cbind(df.web,uv=c(00,5000))
数据框的删除与matrix矩阵的删除方式一样,不在赘述。
ts 时间序列
时间序列是一种随着时间特性的变化数据,我们可以方便的进行季节性月度和年度的变化分析
时间序列创建的形式中如果将frequency=12为月度变化,设为4为季度变化,设为1为年度变化
首先虚拟出一个销量数据:
&&data &- sample(10:10000,84)
& t &- ts(data[1:5],frequency=1,start=c(2006))
&TimeSeries:
Start = 2006&
End = 2010
Frequency = 1&
[1] 73& 515&190
& t &-ts(data[1:16],frequency=4,start=c(2006))
&&&&&& Qtr1Qtr2 Qtr3 Qtr4
& t &- ts(data[1:24],frequency=12,start=c(2006))
&&&&&&& Jan& Feb&Mar& Apr& May&Jun& Jul& Aug&Sep& Oct& Nov&Dec
2006 &&3& 515& 190 96 42& 398
2007& &725 77 93 4
& plot(decompose(t))
图中trend为变化趋势,seasonal季节性周期变化,random为随机误差。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:159174次
积分:1971
积分:1971
排名:第14732名
原创:40篇
评论:57条
(5)(5)(1)(1)(1)(3)(2)(1)(2)(1)(13)(1)(6)(3)(2)(1)(1)苹果/安卓/wp
积分 6, 距离下一级还需 4 积分
权限: 设置帖子权限
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯下一级可获得
道具: 金钱卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
R软件如何运算面板数据,有没有现成的函数?急!谢谢,谢谢了!
载入中......
本帖被以下文库推荐
& |主题: 532, 订阅: 100
有专门一个package plm可以做这方面的分析,变截距、变系数、动态等
R is the second language for me!Using R is standing on the shoulders of giants!& &Let\'s use R together!
给一个我自己的例子,供大家参考:数据为我国30个省直辖市的历年多个经济指标的数据1a&-read.table()a[1:10,]attach(a)library(kinship)library(survival)library(splines)library(nlme)library(lattice)library(plm)&form&-lnGDP~lnFDI+lngd+lnjk+lncs+sc+fn+lngxwi&-plm(form,data=a,model="within")re&-plm(form,data=a,model="random")phtest(wi,re)& phtest(wi,re)&&&&&&&& Hausman Test&data:& lnGDP ~ lnFDI + lngd + lnjk + lncs + sc + fn + lngx chisq = 433.8309, df = 7, p-value & 2.2e-16alternative hypothesis: one model is inconsistentpfixed-effect panel data model&2individual effect and time effectwi&-plm(form,data=a,model="within")re&-plm(form,data=a,model="random")phtest(wi,re)pooltest(form,data=a,effect="individual",model="within")& phtest(wi,re)&&&&&&&& Hausman Test&data:& lnGDP ~ lnFDI + lngd + lnjk + lncs + sc + fn + lngx chisq = 433.8309, df = 7, p-value & 2.2e-16alternative hypothesis: one model is inconsistent Hausmanp& pooltest(form,data=a,effect="time",model="within")Total Sum of Squares: 223.65Residual Sum of Squares: 5.5215Multiple R-Squared: 0.97531F-statistic: 1585.84 on 281 and 7 DF, p-value: 4.4705e-11Total Sum of Squares: 258.15Residual Sum of Squares: 176.55Multiple R-Squared: 0.3161&&&&&&&& F statistic&data:& lnGDP ~ lnFDI + lngd + lnjk + lncs + sc + fn + lngx F = -3.3521, df1 = 63, df2 = 218, p-value = p-value = 0.03344alternative hypothesis: unstability &ptwo-way model&&3&& #Wooldridge test for AR(1) Errors in fixed-effect models& pwartest(form,data=a) chisq = 160.7113, p-value & 2.2e-16alternative hypothesis: serial correlation && #Breusch-Godfrey test & pbgtest(form,data=a,model="within")chisq = 110.3584, df = 8, p-value & 2.2e-16alternative hypothesis: serial correlation in idiosyncratic errors —WooldridgeBreusch-Godfrey&4& & z&-plm(form2,data=a,effect="twoways",model="within")& summary(z)Twoways effects Within Model&Call:plm(formula = lnGDP ~ lag(lnGDP, 1) + lnFDI + lngd + lnjk + lncs + &&& sc + fn + lngx, data = a, effect = "twoways", model = "within")&Unbalanced Panel: n=30, T=7-9, N=268&Residuals :&&& Min.& 1st Qu.&& Median& 3rd Qu.&&&& Max. -0.090 -0.00151& 0.01090& 0.05160 &Coefficients :&&&&&&&&&&&&&&&& Estimate& Std. Error t-value& Pr(&|t|)&&& lag(lnGDP, 1)& 0.& 0..4509 & 2.2e-16 ***lnFDI&&&&&&&& -0.& 0..1464& 0.001653 ** lngd&&&&&&&&&& 0.& 0.& 7.e-14 ***lnjk&&&&&&&&&& 0.& 0.& 1.8992& 0.057534 .& lncs&&&&&&&&& -0.& 0..7397& 0.459503&&& sc&&&&&&&&&&& -0.& 0..3540& 0.018573 *& fn&&&&&&&&&&&& 0.& 0.& 1.1022& 0.270364&&& lngx&&&&&&&&&& 0.& 0.& 2.1986& 0.027903 *& ---Signif. codes:& 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &Total Sum of Squares: 0.90123Residual Sum of Squares: 0.078496Multiple R-Squared: 0.9129F-statistic: 290.854 on 222 and 8 DF, p-value: 1.5546e-09&&plncs fn& fixef(z,effect="time")&&& 1998&&&& 1999&&&& 2000&&&& 2001&&&& 2002&&&& 2003&&&& 2004&&&& 2005 7........454333 &&& 2006 8.607333 &&GNP& fixef(z,effect="individual")&&&& &&&&& &&&&& &&&&& &&&&& &&&&& &&&&&
0.......2636895 &&&& &&&&& &&&&& &&& &&&&& &&&&& &&&&&
0.......2814821 &&&& &&&&& &&&&& &&& &&&&& &&&&& &&&&&
0.......3657338 &&&& &&&&& &&&&& &&&&& &&&&& &&&&& &&&&&
0.......2897662 &&&& &&&&&
0..2772177&&5lncs fn& form3&-dynformula(lnGDP~lnFDI+lngd+lnjk+sc+lngx,list(1,0,0,0,0,0))& z1&-plm(form3,data=a,effect="twoways",model="within")& summary(z1)Twoways effects Within Model&Call:plm(formula = lnGDP ~ lag(lnGDP, 1) + lnFDI + lngd + lnjk + sc + &&& lngx, data = a, effect = "twoways", model = "within")&Unbalanced Panel: n=30, T=7-9, N=268&Residuals :&&& Min.& 1st Qu.&& Median& 3rd Qu.&&&& Max. -0.070 -0.00148& 0.01040& 0.05270 &Coefficients :&&&&&&&&&&&&&&&& Estimate& Std. Error t-value& Pr(&|t|)&&& lag(lnGDP, 1)& 0.& 0..0585 & 2.2e-16 ***lnFDI&&&&&&&& -0.& 0..3396& 0.000839 ***lngd&&&&&&&&&& 0.& 0.& 7.e-14 ***lnjk&&&&&&&&&& 0.& 0.& 1.8467& 0.064791 .& sc&&&&&&&&&&& -0.& 0..4408& 0.014654 *& lngx&&&&&&&&&& 0.& 0.& 2.6585& 0.007850 ** ---Signif. codes:& 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 &Total Sum of Squares: 0.90123Residual Sum of Squares: 0.079205Multiple R-Squared: 0.91211F-statistic: 387.46 on 224 and 6 DF, p-value: 7.8975e-08&&0.07& fixef(z1,effect="individual")&&&& &&&&& &&&&& &&&&& &&&&& &&&&& &&&&&
0.......2206860 &&&& &&&&& &&&&& &&& &&&&& &&&&& &&&&&
0.......2534690 &&&& &&&&& &&&&& &&& &&&&& &&&&& &&&&&
0.......3226166 &&&& &&&&& &&&&& &&&&& &&&&& &&&&& &&&&&
0.......2444440 &&&& &&&&&
0..2382718&& fixef(z1,effect="time")&&& 1998&&&& 1999&&&& 2000&&&& 2001&&&& 2002&&&& 2003&&&& 2004&&&& 2005 7........454333 &&& 2006 8.607333
总评分:&论坛币 + 5&
学术水平 + 5&
热心指数 + 5&
信用等级 + 5&
很好,非常详细!!!尤其是Hausman检验,需要先对固定效应和随机效应做比较检验,做检验时phtest注意固定效应和随机效应的顺序!
R is the second language for me!Using R is standing on the shoulders of giants!& &Let\'s use R together!
R软件中有一个plm package,请安装这个package,在google中搜索《Panel Data Econometrics in R: The plm Package》并下载该pdf文档,按照该文档中介绍的方法就可以进行面板数据分析了。最简单的方法就是将该文档的命令复制到R中,按一个回车键就可以将文档中的例子演示一下,试一试吧。你可以在如下网站下载该PDF文档:
总评分:&学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
那个pdf不错,值得推荐!!
R is the second language for me!Using R is standing on the shoulders of giants!& &Let\'s use R together!
& 很好,我原来拿EViews做面板,还是低版本的,但是知道原理也能做,也不是很麻烦。不过学习一下R来做也很好,顶一下。
很好啊,可以多学学
请问lz你导入面板数据是怎么排列的?用什么函数导入,能提供代码不
初级热心勋章
初级热心勋章
初级信用勋章
初级信用勋章
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
加入我们,立即就学扫码下载「就学」app& Join us!& JoinLearn&
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师数学基础(41)
转载自:/storage-systems-115248.htm
面板数据分析方法或许我们已经了解许多了,但是到底有没有一个基本的步骤呢?那些步骤是必须的?这些都是我们在研究的过程中需要考虑的,而且又是很实在的问题。面板单位根检验如何进行?协整检验呢?什么情况下要进行模型的修正?
面板模型回归形式的选择?如何更有效的进行回归?诸如此类的问题我们应该如何去分析并一一解决?以下是我近期对面板数据研究后做出的一个简要总结,和大家分享一下,也希望大家都进来讨论讨论。
步骤一:面板数据分析之分析数据的平稳性(单位根检验)
按照正规程序,面板数据模型在回归前需检验数据的平稳性。李子奈曾指出,一些非平稳的经济时间序列往往表现出共同的变化趋势,而这些序列间本身不一定有直接的关联,此时,对这些数据进行回归,尽管有较高的R平方,但其结果是没有任何实际意义的。这种情况称为称为虚假回归或伪回归(spurious regression)。
他认为平稳的真正含义是:一个时间序列剔除了不变的均值(可视为截距)和时间趋势以后,剩余的序列为零均值,同方差,即白噪声。因此单位根检验时有三种检验模式:既有趋势又有截距、只有截距、以上都无。
因此为了避免伪回归,确保估计结果的有效性,我们必须对各面板序列的平稳性进行检验。而检验数据平稳性最常用的办法就是单位根检验。首先,我们可以先对面板序列绘制时序图,以粗略观测时序图中由各个观测值描出代表变量的折线是否含有趋势项和(或)截距项,从而为进一步的单位根检验的检验模式做准备。
单位根检验方法的文献综述:在非平稳的面板数据渐进过程中,Levin andLin(1993) 很早就发现这些估计量的极限分布是高斯分布,这些结果也被应用在有异方差的面板数据分析中,并建立了对面板单位根进行检验的早期版本。后来经过Levin et al. (2002)的改进,提出了检验面板单位根的LLC 法。Levin et al. (2002) 指出,该方法允许不同截距和时间趋势,异方差和高阶序列相关,适合于中等维度(时间序列介于25~250 之间,截面数介于10~250 之间) 的面板单位根检验。
Im et al. (1997) 还提出了检验面板单位根的IPS 法,但Breitung(2000) 发现IPS 法对限定性趋势的设定极为敏感,并提出了面板单位根检验的Breitung 法。Maddala and Wu(1999)又提出了ADF-Fisher和PP-Fisher面板单位根检验方法。
由上述综述可知,可以使用LLC、IPS、Breintung、ADF-Fisher 和PP-Fisher5种方法进行面板单位根检验。
其中LLC-T 、BR-T、IPS-W 、ADF-FCS、PP-FCS 、H-Z 分别指Levin, Lin & Chu t* 统计量、Breitung t 统计量、lm Pesaran & Shin W 统计量、ADF- Fisher Chi-square统计量、PP-Fisher Chi-square统计量、Hadri Z统计量,并且Levin, Lin & Chu t* 统计量、Breitung t统计量的原假设为存在普通的单位根过程,lm Pesaran & Shin W 统计量、ADF- Fisher
Chi-square统计量、PP-Fisher Chi-square统计量的原假设为存在有效的单位根过程, Hadri Z统计量的检验原假设为不存在普通的单位根过程。
有时,为了方便,只采用两种面板数据分析单位根检验方法,即相同根单位根检验LLC(Levin-Lin-Chu)检验和不同根单位根检验Fisher-ADF检验(注:对普通序列(非面板序列)的单位根检验方法则常用ADF检验),如果在两种检验中均拒绝存在单位根的原假设则我们说此序列是平稳的,反之则不平稳。
如果我们以T(trend)代表序列含趋势项,以I(intercept)代表序列含截距项,T&I代表两项都含,N(none)代表两项都不含,那么我们可以基于前面时序图得出的结论,在单位根检验中选择相应检验模式。
但基于时序图得出的结论毕竟是粗略的,严格来说,那些检验结构均需一一检验。具体操作可以参照李子奈的说法:ADF检验是通过三个模型来完成,首先从含有截距和趋势项的模型开始,再检验只含截距项的模型,最后检验二者都不含的模型。
并且认为,只有三个模型的检验结果都不能拒绝原假设时,我们才认为时间序列是非平稳的,而只要其中有一个模型的检验结果拒绝了零假设,就可认为时间序列是平稳的。
此外,单位根检验一般是先从水平(level)序列开始检验起,如果存在单位根,则对该序列进行一阶差分后继续检验,若仍存在单位根,则进行二阶甚至高阶差分后检验,直至序列平稳为止。我们记I(0)为零阶单整,I(1)为一阶单整,依次类推,I(N)为N阶单整。
步骤二:面板数据分析之协整检验或模型修正
情况一:如果基于单位根检验的结果发现变量之间是同阶单整的,那么我们可以进行协整检验。协整检验是考察变量间长期均衡关系的方法。所谓的协整是指若两个或多个非平稳的变量序列,其某个线性组合后的序列呈平稳性。此时我们称这些变量序列间有协整关系存在。因此协整的要求或前提是同阶单整。
但也有如下的宽限说法:如果变量个数多于两个,即解释变量个数多于一个,被解释变量的单整阶数不能高于任何一个解释变量的单整阶数。另当解释变量的单整阶数高于被解释变量的单整阶数时,则必须至少有两个解释变量的单整阶数高于被解释变量的单整阶数。如果只含有两个解释变量,则两个变量的单整阶数应该相同。
也就是说,单整阶数不同的两个或以上的非平稳序列如果一起进行协整检验,必然有某些低阶单整的,即波动相对高阶序列的波动甚微弱(有可能波动幅度也不同)的序列,对协整结果的影响不大,因此包不包含的重要性不大。
而相对处于最高阶序列,由于其波动较大,对回归残差的平稳性带来极大的影响,所以如果协整是包含有某些高阶单整序列的话(但如果所有变量都是阶数相同的高阶,此时也被称作同阶单整,这样的话另当别论),一定不能将其纳入协整检验。
协整检验方法的文献综述:
(1)Kao(1999)、Kao and Chiang(2000)利用推广的DF和ADF检验提出了检验面板协整的方法,这种方法零假设是没有协整关系,并且利用静态面板回归的残差来构建统计量。
(2)Pedron(1999)在零假设是在动态多元面板回归中没有协整关系的条件下给出了七种基于残差的面板协整检验方法。和Kao的方法不同的是,Pedroni的检验方法允许异质面板的存在。
(3)Larsson et al(2001)发展了基于Johansen(1995)向量自回归的似然检验的面板协整检验方法,这种检验的方法是检验变量存在共同的协整的秩。
我们主要采用的是Pedroni、Kao、Johansen的方法。
通过了协整检验,说明变量之间存在着长期稳定的均衡关系,其方程回归残差是平稳的。因此可以在此基础上直接对原方程进行回归,此时的回归结果是较精确的。
这时,我们或许还想进一步对面板数据分析做格兰杰因果检验(因果检验的前提是变量协整)。但如果变量之间不是协整(即非同阶单整)的话,是不能进行格兰杰因果检验的,不过此时可以先对数据进行处理。引用张晓峒的原话,“如果y和x不同阶,不能做格兰杰因果检验,但可通过差分序列或其他处理得到同阶单整序列,并且要看它们此时有无经济意义。”
下面简要介绍一下因果检验的含义:这里的因果关系是从统计角度而言的,即是通过概率或者分布函数的角度体现出来的:在所有其它事件的发生情况固定不变的条件下,如果一个事件X的发生与不发生对于另一个事件Y的发生的概率(如果通过事件定义了随机变量那么也可以说分布函数)有影响,并且这两个事件在时间上又有先后顺序(A前B后),那么我们便可以说X是Y的原因。
考虑最简单的形式,Granger检验是运用F-统计量来检验X的滞后值是否显著影响Y(在统计的意义下,且已经综合考虑了Y的滞后值;如果影响不显著,那么称X不是Y的“Granger原因”(Granger cause);如果影响显著,那么称X是Y的“Granger原因”。同样,这也可以用于检验Y是X的“原因”,检验Y的滞后值是否影响X(已经考虑了X的滞后对X自身的影响)。
Eviews好像没有在POOL窗口中提供Granger causality test,而只有unit root test和cointegration test。说明Eviews是无法对面板数据序列做格兰杰检验的,格兰杰检验只能针对序列组做。也就是说格兰杰因果检验在Eviews中是针对普通的序列对(pairwise)而言的。你如果想对面板数据中的某些合成序列做因果检验的话,不妨先导出相关序列到一个组中(POOL窗口中的Proc/Make Group),再来试试。
情况二:如果如果基于单位根检验的结果发现变量之间是非同阶单整的,即面板数据中有些序列平稳而有些序列不平稳,此时不能进行协整检验与直接对原序列进行回归。但此时也不要着急,我们可以在保持变量经济意义的前提下,对我们前面提出的模型进行修正,以消除数据不平稳对回归造成的不利影响。
如差分某些序列,将基于时间频度的绝对数据变成时间频度下的变动数据或增长率数据。此时的研究转向新的模型,但要保证模型具有经济意义。因此一般不要对原序列进行二阶差分,因为对变动数据或增长率数据再进行差分,我们不好对其冠以经济解释。难道你称其为变动率的变动率?
步骤三:面板数据分析之面板模型的选择与回归
面板数据模型的选择通常有三种形式:
一种是混合估计模型(Pooled Regression Model)。如果从时间上看,不同个体之间不存在显著性差异;从截面上看,不同截面之间也不存在显著性差异,那么就可以直接把面板数据混合在一起用普通最小二乘法(OLS)估计参数。一种是固定效应模型(Fixed Effects Regression Model)。
如果对于不同的截面或不同的时间序列,模型的截距不同,则可以采用在模型中添加虚拟变量的方法估计回归参数。一种是随机效应模型(Random Effects Regression Model)。如果固定效应模型中的截距项包括了截面随机误差项和时间随机误差项的平均效应,并且这两个随机误差项都服从正态分布,则固定效应模型就变成了随机效应模型。
在面板数据分析模型形式的选择方法上,我们经常采用F检验决定选用混合模型还是固定效应模型,然后用Hausman检验确定应该建立随机效应模型还是固定效应模型。
检验完毕后,我们也就知道该选用哪种模型了,然后我们就开始回归:
在回归的时候,权数可以选择按截面加权(cross-section weights)的方式,对于横截面个数大于时序个数的情况更应如此,表示允许不同的截面存在异方差现象。估计方法采用PCSE(Panel Corrected Standard Errors,面板校正标准误)方法。Beck和Katz(1995)引入的PCSE估计方法是面板数据模型估计方法的一个创新,可以有效的处理复杂的面板误差结构,如同步相关,异方差,序列相关等,在样本量不够大时尤为有用。
以上就是对面板数据分析戏详细介绍。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:125831次
积分:1891
积分:1891
排名:第15507名
转载:373篇后使用快捷导航没有帐号?
用R语言做数据分析(6)——列表
查看: 21856|
评论: |原作者: 网络转载|来自:
摘要: 通过list函数来创建列表,例如,创建一个包含三个列的列表,请注意与R语言中的列表显示有什么不一样
通过list函数来创建列表,例如,创建一个包含三个列的列表,请注意与R语言中的列表显示有什么不一样:
1、创建列表demo_1
2、创建数据框demo_1_1
·列表对每个列显示都会单独以一行的形式存在;
·数据框则是以表(或者是矩阵)的形式显示;所以根据数据输出的格式可以判断是列表还是数据框;
创建一个示例列
Demo_2&-list(name=c('lucy','alice','lei'),
&&&&&&&&&&&&&&&&&& heigh=c(178,156,188),
&&&&&&&&&&&&&&&&&& sex=c('F','F','M'),
&&&&&&&&&&&&&&&&&& score=c(200,210,198))
#包括一个缺少值的列表
Demo_3&-list.frame(name=c('lucy','alice','lei'),
&&&&&&&&&&&&&&&&&& heigh=c(178,156,188),
&&&&&&&&&&&&&&&&&& sex=c('F','F',NA),
&&&&&&&&&&&&&&&&&& score=c(200,210,198))
列表包含所有列表的特点。列表与列表的最大区别在于,列表的各列的长度是可以不一致的。
& & & 例如:Demo_3&-list(name=c('lucy','alice','lei'), && &&&&&&&&&&&&&&&&
& & & & & & & & & & & & & & & & & & & heigh=c(178,156), &&&&&&&&&&&&&&&&&&
& & & & & & & & & & & & & & & & & & & sex= 'F')
列表基本操作 & & &
1.查看列表信息
& &#查看类型
& & class(Demo_1)
& &#查看某列的类型
& & class(Demo_1$sex)
& &#查看列表长度 即就是列的个数;
& & length(Demo_1)
& &#列表各项名称
& &names(Demo_1)
2.取列表中的某列或者某列元素
& &#取列表的第二列
& & Demo_2[2]
& & Demo_2$heigh
#取列表的某二列的元素 &
& Demo_2[[2]]
& Demo_2[[2]]与Demo_2[2]二者输出的区别在于,前者是输出向量,后者输出是列表;
& 我们详细来看下面的内容:
&3.取向量中的某个元素
& & &Demo_2[[N]][M] 取:N列中的第M个元素; &
& 4.判断列表各行是否完整 & &
& &complete.cases(Demo_2)
& &#选择非缺失值的数据
& &Demo_3[complete.cases(Demo_3)
& && & & & & &
& 5.增加列
& & & #给Demo_1增加一列
& & & Demo_1$score2&-c(12,13,23)
& & & Demo_1&-cbind(Demo_1,score2=c(12,13,23)
& & & & & &
& & 6.其它操作
& & &#删除一个值 & & &
& & Demo_1$score2&-NULL
& & &#把列表转为向量: &
& & &unlist() & &
& & #移除列表中的元素: &
& & &list[[N]] &- NULL&
刚表态过的朋友 ()

我要回帖

更多关于 r语言数据分析案例 的文章

 

随机推荐