【发布时间】:2017-10-04 19:38:39
【问题描述】:
我是 SQL 新手,所以希望有人能给我一些启发。我们使用简单的线性回归建立了一个存储过程。现在我想使用 lamda 的折扣因子应用一些权重,即 1, lamda, lamda^2, ..., lamda^n,而 n 是原始系列的长度。
我应该如何生成折扣权重系列并应用于下面的当前代码结构? ...
SUM((OASSpline-OASPriorSpline) * (AdjOASDolDur-AdjOASPriorDolDur))/SUM(SQUARE((AdjOASDolDur-AdjOASPriorDolDur))) as Beta, /* Beta = Sxy/Sxx */
SUM(SQUARE((AdjOASDolDur-AdjOASPriorDolDur))) as Sxx,
SUM((OASSpline-OASPriorSpline) * (AdjOASDolDur-AdjOASPriorDolDur)) as Sxy
...
例如
如果我设置折扣因子 (lamda) = 0.99,我的加权数组应该使用我的系列中的 10 的长度自动生成:
OASSpline = [1.11,1.45,1.79, 2.14, 2.48, 2.81,3.13,3.42,3.70,5.49]
AdjOASDolDur = [0.75,1.06,1.39, 1.73, 2.10, 2.48,2.85,3.20,3.52,3.61]
OASPriorSpline = 5.49
AdjOASPriorDolDur = 5.61
Weight = [1,0.99,0.9801,0.970299,0.96059601,0.9509900, 0.941480149,0.932065348,0.922744694,0.913517247]
加权线性回归应返回 0.81243398 的 beta,而当前的简单线性回归应返回 0.81164174 的 beta。
非常感谢!
【问题讨论】:
-
edit 您的问题并添加一些示例数据和基于该数据的预期输出。 Formatted text 请no screen shots。不要在 cmets 中发布代码或附加信息
-
感谢您的关注,a_horse。我们正在使用 Microsoft SQL。这能回答您的 DBMS 问题吗?
-
同意@a_horse_with_no_name,预期的输出和样本数据很有帮助。很多人都知道 SQL,但我不知道什么是“折扣因子”、“lamda”、“加权线性回归”或“beta”! :)
-
很抱歉给您带来了困惑。我在帖子中添加了一些输入和预期输出。
标签: sql sql-server regression weighted