2017-10-04 7 views
0

私はSQLを使い慣れていないので、誰かが私に希望の光を当てるのを待っています。単純な線形回帰を用いてストアドプロシージャを定位置に置いた。今度は、割引係数lamda、すなわち1、lamda、lamda^2、...、lamda^nを使用していくつかの重み付けを適用したいが、nは元の系列の長さである。SQLの加重回帰

割引重量シリーズを生成し、以下の現在のコード構造に適用するにはどうすればよいですか? ...

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 

...

例えば、重み付き線形回帰が0.81243398のベータを返すべき

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.99を設定した場合

は、私の重みアレイは、自動的に生成された私の系列から10の長さを使用して形成されなければなりません現在の単純な線形回帰は0.81164174のベータ値を返します。

ありがとうございます!

+2

**あなたの質問といくつかのサンプルデータとそのデータに基づいて予想される出力を追加してください。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、[スクリーンショットなし](http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-asking-a-question/285557#285557)。コメントにコードやその他の情報を投稿しないでください –

+0

あなたの注意、a_horseに感謝します。私たちはMicrosoft SQLを使用しています。それはあなたのDBMSの質問に答えますか? –

+1

@a_horse_with_no_nameと合意すると、期待される出力とサンプルデータが役立ちます。多くの人がSQLを知っていますが、私は "割引係数"、 "ラムダ"、 "加重線形回帰"または "ベータ"が何であるか分かりません。 :) – bbrumm

答えて

0

私は刺すでしょう。

このarticle dealing generating sequence numbersを見て、指数として生成された現在の行番号を使用できます。それは動作しますか?私は公正な少数が要求によってかわいそうであると思う。

+0

ありがとう、アラン。私はそれを試してみましょう。 –

関連する問題