我有一个简单的表(d_frame),其中包含每月的日期和值 dput这样做:
dput(d_frame) 结构(列表(日期=结构(c(1325376000,1328054400,1330560000, 1333238400、1335830400、1338508800、1341100800、1343779200、1346457600, 1349049600、1351728000、1354320000、1356998400、1359676800、1362096000, 1364774400、1367366400、1370044800、1372636800、13737515200、1377993600, 1380585600、1383264000、1385856000、1388534400、1391212800、1393632000, 1396310400、1399802400、1401580800、1404172800、1406851200、1409529600, 1412121600、1414800000、1417392000、1420070400、1422748800、1425168000, 1427846400、1430438400、1433116800、1435708800、1438387200、1441065600, 1443657600、1446336000、1448928000、1451606400、1454284800、1456790400, 1459468800、1462060800、1464739200、1467331200、1470009600、1472688000, 1475280000、1477958400、1480550400、1483228800、1485907200、1488326400, 1491004800、1493596800、1496275200、1498867200、1501545600、1504224000, 1506816000、1509494400、1512086400),类= c(“ POSIXct”,“ POSIXt” ),tzone =“ UTC”),值= c(0,0,0,0,0,0,0.00774754,0.22403801, 0,5.12030095,0.23120272,0.99000874,22.22207733,0.333296, 692.19566134、7.76898971、2.97430466、134.36211377、22.91894814, 65.14574578、135.81266758、18.37095304、185.25901758、233.86535558, 50.19910856、67.54904705、92.09374684、236.3588002、39.6182546, 107.01412237、45.46568388、28.46083664、147.03030045、12.05623131, 86.26622661、86.78390353、52.59616771、135.24410876、752.67471689, 90.77072693、318.08100321、190.17687122、32.45995024、229.85208941, 99.68676994、78.23118358、75.22676899、244.54213373、250.24590849, 129.22758339、220.46666166、145.10114173、76.27997413、134.1304349, 93.95382007,171.43174451,205.318684,72.75873803,905.44077088, 65.68187302、186.01373065、22.39356267、58.0947934、345.76627723, 49.2540693、77.10619382、73.55552926、847.78421674、43.39077872, 49.83486911,405.60316183,18.25071976)),row.names = c(NA,-72L ),class = c(“ tbl_df”,“ tbl”,“ data.frame”))
在R d_frame中,它看起来像这样:
使用d_frame,我使用以下方法制作了一个时间序列:
d.ts <- ts(d_frame[2], start = c(2011, 12), frequency = 12)
它具有明显的趋势,但具有巨大的随机成分,因此我使用TRR库从d.ts中提取趋势成分:
dts_components <- decompose(d.ts)
dts_trend <- dts_components$trend
然后我根据趋势建立线性模型:
trend_lin.mod <- lm(dts_trend[,1] ~ time(dts_trend))
现在,正如我在图形上看到的3个阶段(我知道它们在那里)一样,我想使用分段库进行分段分析。 我正在尝试制作包含中断日期或不包含中断日期的分段模型,并出现错误:
d.seg <- segmented(dts_trend, seg.Z = ~ time(dts_trend), psi = list(c('2014-07-01', '2016-10-01')))
给出:
segmented.default(dts_trend,seg.Z =〜time(dts_trend),psi = list(c(“ 2014-07-01”,:
seg.Z' and
psi'中的变量不匹配
或者我尝试一种不包含psi的产品:
d.seg <- segmented(dts_trend, seg.Z = ~ time(dts_trend))
给出:
错误:$运算符对原子向量无效
我要在时间序列dts_trend上进行分段工作。 如果您能提供帮助,我将不胜感激,因为我是R的新手,而且真的很困。