Interpolation

Y compris Power BI, Power Query et toute autre question en lien avec Excel
E
Excelboy
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 17 mars 2017
Version d'Excel : 2010 EN

Message par Excelboy » 17 mars 2017, 15:19

Salut a tous

Je suis loin d'être un expert excel donc je fais appel a vous car je sais que je peux passer des journees a parcourir l'aide avant de trouver une solution seul:

J'ai un fichier d'environ 15000 lignes qui va surement continer de s'agrandir.

J'ai 3 colonnes: noms, abscisses, ordonnees.

Je cherche a realiser pour chaque nom une regression (je pense d'ordre 2) des coordonnees abscisses/ordonneees correspondantes, pour ensuite calculer l'ecart de la valeur ordonnee par rapport au point interpolé de la regression.

Un exemple de data:

La 5e ligne indique ABBNVXA2 comme nom. Je veux donc faire une regression sur toutes les coordonnees colonnees 3 et 4 correspondant a ce nom (lignes 6 a 8). Ensuite je veux pour chaque ligner estimer l'ecart entre l'ordonnee et l'ordonnee interpolee a partir de la regression précédente. Je veux faire ca automatique pour chaque nom.

NOM (colonne inutile) abscisse ordonnee
AARBBBB1 32.55087299 1.859646138 32.55
AARBBBB2 206.9359021 3.684330925 206.94
ABBNVXA2 56.36295983 4.063869133 19.86
ABBNVXA2 62.02273302 3.852928199 25.52
ABBNVXA2 -0.950033684 1.942490294 -0.95
ABBNVXA2 57.64012006 4.692334694 21.02
ABBNVXA2 139.5500096 15.14758197 109.93
ABBNVXA2 13.80429587 5.729801892 13.80
ABBVBBB1 15.63836488 2.56394393 15.64
ABBVBBB1 80.45601562 6.522581532 80.46
ABBVBBB1 105.0424264 9.985519826 105.04
ABBVBBB1 211.2654669 14.65737436 181.64
ABBVBBB1 91.35449342 5.090056496 54.73
ABBVBBB1 14.16087394 1.577884055 -21.46
ABBVBBB1 66.51868696 3.890412811 30.02
ABBVBBB1 107.6237388 5.523559613 71.37
ABBVBBB1 141.5061945 7.721928688 106.63
ABBVBBB1 196.4859773 12.59316365 164.78
ABBVBBB1 209.7619613 15.57747845 181.09
ABBVBBB1 197.2863798 12.06211462 164.54
ABBVBBB1 -9.022500766 1.121411083 -43.02
ABBVBBB1 137.951534 6.905361397 102.33
ABBVBBB1 54.16308413 2.905135068 17.91
ABBVBBB1 93.27476763 4.913987977 56.65
ABBVBBB1 213.4689601 15.13046166 183.84


Merci beaucoup
A
Amadéus
Modérateur
Modérateur
Messages : 17'691
Appréciations reçues : 78
Inscrit le : 7 mai 2006
Version d'Excel : Office Excel 2003 FR et 2013FR

Message par Amadéus » 17 mars 2017, 21:25

Bonjour
Pourquoi joindre un fichier :
Sur la charte du Forum
http://forum.excel-pratique.com/annonce ... r-t13.html
Point 6 : • Pensez à joindre un fichier pour faciliter la compréhension du problème et augmenter les chances de vous faire aider (taille limite : 300ko, n'hésitez pas à compresser vos fichiers).
Pour joindre un fichier :
http://www.youtube.com/watch?v=EbNYLzTz5wM]Comment Joindre Un Fichier
Cordialement
Amadéus vous informe que, pour cause de saturation, il ne peut plus répondre aux messages privés non sollicités.
E
Excelboy
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 17 mars 2017
Version d'Excel : 2010 EN

Message par Excelboy » 4 avril 2017, 14:01

Bonjour,

Il m'est malheuresement impossible de poster un fichier (bloqué par l'administrateur de mon réseau).
Voici un exemple du format du fichier:
Mes abscisses sont "dur to worst" et mes ordonneesa sont "z xccy adj". Je souhaite faire la regression pour chaque nom dans la 1ere colonne.

TICKER&RATING Count Mid ZTW Dur to worst Z XCCY ADJ

ABNANVBBB2 8 153.4721029 4.277277909 120.4721029
ABNANVBBB2 8 73.4624492 3.538093942 73.4624492
ABNANVBBB2 8 125.8315144 4.407951618 125.8315144
ABNANVBBB2 8 115.8808267 3.040779994 115.8808267
ABNANVBBB2 8 333.6646207 9.320345807 302.1646207
ABNANVBBB2 8 194.1313292 7.16792753 161.3813292
ABNANVBBB2 8 138.7582514 5.313450324 138.7582514
ABNANVBBB2 8 197.5830905 6.790955792 164.8330905
ABTBBB2 14 50.22648043 2.511935814 18.72648043
ABTBBB2 14 81.20024207 4.205310833 48.20024207
ABTBBB2 14 136.2533318 7.763318912 104.5033318
ABTBBB2 14 108.8953474 5.711560053 75.64534744
ABTBBB2 14 195.2405979 12.41725915 165.7405979
ABTBBB2 14 207.6337462 15.46504168 179.5637462
ABTBBB2 14 217.5816653 12.21678342 188.0816653
ABTBBB2 14 42.80726941 1.892929458 12.80726941
ABTBBB2 14 220.8085241 12.92646768 191.7851908
ABTBBB2 14 55.82800867 2.906990871 24.32800867
ABTBBB2 14 214.0051196 13.46139127 184.9817863
ABTBBB2 14 133.9787358 6.97848996 101.2287358
ABTBBB2 14 44.84132742 2.834319462 13.34132742
ABTBBB2 14 87.29891564 4.597170747 53.79891564
ABXCNBBB3 11 259.6090879 11.0615162 229.1090879
ABXCNBBB3 11 270.8327589 11.38494803 240.3327589
ABXCNBBB3 11 286.1016083 11.78839593 256.6016083
ABXCNBBB3 11 29.2514946 1.872267397 -0.748505396
ABXCNBBB3 11 227.7246218 12.7769967 198.7012885
ABXCNBBB3 11 214.4215586 13.57603798 185.874892
ABXCNBBB3 11 59.18796334 3.749130512 26.18796334
ABXCNBBB3 11 207.7513991 14.34092354 179.2047325
ABXCNBBB3 11 74.10660655 4.530099539 40.60660655
ABXCNBBB3 11 71.25797659 5.297260499 37.75797659
ABXCNBBB3 11 208.646457 14.10526215 180.0997903
E
Excelboy
Nouveau venu
Nouveau venu
Messages : 3
Inscrit le : 17 mars 2017
Version d'Excel : 2010 EN

Message par Excelboy » 5 avril 2017, 11:00

Salut,
J'ai réussi a trouver les coefficients de la regression.
Par contre je cherche toujours un moyen (rapide car j'ai environ 10'000 lignes) de calculer le point interpolé.
J'ai l'habitude de matlab pour manipuler vecteurs et matrices mais avec Excel je galère un peu. Faire des boucles, cellules par cellules est probablement trop long.

Je cherche donc a calculer y = a*x.^2 + b*x +c.
y et x etant des vecteurs, et a,b,c etant contenus dans un vecteur z.

Merci
Avatar du membre
curulis57
Passionné d'Excel
Passionné d'Excel
Messages : 3'747
Appréciations reçues : 226
Inscrit le : 4 janvier 2016
Version d'Excel : 2016 FR / 2019 FR

Message par curulis57 » 6 avril 2017, 02:36

Salut Excelboy,

je suis totalement incapable de comprendre quoi que ce soit à ce que tu racontes : archi nul en math!
Par contre, pour manipuler tes données, j'utiliserais les tableaux pour un traitement en RAM.

ABNANVBBB2 8 153.4721029 4.277277909 120.4721029
ABNANVBBB2 8 73.4624492 3.538093942 73.4624492
ABNANVBBB2 8 125.8315144 4.407951618 125.8315144
'
Dim tTab
'
iRow = Cells(Rows.Count, 1).End(xlUp).Row
tTab = Range("A1:F" & iRow)
'ou A2 si tes données commencent en [A2]
'5 colonnes de données + 1 pour la réponse = 6 colonnes -> A:F
'
For x = 1 To UBound(tTab, 1)
    'uBound(tTab,1) = nombre max de lignes du tableau
    'ici, ton fameux calcul
    'tTab(x,1)= valeur [A x] ou x est l'index du tableau (démarre à 1), pas le n° de ligne
    'tTab(x,2)= valeur [B x]
    'tTab(x,3)= valeur [C x]
    'tTab(x,6)= réponse (colonne F)
Next
Range("A1:F" & iRow) = tTab
'
Espérant t'avoir aidé!
A+
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message