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 :

Construction Frontière efficiente


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Construction Frontière efficiente
    Bonjour,
    Je dois construire une frontière efficiente avec 5 actifs.
    J'ai construit un programme qui étant donné une rentabilité cible nous donne le portefeuille de risque minimal.
    Voici ce programme:


    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
    17
    18
     
    FRE <- function(rentcible)
    {
      top.mat <- cbind(2*sigma.mat, mu.vec, rep(1, 5))
      mid.vec <- c(mu.vec, 0, 0)
      bot.vec <- c(rep(1, 5), 0, 0)
      Ax.mat <- rbind(top.mat, mid.vec, bot.vec)
      b.vec <- c(rep(0, 5), rentcible, 1)
      z.mat <- solve(Ax.mat)%*%b.vec
      x.vec <- z.mat[1:5,]
     
      mu.px = as.numeric(crossprod(x.vec, mu.vec))
      sig2.px = as.numeric(t(x.vec)%*%sigma.mat%*%x.vec)
      sig.px = sqrt(sig2.px)
     
      cat(sig.px) 
     
    }
    Maintenant j'ai construit une séquence de valeur comprise entre 0 et 15% avec un pas de 0.0001 de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    y <- seq(from = 0, to = 0.15,0.0001)
    J'ai essayé de faire une fonction qui pour chaque valeur de y donne le portefeuille de risque minimal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FER <- function()
    {
     
      for (i in 1:length(y))
    {
      x[i] <- FRE2(y[i])
      }
     
    }
    J'ai essayé de modifier plusieurs fois ce programme mais il y a toujours un message d'erreur lorsque je fais le plot(x,y).

    De plus j'ai aussi essayé de faire plot.function mais sans succès.

    Savez-vous d'où pourrait venir cette erreur?

    Par avance merci.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Au final, j'ai décidé d'utiliser l'autre programme qui maximise la rentabilité pour une variance donnée. Le voici:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    FErentmax=function (sigma2_objectif)
    { 
      # Calcul du portefeuille efficient pour un niveau de risque donné
      # 
      # arguments:
      # mu           N x 1 vecteur des rentabilités attendues
      # sigma2_objectif  Réel correspond au niveau de risque souhaité
      #
      # sortie:
      # rent          1 x N vecteur ligne composé des poids du portefeuille efficient
     
      # Créations des variables 
      e <- rep(1,length(mu.vec))
      a <- t(e)%*%solve(sigma.mat)%*%mu.vec
      b <-t(mu.vec)%*%solve(sigma.mat)%*%mu.vec
      c <- t(e)%*%solve(sigma.mat)%*%e
      d <- b*c - a*a
      f <- sqrt(((sigma2_objectif)*c)/d)
      g <- (1/c)*(1-a%*%f)
     
      # Solution du problème 
     
      rent <- solve(sigma.mat)%*%(as.vector(f)*mu.vec+as.vector(g)*e)    
      sigmaP <- t(rent) %*% sigma.mat %*%  rent
      cat("La variance du portefeuille est: ",sigmaP,"\n" )
     
    }
    J'essaye toujours de construire le graphique mais j'ai encore un message d'erreur :

    La variance du portefeuille est:  0.006995066 
    Error in plot.window(...) : 'xlim' nécessite des valeurs finies
    In addition: Warning messages:
    1: In min(x) : no non-missing arguments to min; returning Inf
    2: In max(x) : no non-missing arguments to max; returning -Inf
    3: In min(x) : no non-missing arguments to min; returning Inf
    4: In max(x) : no non-missing arguments to max; returning -Inf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(FErentmax(0:0.15))

Discussions similaires

  1. [JBuilder 7] Construction d'executable natif
    Par renaudfaucon dans le forum JBuilder
    Réponses: 3
    Dernier message: 24/11/2006, 22h28
  2. probleme construction base de donnes MySql...Help
    Par chakan dans le forum Requêtes
    Réponses: 7
    Dernier message: 21/07/2004, 11h27
  3. [JONAS][EJB]erreur sur la construction des EJB
    Par silvermoon dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 04/06/2004, 18h53
  4. [JBuilder 9] Construction d'exécutables natifs
    Par jamloum dans le forum JBuilder
    Réponses: 3
    Dernier message: 10/10/2003, 11h16
  5. [jAPI]Probleme de construction
    Par exe dans le forum C++Builder
    Réponses: 10
    Dernier message: 07/08/2003, 10h03

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