面板数据(Panel Data),也成平行数据,具有时间序列和截面两个维度,整个表格排列起来像是一个面板。
面板数据举例:
1、首先确定解释变量和因变量;
2、R语言操作数据格式,部分截图如下,这里以index3为因变量,index1与index2为解释变量:
##加载相关包
install.packages("mice")##缺失值处理
install.packages("plm")
install.packages("MSBVAR")
library(plm)
library(MSBVAR)
library(tseries)
library(xts)
library(mice)
data<-read.csv("F://分类别//rankdata.csv",header=T,as.is=T)##读取数据
2、单位根检验:数据平稳性
为避免伪回归,确保结果的有效性,需对数据进行平稳性判断。何为平稳,一般认为时间序列提出时间趋势和不变均值(截距)后,剩余序列为白噪声序列即零均值、同方差。常用的单位根检验的办法有LLC检验和不同单位根的Fisher-ADF检验,若两种检验均拒绝存在单位根的原假设则认为序列为平稳的,反之不平稳(对于水平序列,若非平稳,则对序列进行一阶差分,再进行后续检验,若仍存在单位根,则继续进行高阶差分,直至平稳,I(0)即为零阶单整,I(N)为N阶单整)。
##单位根检验
tlist1<-xts(data$index1,as.Date(data$updatetime))
adf.test(tlist1)
tlist2<-xts(data$index2,as.Date(data$updatetime))
adf.test(tlist2)
3、协整检验/模型修正
单位根检验之后,变量间是同阶单整,可进行协整检验,协整检验是用来考察变量间的长期均衡关系的方法。若通过协整检验,则说明变量间存在长期稳定的均衡关系,方程回归残差是平稳的,可进行回归。
格兰杰因果检验:前提是变量间同阶协整,通过条件概率用以判断变量间因果关系。
##格兰杰因果检验
granger.test(tsdata,p=2)
对于平衡的面板数据,即在每一个截面单元上具有相同个数的观测值,模型样本观测数据的总数等于NT。
当N=1且T很大时,就是所熟悉的时间序列数据;当T=1而N很大时,就只有截面数据。
form<- index3~index1+ index2
rankData<-plm.data(data,index=c("IPname","updatetime"))#转化为面板数据
pool <- plm(form,data=rankData,model="pooling")#混合模型
pooltest(form,data=rankData,effect="individual",model="within")#检验个体间是否有差异
pooltest(form,data=rankData,effect="time",model="within")#检验不同时间是否有差异
wi<-plm(form,data=rankData,effect="twoways",model="within")#存在两种效应的固定效应模型
pooltest(pool,wi)#F检验判断混合模型与固定效应模型比较
phtest(form,data=rankData)##Hausman检验判断应该采用何种模型,随机效应模型检验
pbgtest(form,data=rankData,model="within")#LM检验,随机效应模型检验
#检验是否存在序列相关
pwartest(form,data=rankData)#Wooldridge检验(自相关)小于0.05存在序列相关
summary(wi)##查看拟合模型信息
fixef(wi,effect="time")#不同时间对因变量的影响程度的系数估计值
inter<-fixef(wi,effect="individual")#不同个体对因变量的影响程度的截距估计值
##根据模型参数,进行预测;
百度文库中下载的参考ppt:
http://pan.baidu.com/s/1qXHVGde
注:有些地方,尤其R代码部分有些乱,需根据实际数据情况进行选择,函数的参数设置并未完全吃透,还需要继续学习,如有不对的地方,再改正,目前的理解是这样了,在本次数据场景中,实际数据应用中预测效果不是很好,误差稍大,这次未采用,以后遇到可以再尝试。