使用神经网络包的R出错

时间:2015-06-24 08:29:05

标签: r neural-network r-package

我正在使用 neuralnet 包运行一个脚本来估算R中的神经网络。

我使用的是Linux操作系统,脚本如下:

# useful libraries
library("XLConnect")  
library("neuralnet")

# data loading;
DATA = loadWorkbook("/home/quant/Desktop/D.xlsx") # loading sheet;
DATASET = readWorksheet(NN_DATA, sheet = "D") # reading sheet;

NN_DATASET # display the directory;
head(NN_DATASET) # show data;
warnings() # error detection & data quality;

#test set detection;
testset <- NN_DATASET[1:101, ] 

# building the neural networks;
NNET <- neuralnet(y ~ MKTVALUER +  VOLR  + DYR +    PER +   DJR +   DAXR +  MSCIR + NIKKEIR +   CCOR +  CPIR +  CABCR + EGR +   USFFR + USGDPR +    GCIR +  IGR +   IPR +   IRR +   MCURNR +    M2R +   NOMANUFACTORINGR +  PCER +  POPR +  PPIR +  CBLEIR +    DEBTR + UR +    C_XAU + C_XAG + BARCLAYSAGG +   C_USDJPY +  C_EURUSD, NN_DATASET, hidden = 2, lifesign = "minimal", linear.output = FALSE, threshold = 0.1)

一直到最后一行,其中R给出错误输出,如下所示:

Error in x - y : non-conformable arrays

使用str(NN_DATASET)获得的数据框结构如下:

'data.frame':   201 obs. of  34 variables:
 $ DATA            : chr  "Q4 1964" "Q1 1965" "Q2 1965" "Q3 1965" ...
 $ SP500_R         : num  NA 0.0184 -0.0215 0.0622 0.025 ...
 $ MKTVALUER       : num  NA 0.0257 -0.0206 0.0694 0.0215 ...
 $ VOLR            : num  NA 0.007336 0.000982 0.007239 -0.003561 ...
 $ DYR             : num  NA NA 0.0294 -0.0528 0.0366 ...
 $ PER             : num  NA NA NA NA NA NA NA NA NA NA ...
 $ DJR             : num  NA NA NA NA NA NA NA NA NA NA ...
 $ DAXR            : num  NA NA NA NA NA NA NA NA NA NA ...
 $ MSCIR           : num  NA NA NA NA NA NA NA NA NA NA ...
 $ NIKKEIR         : num  NA NA NA NA NA NA NA NA NA NA ...
 $ CCOR            : num  NA 0.0338 0.0322 0.0247 0.0192 ...
 $ CPIR            : num  NA 0 0.4654 0 0.0565 ...
 $ CABCR           : num  NA -0.2793 0.2268 -0.1893 -0.0123 ...
 $ EGR             : num  NA -0.0895 0.1666 -0.0579 0.0681 ...
 $ USFFR           : num  NA 0.1034 0.02733 -0.00245 0.02427 ...
 $ USGDPR          : num  NA 0.0293 0.0182 0.024 0.0301 ...
 $ GCIR            : num  NA 0.00572 0.01759 0.04266 0.0346 ...
 $ IGR             : num  NA -0.02768 0.10641 0.00942 0.05768 ...
 $ IPR             : num  NA 0.0371 0.0229 0.0207 0.02 ...
 $ IRR             : num  NA 0.00218 0.06536 -0.06318 0.111 ...
 $ MCURNR          : num  NA -0.00201 0.00977 0.01819 0.02592 ...
 $ M2R             : num  NA 0.0166 0.0115 0.0156 0.0186 ...
 $ NOMANUFACTORINGR: num  NA NA NA NA NA NA NA NA NA NA ...
 $ PCER            : num  NA 0.0252 0.0159 0.0208 0.0309 ...
 $ POPR            : num  NA 0.00255 0.00294 0.00352 0.00296 ...
 $ PPIR            : num  NA 0.00297 0.0118 0.00293 0.00873 ...
 $ CBLEIR          : num  NA 0.0224 0.0172 0.0135 0.0272 ...
 $ DEBTR           : num  NA -0.000955 -0.000637 -0.002553 0.013329 ...
 $ UR              : num  NA -0.0202 -0.0417 -0.066 -0.0706 ...
 $ C_XAU           : num  NA 0.00057 0 0 0 ...
 $ C_XAG           : num  NA 0 0 0 0 0 0 0 0 0 ...
 $ BARCLAYSAGG     : num  NA NA NA NA NA NA NA NA NA NA ...
 $ C_USDJPY        : num  NA NA NA NA NA NA NA NA NA NA ...
 $ C_EURUSD        : num  NA NA NA NA NA NA NA NA NA NA ...

在互联网上浏览我在stackoverflow.com上找到了很多答案,但是,在每种情况下,解决方案都不同,所以,O发布了一个新问题。请不要将其标记为重复,因为它不是。

该脚本基于R-Bloggers

上的脚本

任何帮助,提示或建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

我没有在您的数据集中看到您在公式中引用的y列。您的目标变量应存在于您的数据集中。它应该是SP500_R吗?

其次,neuralnet不适用于NAs数据,首先使用na.omit()过滤您的数据集。

另外,让我给一个旁注:如果我的数据是正确的,那么你将从这种分析中得不到任何东西。