2017-10-04 6 views
0

Je suis nouveau à SQL, en attendant que quelqu'un me verse quelques lumières avec espoir. Nous avons mis en place une procédure stockée utilisant la régression linéaire simple. Maintenant, je veux appliquer une pondération en utilisant un facteur de réduction de lamda, c'est-à-dire 1, lamda, lamda^2, ..., lamda^n, alors que n est la longueur de la série originale. Comment dois-je générer la série de poids actualisés et appliquer à la structure de code actuelle ci-dessous?régression pondérée dans 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 

...

par exemple

Si je place facteur d'actualisation (lambda) = 0,99, ma matrice de pondération doit être formée générée automatiquement en utilisant la longueur de 10 de ma série:

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] 

La régression linéaire pondérée doit retourner un bêta de 0,81243398, tandis que la régression linéaire simple actuelle devrait renvoyer un bêta de 0,81164174.

Merci beaucoup d'avance!

+2

** [modifier] ** votre question et ajoutez quelques exemples de données et la sortie attendue basée sur ces données. [** Texte formaté **] (http://stackoverflow.com/help/formatting) s'il vous plaît, [aucune capture d'écran] (http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-when-ask-a-question/285557 # 285557). Ne pas poster de code ou d'informations supplémentaires dans les commentaires –

+0

Merci pour votre attention, a_horse. Nous utilisons Microsoft SQL. Est-ce que cela répond à votre question de SGBD? –

+1

D'accord avec @a_horse_with_no_name, la sortie attendue et les données d'échantillon sont utiles. Beaucoup de gens connaissent le SQL mais pour ma part je n'ai aucune idée de ce que sont le "facteur de réduction", "lamda", "régression linéaire pondérée" ou "bêta"! :) – bbrumm

Répondre

0

Je vais prendre un coup de couteau.

Vous pouvez consulter ce article dealing generating sequence numbers et utiliser le numéro de ligne actuel généré comme exposant. Est-ce que ça marche? Je pense que quelques-uns sont bousillés par la demande.

+0

Merci, Alan. Laissez-moi essayer. –