简体   繁体   English

使用Neuronet软件包的R中的错误

[英]Error in R using neuralnet package

I'm running a script to estimate a Neural Network in R using the package neuralnet . 我正在运行一个脚本,使用包Neuronet估计R中的神经网络。

I'm using a Linux OS and the script is the following: 我使用的是Linux OS,脚本如下:

# 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)

Everything goes right till the last line, in which R gives an error output, as follows: 一切都进行到最后一行,其中R给出错误输出,如下所示:

Error in x - y : non-conformable arrays

The dataframe structure , got by using str(NN_DATASET) is the following: 通过使用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 ...

Browsing on the internet I found a lot of answers here in stackoverflow.com, but, in each case, the solution is different, so, O posted a new question. 在Internet上浏览时,我在stackoverflow.com上找到了很多答案,但是在每种情况下,解决方案都是不同的,因此,O发表了一个新问题。 Please, do not mark it as duplicate, because it is not. 请不要将其标记为重复,因为不是。

The script is based on one found on R-Bloggers 该脚本基于R-Blogger上的脚本

Any help, hint or advice will be appreciated. 任何帮助,提示或建议,将不胜感激。

I don't see y column, that you're referring in your formula, in your data set. 我看不到您在数据集中的公式中引用的y列。 Your target variable should exist in your data set. 您的目标变量应该存在于您的数据集中。 Should it be SP500_R ? 应该是SP500_R吗?

Second, neuralnet won't work with NAs in data, filter your data set with na.omit() first. 其次, neuralnet将无法处理数据中的NAs ,请首先使用na.omit()过滤数据集。

Also, let me give a side note: if I got right what your data is, you'll got nothing from that kind of analysis. 另外,让我作个旁注:如果我对您的数据是正确的,则从这种分析中您将一无所获。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM