使用ecm软件包安装纠错模型

时间:2018-04-02 13:32:55

标签: r statistics time-series

我试图在R中安装一个带有ecm软件包的纠错模型,我将我的长期和短期均衡变量定义如下:

xeq<-mydata[c('A','Y')]
xtr<- mydata['U']
xeq<-as.data.frame(xeq)
xtr<-as.data.frame(xtr)

其中mydata是这种数据框:

    C     A     Y     U
1   NA    NA    NA    NA
2   NA    NA    NA   0.024
3   NA    NA    NA   0.002
4   NA    NA    NA   0.044
5  9.76  -5.2  173   0.038

但是,当我使用C作为目标变量

运行以下ecm函数时
ecm1 <- ecm(mydata$C, xeq, xtr, includeIntercept = TRUE)

我收到以下错误消息:

Error in data.frame(..., check.names = FALSE) : 
  arguments imply differing number of rows: 91, 85

即使参数实际上具有相同的行数(= 92),为什么会出现此错误。是导致问题的xtrxeq中的不同数量的NA,如果是,我该怎么做才能解决这个问题?

这里是R中的再现数据集:

structure(list(C = c(NA, NA, NA, NA, 9.76192185331763, 7.01543928393462, 
6.15294777870576, 7.0921409337696, 9.46031493979471, 10.693108147905, 
13.1666277830036, 16.6211182252697, 18.0268426821637, 17.145607834061, 
17.1887391274879, 18.1073409297478, 17.523870901394, 16.0873056778556, 
15.8135508940265, 17.108241619624, 17.4189883666871, 17.2784174623317, 
17.6619298869731, 18.2967179845755, 17.3357442311411, 15.4458718249791, 
13.8707693828413, 13.0182977451227, 12.6002892909497, 11.9677719807028, 
12.3749563461462, 12.6384754111734, 11.1665802856963, 8.53320933441695, 
5.967439246063, 3.68776298143974, 0.729490689302392, -0.624339739451296, 
-0.975857285370441, 0.693986898388899, -0.567601555170971, -1.99103344911805, 
-2.80374927733694, -2.88268297279998, -3.01288121587993, -5.40108803200214, 
-7.50641385829334, -8.27610226978281, -4.23264654067398, -9.36865209495492, 
-5.85167227388649, -9.52597154857684, -7.00559924754299, -9.60352746037704, 
-6.59938201478927, -9.20668908016107, -8.47980282354013, -10.4108964126173, 
-11.8629275228041, -10.0287174604067, -18.3238303154354, -15.9011855206539, 
-15.9532724908242, -14.8020070306296, -14.8713152139315, -14.5073713460667, 
-14.0069899551305, -12.6349139513127, -12.7135632986697, -13.8308182379224, 
-14.9326580914742, -15.6173089676889, -14.2379949603095, -13.8406318535914, 
-13.5372258154192, -14.8365008110049, -16.1101335478164, -18.8507338624605, 
-18.7741631770463, -16.243278875675, -14.5819395443483, -14.1928496291539, 
-15.3033298417436, -15.1802008406216, -11.5998095045774, -12.8823931334143, 
-12.8735391629816, -11.9302608644667, -10.6963867777389, -13.2979574409471, 
-9.57728980909098, -9.07301116422297), A = c(NA, NA, NA, NA, 
-5.20153912216881, -5.07924451118444, -2.09333037295979, 3.74516675987993, 
5.87755978365845, 5.94349065725073, 6.18819331373968, 4.17442880942838, 
3.1198235843134, 4.29280020951734, 4.27103477707429, 3.53796802208126, 
5.37371202563011, 6.72401090220254, 3.43095077310223, -0.387565520388078, 
-1.15018917077455, -4.33529577197922, -7.6659277759221, -7.57008089829873, 
-1.45849405256799, 1.29601274485669, 4.84946540084445, 5.34435980749135, 
3.05005189230734, 2.11715327782416, 0.215479301828925, -2.16376287416417, 
-1.84693265115202, -0.219735254374265, -0.642547268434268, -1.3103541787109, 
-0.161405096990219, 0.0564896688836969, 0.80591194139128, -1.58517595451374, 
-3.37336093784992, -6.36151950812337, -9.55311724429195, -15.5224230958702, 
-15.393470459958, -10.3512962813924, -6.57616078890991, -5.02469617598635, 
-5.89214868630077, -3.05453405871426, -1.45908218312701, 0.259933743438046, 
1.33100099597394, 0.725772359875387, -2.16931367715731, 0.827652493966391, 
2.52539819938444, -1.40722845253297, 6.67162106968546, 2.59613855360963, 
-1.2523885956072, -0.440327177481203, 0.443946836853359, 0.203124258206477, 
0.750870877971566, 0.756781245963611, 2.67543896136817, 0.0114946384773384, 
-2.78410839115761, -3.78413174151928, -2.71140580594595, -3.01008725502782, 
-1.67922277918079, 0.215240851170084, 2.36522900278644, 4.24331163604759, 
6.42422027157119, 7.86670289578195, 10.0178374470668, 10.1942487065201, 
11.1191910212971, 14.2204706027751, 16.9499660919871, 7.78105027079865, 
0.579619348083327, -1.98044426018, -3.03885403046213, -4.13234669785987, 
-5.66668269768965, -5.33393721105306, -4.87293990319002, -4.16148509722758
), Y = c(NA, NA, NA, NA, 173.354360114913, 178, 176.618619491256, 
188, 183.766370215622, 187.231419875067, 193.087247456462, 192.850944761799, 
194.337281028297, 196.873209954365, 199.725923865044, 201.447520961882, 
204.9568730907, 207.720351726506, 214.078827302918, 213.32025435258, 
212.053632478142, 216.829212754763, 220.563088690461, 227.195676351159, 
234.311971590784, 240.655867480111, 242.910149567472, 246.730319171031, 
246.335519030986, 246.932382648863, 247.80304954829, 249.179698955599, 
248.636041464312, 248.529063516917, 248.991171675469, 250.612881190271, 
254.681120827704, 253.656659810001, 253.297107820783, 251.224930024703, 
247.893636938847, 249.975556269839, 252.59569718955, 254.099571131528, 
256.05278808891, 261.360088233385, 267.402034023258, 267.352997311491, 
268.589873123027, 270.311871875379, 272.58624852624, 278.771084885002, 
277.303298242839, 279.241906182601, 280.62532849455, 277.699374722288, 
278.348273939502, 275.914739278816, 278.567402101032, 278.755671739416, 
276.947085479511, 275.360297685103, 279.342320198295, 284.422141147169, 
285.986282073916, 286.606508816048, 287.365638345368, 289.869481576396, 
291.660409507719, 288.962602977485, 288.080473368628, 286.84220965921, 
289.650238765857, 289.563374660957, 291.837004419765, 294.246065199258, 
295.861037468374, 294.245966107061, 298.119154532571, 298.986928460466, 
3925349, 3966744, 4019691, 4061941, 4077791, 4127153, 4152763, 
4176014, 4260402, NA, NA, NA), U = c(NA, 0.0243894451488191, 
0.0350753527090906, -0.00285310486725987, -0.044253379024236, 
-0.0386027161344519, -0.0713350700777299, -0.0454188381545637, 
-0.0402939039836743, -0.0755418139218382, -0.0677755750374356, 
-0.0597838223698469, -0.103049279618523, -0.0769047640003321, 
-0.118149147340544, -0.206442888023609, -0.198459817750465, -0.18152832001722, 
-0.165383661843024, -0.0957262882507554, -0.0864688802203385, 
-0.0630338535134446, -0.03435044632752, -0.0154821499218539, 
-0.0314268928118927, -0.025983717799717, 0.0282929694353902, 
0.0232653224268324, 0.044754397468965, 0.0622670133089944, 0.0727198768351187, 
0.0466223060669055, 0.0328019906182384, -0.000948104259839933, 
-0.031106224386742, 0.00281978585657927, -0.0270619826610582, 
-0.118153806197, -0.0871157825225317, -0.110129801132847, -0.137825961886963, 
-0.0920659263392154, -0.0374774889057388, -0.00745627398767124, 
0.002470322954361, 0.0651661174076275, 0.00813534165627083, 0.00292734637319447, 
0.0181390199147207, 0.00856956883202309, 0.0970875415883386, 
0.0369958398875549, 0.0618046279711699, 0.109397114073851, 0.0449035706955121, 
0.0481129032277237, 0.0778904767665167, 0.086210643712209, 0.0541780686697457, 
0.0861732414606733, 0.102135223907732, 0.0641783106433247, 0.146233540870658, 
0.131671380938121, 0.127172415036263, 0.0789397210303182, 0.0862353397052738, 
0.133652755398062, 0.120768633688736, 0.11135215349646, 0.131511411531401, 
0.0715666685389633, 0.0193245415746055, 0.0240078731787876, 0.0112420569614065, 
-0.0257257109092351, 0.0769197455342581, 0.162002286382954, 0.133137970827076, 
0.116069109578918, -0.0822301552332654, -0.199748679386703, -0.258286596156111, 
-0.287847641877563, -0.163890896017824, -0.0555361669325279, 
0.0441609818172009, 0.0543262395888311, 0.0986712127242062, 0.189644442456989, 
0.186942873839697, 0.15353035503979)), .Names = c("C", "A", "Y", 
"U"), row.names = c(NA, -92L), class = c("tbl_df", "tbl", "data.frame"
))

1 个答案:

答案 0 :(得分:1)

是的,你是对的,它是导致问题的缺失值。显然ecm分别在yxeqxtr中省略了它们,这会导致这种情况出现问题,因为缺失值的数量因这些变量而异。

至于解决问题,在将值分配给mydataxeq之前,您应该删除xtr中缺少任何观察结果的行:

mydata <- na.omit(mydata)
xeq<-mydata[c('A','Y')]
xtr<- mydata['U']
xeq<-as.data.frame(xeq)
xtr<-as.data.frame(xtr)
(ecm1 <- ecm(mydata$C, xeq, xtr, includeIntercept = TRUE))
#
# Call:
# lm(formula = dy ~ ., data = x)
#
# Coefficients:
# (Intercept)       deltaU        ALag1        YLag1        yLag1  
#  -3.141e-01    1.385e+00    7.359e-02    6.729e-08   -9.557e-03  

此外,正如预期的那样,这样做不会影响时间序列具有规则间隔的事实,因为所有缺失的观察结果都在mydata的结束和开始。