量化软件下载:赫兹股票期货量化软件中矩阵回归
虽然也许听来很酷,但现在您也能够拥有任意多的自变量,请记住,任何东西都有一定限制。自变量太多或数据集合的列太长可能会导致计算机的计算限制,正如您刚才看到的那样,矩阵计算也会要计算过程中产生大量数字。
向多元线性回归模型中添加自变量总是会增加因变量的方差数量,通常表示为 r-平方,因此,在没有任何理论依据的情况下,添加过多自变量可能会导致模型过度拟合。
例如,如果我们构建一个模型,就像在本系列第一篇文章中所做的那样,,仅基于两个变量,纳斯达克是因变量,标准普尔 500 是自变量,我们的准确率可能超过 95%,但情况也许并非如此,因为现在我们有 3 个自变量。
在建立模型后检查模型的准确性始终是一个好主意,在建立模型之前,还应检查每个自变量与目标之间是否存在相关性。
构建模型之时,始终依据已被证明的、与您的目标变量具有强线性关系的数据。
MatnIdent[j_k] = MatnIdent[j_k] - ratio*MatnIdent[i_k]; DBL_MAX_MIN(MatnIdent[j_k]); DBL_MAX_MIN(ratio*MatnIdent[i_k]); // Row Operation to make Principal diagonal to 1 /*back to our MatrixandIdentical Matrix Array then we'll perform operations to make its principal diagonal to 1 */ ArrayResize(output_Mat,size); int counter=0; for (int i=0; i<rowsCols; i++) for (int j=rowsCols; j<2*rowsCols; j++) { int i_j, i_i; i_j = j + (i*(rowsCols*2)); i_i = i + (i*(rowsCols*2)); //Print("i_j ",i_j," val = ",MatnIdent[i_j]," i_i =",i_i," val =",MatnIdent[i_i]); MatnIdent[i_j] = MatnIdent[i_j] / MatnIdent[i_i]; //printf("%d Mathematical operation =%.4f",i_j, MatnIdent[i_j]); output_Mat[counter]= MatnIdent[i_j]; //store the Inverse of Matrix in the output Array