使用Neuronet软件包的R中的错误 [英] Error in R using neuralnet package

查看:201
本文介绍了使用Neuronet软件包的R中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在运行一个脚本,使用软件包 neuralnet 估算R中的神经网络.

I'm running a script to estimate a Neural Network in R using the package neuralnet.

我正在使用Linux操作系统,脚本如下:

I'm using a Linux OS and the script is the following:

# 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 输出,如下所示:

Everything goes right till the last line, in which R gives an error output, as follows:

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 ...

在Internet上浏览时,我在stackoverflow.com上找到了很多答案,但是在每种情况下,解决方案都是不同的,因此,O发表了一个新问题.请不要将其标记为重复,因为它不是.

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. Please, do not mark it as duplicate, because it is not.

该脚本基于任何帮助,提示或建议将不胜感激.

Any help, hint or advice will be appreciated.

推荐答案

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

I don't see y column, that you're referring in your formula, in your data set. Your target variable should exist in your data set. Should it be SP500_R?

第二,neuralnet不适用于数据中的NAs,请首先使用na.omit()过滤数据集.

Second, neuralnet won't work with NAs in data, filter your data set with na.omit() first.

此外,让我补充一点:如果我对您的数据是正确的,则从这种分析中您将一无所获.

Also, let me give a side note: if I got right what your data is, you'll got nothing from that kind of analysis.

这篇关于使用Neuronet软件包的R中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆