IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Boucle pour calculer des quantiles.


Sujet :

R

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Boucle pour calculer des quantiles.
    Bonjour,
    Je suis débutante sur R et j'aimerais obtenir des quantiles sur "une fenêtre roulante".

    (1) J'ai créé un tableau où je pourrais récupérer mes différents quantiles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #Création d'une matrice pour après stocker les quantiles:
     
    q <- array (NA, dim=c(252,7),dimnames=list(c(NULL),c("0","0.025","0.25","0.5","0.75","0.975","1.0")))
    (2) J'ai fait une boucle pour calculer mes quantiles par rapport aux rendements venant de "CCE.rtn" (une boucle pour chaque quantile); en indiquant [i:i+22,] car je veux que le premier quantile soit calculé grâce à 23 rendements, le 2e grâce aux rendements 2 à 24,... Et alors, j'insère les résultats dans mon tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #Boucle pour récupérer les quantiles:
     
    for (i in seq(from=1, to=252, by=1))
     {q[i,"0"] <- quantile (CCE.rtn [i:i+22,], probs=c(0));i<- i+1}
    for (i in seq(from=1, to=252, by=1))
     {q[i,"0.025"] <- quantile (CCE.rtn [i:i+22,], probs=c(0.025));i<- i+1}
    for (i in seq(from=1, to=252, by=1))
     {q[i,3]<- quantile (CCE.rtn [i:i+22,], probs=c(0.25));i<- i+1}
    for (i in seq(from=1, to=252, by=1))
     {q[i,4]<- quantile (CCE.rtn [i:i+22,], probs=c(0.5));i<- i+1}
    for (i in seq(from=1, to=252, by=1))
     {q[i,5]<- quantile (CCE.rtn [i:i+22,], probs=c(0.75));i<- i+1}
    for (i in seq(from=1, to=252, by=1))
     {q[i,6]<- quantile (CCE.rtn [i:i+22,], probs=c(0.975));i<- i+1}
    for (i in seq(from=1, to=252, by=1))
     {q[i,7]<- quantile (CCE.rtn [i:i+22,], probs=c(1.0)); i<- i+1}
    Le problème est que j'obtiens ce tableau de résultats:

     	0	        0.025	        0.25	        0.5	        0.75	        0.975	        1.0
    1	0.0057388967	0.0057388967	0.0057388967	0.0057388967	0.0057388967	0.0057388967	0.0057388967
    2	-0.0081398582	-0.0081398582	-0.0081398582	-0.0081398582	-0.0081398582	-0.0081398582	-0.0081398582
    3	-0.0072376673	-0.0072376673	-0.0072376673	-0.0072376673	-0.0072376673	-0.0072376673	-0.0072376673
    4	0.0139458860	0.0139458860	0.0139458860	0.0139458860	0.0139458860	0.0139458860	0.0139458860...
    Il y a donc un problème dans mon code étant donné que par ligne, mes quantiles sont égaux mais je ne trouve pas ce qui ne va pas.

    Merci d'avance!

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Salut,

    Deux choses:
    A enlever tout simplement: la boucle for incremente déjà automatiquement.

    Plus embetant:

    veut dire : "de i+22 à i+22" ^^

    Met et ca devrait marcher


    (Au passage le quantile 0.975 sur 22 obs c'est limite.)


    Edit:
    Un dernier truc si tu veux faire tenir tout ce code en 2 lignes:
    quantile() prend en argument un vecteur de probas.
    Ca veut dire que tu peux directement remplir la ligne de toutes les colonnes de tes quantiles en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    quantile(...,probs=c(0,0.10,0.50,0.90, etc...))

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Un tout tout grand merci
    Merci aussi pour la suggestion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/06/2012, 13h49
  2. Optimisation boucles pour calcul Quantiles
    Par popsmelove dans le forum R
    Réponses: 3
    Dernier message: 22/02/2012, 11h44
  3. [VBA-E] Boucle pour supression des dernieres cellules
    Par amd64 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/05/2006, 16h41
  4. Réponses: 6
    Dernier message: 22/11/2005, 17h08
  5. boucle pour insérer des enregistrements
    Par roots_man dans le forum ASP
    Réponses: 7
    Dernier message: 05/10/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo