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 :

Fonction fitfclust et erreur dim(X)


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 22
    Par défaut Fonction fitfclust et erreur dim(X)
    Bonjour,

    Je viens tout juste de commencer à utiliser R. J'aimerai utiliser le package Fclust.

    J'ai un problème lors de l'utilisation de la fonction fitfclust. Je ne sais pas si cela concerne mon ensemble de données de départ:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //création des données
    > xdata=c(1,2,3,4,1,2,3,2,3,2,4,3,5,6,3,6,7,3,5,6,1,2,3,4,5,4,5,6,7,4,5)
    > curvedata=c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3)
    > timeindexdata=c(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,11)
     
    //création de la structure
    > traces<- structure (list(x=xdata,curve=curvedata, timeindex=timeindexdata))
     
    //exécution de la fonction fitfclust
    > testfit <- fitfclust(data=traces)
    Erreur dans apply(points[class == k, ], 2, mean) : 
      dim(X) must have a positive length
    Mes données sont-elles mal initialisées ?

    Je vous remercie d'avance pour votre aide!

  2. #2
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Bonjour,

    il me semble que le problème vient lors de l'appel à la fonction fclustinit:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    "fclustinit" <-
    function(data, pert = 0, grid = seq(0.01, 1, length = 100), h = 1, p = 2, q = 5,K = K){
      S <- FullS <- NULL
      # This function initializes all the parameters.
      # Produce spline basis matrix
        FullS <- cbind(1, ns(grid, df = (q - 1)))
        FullS <- svd(FullS)$u
        S <- FullS[data$timeindex,  ]
      N <- length(table(data$curve))
      # Compute initial estimate of basis coefficients.
      points <- matrix(0,N,sum(q))
      for (i in 1:N){
        Si <- S[data$curve==i,]
        xi <- data$x[data$curve==i]
        points[i,] <- solve(t(Si) %*% Si + pert * diag(q)) %*% t(Si) %*%xi}
      # Use k-means to get initial cluster memberships from points.
      if(K > 1)
        class <- kmeans.rndstart(points, K, 10)$cluster
      else class <- rep(1, N)
      # Initial estimates for the posterior probs of cluster membership.
      piigivej <- matrix(0, N, K)
      piigivej[col(piigivej) == class] <- 1
      # Calculate coefficeints for cluster means.
      classmean <- matrix(0,K,q)
      for (k in 1:K)
        classmean[k,] <- apply(points[class==k,],2,mean)
      # Initialize lambda.zero, Lambda and alpha as defined in paper.
      lambda.zero <- apply(classmean, 2, mean)
      Lambda <- as.matrix(svd(scale(classmean, scale = F))$v[, 1:h])
      alpha <- scale(classmean, scale = F)%*%Lambda
      # Calculate estimates for gamma and gprod.
      gamma <- t(t(points) - lambda.zero - (Lambda %*% t(alpha[class,  ])))
      gprod <- NULL
      for(i in 1:N)
        gprod <- cbind(gprod, (gamma[i,  ]) %*% t(gamma[i,  ]))
      gamma <- array(gamma[, rep(1:sum(q), rep(K, sum(q)))], c(N, K, sum(q)))
      gcov <- matrix(0, sum(q), N * sum(q))
      list(S = S, FullS = FullS, parameters = list(lambda.zero = lambda.zero,
        Lambda = Lambda, alpha = alpha), vars = list(gamma = gamma,
          gprod = gprod, gcov = gcov, piigivej = piigivej))
    }
    cf. site de Gareth James http://www-bcf.usc.edu/~gareth/

    A votre place, je ferais du "pas à pas" sur cette fonction avec votre jeu de données...

    Bon courage

Discussions similaires

  1. Fonction start_session() affichage erreur
    Par kev484 dans le forum Langage
    Réponses: 8
    Dernier message: 19/12/2007, 21h52
  2. Fonction Compte() indique Erreur
    Par Spanish_ dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/11/2007, 12h47
  3. fonction ActiveWindow.Name erreur objet requis
    Par Davik dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/02/2007, 11h08
  4. Fonction qui renvoie erreur dans mon état
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 20/10/2005, 12h40
  5. fonction LAG et erreur PLS-00103. Oracle 8i
    Par henrirobert dans le forum Oracle
    Réponses: 7
    Dernier message: 26/05/2005, 16h03

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