元编程ols多元回归

我想使用元编程对多列进行多元回归,但是出现了报错:

sql(sqlColAlias(makeUnifiedCall(toArray, makeUnifiedCall(ols, (sqlCol(`rr), sqlCol(t.columnNames()[12:16]), false, 0))), `param), from=t.nullFill(0.0), groupBy=sqlCol(`month`symbol)).eval() 

错误如下

::evaluate(sql(sqlColAlias(makeUnifiedCall(toArray, makeUnifiedCall(ols, (sqlCol("rr"), sqlCol(::columnNames(t)[12 : 16]), 0, 0))), "param"), ::nullFill(t, 0), , sqlCol(["month","tsymbol"]))) => The dimension of dependent doesn't match the dimension of independent factors.


但是,我参考ask.dolphindb.net/question/3646写出了下式,就可以运行:
sql(sqlColAlias(makeUnifiedCall(rowSum, sqlCol(t.columnNames()[12:16])), `newCol), t.nullFill(0.0)).eval() //正常输出

请先 登录 后评论

1 个回答

Polly

在元编程中,你可能需要把多列组合成一个 matrix, 参考:

x = `x+string(1..3)
residual = makeCall(member, makeCall(ols, sqlCol(`factor0), makeUnifiedCall(matrix, sqlCol(x)), 1, 2), "Residual")
sql(residual, t).eval()
请先 登录 后评论