我正在使用 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
上的脚本任何帮助,提示或建议都将受到赞赏。
答案 0 :(得分:1)
我没有在您的数据集中看到您在公式中引用的y
列。您的目标变量应存在于您的数据集中。它应该是SP500_R
吗?
其次,neuralnet
不适用于NAs
数据,首先使用na.omit()
过滤您的数据集。
另外,让我给一个旁注:如果我的数据是正确的,那么你将从这种分析中得不到任何东西。