2015-04-01 35 views
0

我用一个使用R的规则提取算法挣扎。通常,我有一个金融时间序列,根据趋势和持续时间将其分解成不同的片段。正如我导致我得到类似于此之下的数据帧:R中的金融时间序列的规则提取

> head(DF) 
    Segment trend duration description 
1  1  C   S   C_S 
2  2  VP   L  VP_L 
3  3  VN   S  VN_S 
4  4  N   S   N_S 
5  5  P   M   P_M 
6  6  VP   M  VP_M 

其中VN,N,C,P,VP(很负,负,恒定的,正的,非常积极的)描述了选择期间所发生的趋势段,S,M,L(短,中,长)描述每个段的持续时间,最后一列仅是前一个的组合。 我想要获得的是规则,其中LHS包含关于细分市场的历史信息,而RHS是未来细分市场。 因此,例如,一个规则可以是这样的:

ID Rule         Support Confidence 
R5 seg(t-2): VP_B & seg(t-1): N_S    10  71.4% 
     => seg(t): P_M 

我想强调的是用于创建规则的部分应该是连续的。有关提议的算法或r包的任何想法将不胜感激。 在此先感谢!

+0

这看起来像一个完整的项目不是一个具体的问题更多。 – RockScience 2015-04-01 09:59:18

+0

是的,的确如此。但我需要的只是熟悉这个主题的人的一点建议。 – 2015-04-01 10:09:44

回答

0

它使用arules包:

Lines <- "Segment trend duration description 
1  1  C   S   C_S 
2  2  VP   L  VP_L 
3  3  VN   S  VN_S 
4  4  N   S   N_S 
5  5  P   M   P_M 
6  6  VP   M  VP_M" 


library(arules) 
library(zoo) 

z <- read.zoo(text = Lines, header = TRUE, FUN = identity) 
lags <- as.data.frame(lag(z$description, 0:-2)) 

a <- apriori(lags) 
inspect(a) 

更多信息,请参见vignette("arules")

另一件事是尝试:

library(rpart) 
rpart(lag0 ~., lags) 
+0

这听起来像我在找什么,但我得到了这个错误: 作为(数据,“交易”)错误: 没有方法或强制“公式”到“交易”的默认 – 2015-04-01 11:36:17

+0

现在已经解决了这个问题。 – 2015-04-01 12:41:08

+0

这种方法几乎可以完美实现,但分段并非如此,例如 {lag0 = VN_L,lag-2 = N_S} => {lag-1 = N_S}。我尝试在apriori函数中设置外观=列表(rhs =“lag0”),但它返回给我一个错误。 – 2015-04-01 12:55:03

相关问题