我有兴趣监控一些对象.我希望每15分钟获得大约10000个数据点.(也许不是一开始,但这是'一般球场').我还希望能够获得每日,每周,每月和每年的统计数据.将数据保持在最高分辨率(15分钟)超过两个月并不重要.
我正在考虑各种方法来存储这些数据,并且一直在查看经典的关系数据库,或者在无模式数据库(例如SimpleDB)上.
我的问题是,这样做的最佳方式是什么?我非常希望开源(和免费)解决方案成为专有的高成本解决方案.
小记:我正在用Python编写这个应用程序.
我有一个动物园时间序列,错过了几天.为了填补它并有一个连续的系列我做...
我从头到尾生成一个chron日期时间序列.
我把我的系列与这个合并.
我使用na.locf代替具有las遮挡的NAs.
我删除了syntetic chron序列.
我可以更容易吗?也许有一些与频率相关的指数函数?
我正在尝试适应季节性分解系列的ARIMA模型.但是当我尝试执行以下操作时:
fit = arima(diff(series), order=c(1,0,0),
seasonal = list(order = c(1, 0, 0), period = NA))
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误:
arima中的错误(diff(系列),order = c(1,0,0),seasonal = list(order = c(1,:来自CSS的非平稳季节性AR部分)
出了什么问题,错误是什么意思?
我正在研究python中的时间序列.我觉得有用和有前途的图书馆是
也用于可视化:matplotlib
有没有人知道指数平滑的库?
我试图使用隐马尔可夫模型(HMM)来解决一个问题,即我在每个时间点都有不同的观察变量(Yti)和一个隐藏变量(Xt).为清楚起见,让我们假设所有观察到的变量(Yti)都是分类的,其中每个Yti传达不同的信息,因此可能具有不同的基数.下图给出了一个说明性的例子,其中M = 3.

我的目标是使用Baum-Welch算法从我观察到的变量序列(Yti)中训练HMM的过渡,发射和先验概率.比方说,Xt最初会有2个隐藏状态.
我已经阅读了一些教程(包括着名的Rabiner论文),并阅读了一些HMM软件包的代码,即" MatLab中的HMM工具箱 "和" Python中的hmmpytk包 ".总的来说,我进行了广泛的网络搜索,我所能找到的所有资源 - 仅涵盖了每个时间点只有一个观察变量(M = 1)的情况.这越来越让我觉得HMM不适合具有多个观察变量的情况.
谢谢.
编辑: 在本文中,图中描述的情况被描述为动态朴素贝叶斯,其中 - 在训练和估计算法方面 - 需要对单变量HMM略微扩展Baum-Welch和Viterbi算法.
我试图使用机器学习来根据时间序列数据进行预测.在其中一个stackoverflow问题(R中的CARET包中的createTimeSlices函数)是使用createTimeSlices进行模型训练和参数调整的交叉验证的示例:
library(caret)
library(ggplot2)
library(pls)
data(economics)
myTimeControl <- trainControl(method = "timeslice",
initialWindow = 36,
horizon = 12,
fixedWindow = TRUE)
plsFitTime <- train(unemploy ~ pce + pop + psavert,
data = economics,
method = "pls",
preProc = c("center", "scale"),
trControl = myTimeControl)
Run Code Online (Sandbox Code Playgroud)
我的理解是:
因为我的数据是时间序列,我想我不能使用bootstraping将数据分成训练和测试集.所以,我的问题是:我是对的吗?如果是这样 - 如何使用createTimeSlices进行模型评估?
我的问题涉及如何计算自R中发生的事件以来的天数.以下是数据的最小示例:
df <- data.frame(date=as.Date(c("06/07/2000","15/09/2000","15/10/2000","03/01/2001","17/03/2001","23/05/2001","26/08/2001"), "%d/%m/%Y"),
event=c(0,0,1,0,1,1,0))
date event
1 2000-07-06 0
2 2000-09-15 0
3 2000-10-15 1
4 2001-01-03 0
5 2001-03-17 1
6 2001-05-23 1
7 2001-08-26 0
Run Code Online (Sandbox Code Playgroud)
二进制变量(事件)的值为1,表示事件发生,否则为0.重复观察在不同时间完成(date)预期输出如下,自上次事件(tae)以来的日期:
date event tae
1 2000-07-06 0 NA
2 2000-09-15 0 NA
3 2000-10-15 1 0
4 2001-01-03 0 80
5 2001-03-17 1 153
6 2001-05-23 1 67
7 2001-08-26 0 95
Run Code Online (Sandbox Code Playgroud)
我一直在寻找类似问题的答案,但他们没有解决我的具体问题.我试图从类似的帖子(计算自上次事件以来经过的时间)实现想法,下面是我最接近解决方案:
library(dplyr)
df %>%
mutate(tmp_a = c(0, diff(date)) * !event,
tae = cumsum(tmp_a)) …Run Code Online (Sandbox Code Playgroud) 我有两个多变量时间序列x和y,两者都覆盖了大致相同的时间范围(一个在另一个之前两年开始,但它们在同一天结束).两个系列都以日期列旁边的空列形式缺少观察结果,并且在某种意义上,其中一个系列具有在另一个系列中找不到的几个日期,反之亦然.
我想创建一个数据框(或类似),其中列列出了在x或y中找到的所有日期,没有重复日期.对于每个日期(行),我想在y的观察值旁边水平叠加来自x的观测值,其中NA填充缺失的单元格.例:
>x
"1987-01-01" 7.1 NA 3
"1987-01-02" 5.2 5 2
"1987-01-06" 2.3 NA 9
>y
"1987-01-01" 55.3 66 45
"1987-01-03" 77.3 87 34
# result I would like
"1987-01-01" 7.1 NA 3 55.3 66 45
"1987-01-02" 5.2 5 2 NA NA NA
"1987-01-03" NA NA NA 77.3 87 34
"1987-01-06" 2.3 NA 9 NA NA NA
Run Code Online (Sandbox Code Playgroud)
我尝试过:使用zoo包,我尝试了merge.zoo方法,但这似乎只是将两个系列相互叠加,并附有日期(作为数字,例如"1987-01-02"显示如每个系列中的6210)出现在两个单独的列中.
我已经坐了几个小时几乎无处可去,所以所有的帮助都表示赞赏.
编辑:根据Soumendra的建议,下面包含一些代码
atcoa <- read.csv(file = "ATCOA_full_adj.csv", header = TRUE)
atcob <- read.csv(file = "ATCOB_full_adj.csv", header = TRUE)
atcoa$date <- as.Date(atcoa$date)
atcob$date …Run Code Online (Sandbox Code Playgroud) 我现在工作了很长一段时间使用python和pandas来分析一组每小时数据并发现它非常好(来自Matlab.)
现在我有点卡住了.我创造了我的DataFrame喜欢:
SamplingRateMinutes=60
index = DateRange(initialTime,finalTime, offset=datetools.Minute(SamplingRateMinutes))
ts=DataFrame(data, index=index)
Run Code Online (Sandbox Code Playgroud)
我现在要做的是选择10到13和20-23小时的所有日期的数据,以便使用这些数据进行进一步的计算.到目前为止,我使用了切片数据
selectedData=ts[begin:end]
Run Code Online (Sandbox Code Playgroud)
我肯定会得到某种脏循环来选择所需的数据.但必须有一种更优雅的方式来指出我想要的东西.我确信这是一个常见的问题,伪代码的解决方案看起来应该是这样的:
myIndex=ts.index[10<=ts.index.hour<=13 or 20<=ts.index.hour<=23]
selectedData=ts[myIndex]
Run Code Online (Sandbox Code Playgroud)
提到我是一名工程师而且没有程序员:) ...
如果有人对选择HBase作为OpenTSDB的数据存储引擎有所了解,我真的很感激吗?
还考虑了其他选择,例如Whisper(Graphite front-end + Carbon persistence)?
像HBase这样的面向列的数据库如何成为时间序列数据的更好选择?
time-series ×10
r ×5
python ×3
pandas ×2
zoo ×2
database ×1
fill ×1
forecasting ×1
hbase ×1
indexing ×1
merge ×1
opentsdb ×1
r-caret ×1
schemaless ×1
statistics ×1
statsmodels ×1