我正在使用javascript进行回归分析。我试图使用回归线从股票价格中获取ui(误差值)。我的回归线位于一个名为line的数组中。我的代码如下......
function getUi(n, data, line){
var u = new Array(n);
for(j=0; j<n; j++){
u[j] = parseInt(data['quote'][j]['Adj_Close']) - line[j];
}
return u;
其中n是我回归的长度,数据是从雅虎财务给我的数组,而正如我之前提到的那样,行是我的回归线。到目前为止,我已经使用相同的过程来完成所有的计算(一个for循环来填充一个数组然后返回数组),除了这个之外它们都可以正常工作。如果我使用n = 200,它将返回180的数组。如果使用n = 100它将返回一个88的数组。这发生在n = 50和n = 30时,唯一正常工作的是n = 15。最奇怪的部分是让我的ui平方我使用这个代码...
function getuisq(n, ui){
var uisq = new Array(n);
for(j=0; j<n; j++){
uisq[j] = ui[j] * ui[j];
}
return uisq;
它完美无缺。它使用未完全填充的ui数组,但它返回一个具有适当值的正确数组(如果n = 100,uisq [89]将具有ui [89] * ui [89]的值但是我的返回数组没有ui [89]的值。我已经尝试了很多东西,但它似乎只是起作用。如果你能提供帮助,将不胜感激。
答案 0 :(得分:0)
我不明白为什么你需要n。尝试更改为
function getUi(data, line){
var u = new Array(line.length);
for(var j=0; j<line.length; j++){
u[j] = parseInt(data['quote'][j]['Adj_Close']) - line[j];
}
return u;
}
function getuisq(ui){
var uisq = new Array(ui.length);
for(var j=0; j<ui.length; j++){
uisq[j] = ui[j] * ui[j];
}
return uisq;
}