使用jmotif包在R中进行SAX时间序列表示

时间:2017-09-26 15:33:47

标签: r time-series sax

我试图用SAX代表一些时间序列图,以便我可以挖掘它们的相似之处。我在R中使用jmotif包:

#Create an example dataframe
example1 <- data.frame(flow=c(1.1,2.2,3.3,4.4,5.5,6.6),
                   weight1=c(7.1,7.2,7.3,7.4,7.5,7.6), 
                   weight2=c(8.1,8.2,8.3,8.4,8.5,8.6)) 
# Create a timeseries object
examplets1 <- ts(example1, start = 1, end = 6)

#Analysis
library(jmotif)
#Normalise the data using Znorm
examplezn <- znorm(examplets1, threshold = 0.01)
#Perform piecewise aggregate approximation
examplepaa <- paa(examplezn, 3)
#Represent time series as SAX
sax_via_window(examplepaa, 3, 3, 10, "mindist", 0.1)

#This produces the result
> sax_via_window(examplepaa, 3, 3, 10, "mindist", 0.1)
$`0`
[1] "bgh"

我无法解释这些结果。我期望的是一个符号表示,我可以与每一列相关联,例如。流量:acc,weight1:bgh等。真正的数据集将有大约100列ts数据!

我是否错误地应用了该方法?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

这里的问题是我没有&#34;矢量化&#34; jmotif,因此其功能仅适用于表示输入时间序列的有序数字序列,即不适用于数据帧对象或时间序列对象。可以辩解,但我只是想保持简单。

我确实修改了你的代码以执行任务,希望它有所帮助:

$todo_args = array(
   'cat' => $my_category_id,
   'posts_per_page' => 1,
   'tax_query' => array(
        'relation' => 'OR',
            array(
               'taxonomy' => 'postkicker',
                'field'    => 'slug',
                'terms'    => 'monthly-to-do-list',
                ),
            array(
                'taxonomy' => 'postkicker',
                'field'    => 'slug',
                'terms'    => 'community-events',
                ),
            ),
    'orderby' => 'date',
    'order' => 'DESC'
);