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 sous R


Sujet :

R

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut Fonction sous R
    Bonjour,

    Je dois créer une fonction selon ce modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adq = function(independent,class)
    qui doit prendre en paramètre un vecteur independent qui contiendra les valeurs de la variable explicative pour les différents individus, et un facteur class contenant la classe d'appartenance de chacun de ces individus.

    La fonction doit renvoyer une liste créer de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list(apriori=apriori,mu=mu,sigma=sigma)

    Cette liste contiendra donc dans le vecteur apriori les probabilités a priori, dans le vecteur mu les moyennes et dans le vecteur sigma les écarts-types.

    j'ai tenté déjà de créer la fonction mais je ne comprend pas trop pourquoi cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adq=function(independent=donnee[,-5],class=donnee[,5])
    donnee=ma table de données
    Ma table comprends 5 variables, 4 quantitatives que je prends en paramètre dans independente et 1 variable qualitative la 5ème colonne.

    Pourriez-vous me dire ce qui ne va pas dans ma fonction?

    merci bien.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Re,

    J'ai approfondie la chose , voici le résultat...qui ne fonctionne pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data(donnee)
    edit(donnee)
    adq=function(independent,class){
    	ad=qda(app[,-5],grouping=app[,5]) 
    	res=predict(ad,newdata=test[,-5])
    	apriori=0
    	mu=0
    	sigma=0
    }
    merci.

  3. #3
    Ayest
    Invité(e)
    Par défaut
    En l'état, ta fonction ne renvoie rien. Si tu veux renvoyer une liste, tu dois la modifier de la maniere suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    data(donnee)
    edit(donnee)
    adq=function(independent,class){
    	ad=qda(app[,-5],grouping=app[,5]) 
    	res=predict(ad,newdata=test[,-5])
    	list(apriori=0, mu=0, sigma=0)
    }
    J'avoue que je ne vois pas trop l'intérêt de cette fonction, qui renvoie une liste constante, et je soupçonne d'avoir mal compris le problème. J'espère que ca peut aider quand meme.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Bonjour,

    Merci pour la réponse, alors en fait,

    on souhaite dans cette question programmer un ensemble de fonctions permettant d'eff ectuer une analyse discriminante quadratique. On se restreint ici au cas unidimensionnel (une seule variable prédictive), pour un problème de discrimination à trois classes.

    1.1.2 Estimation du modèle
    Ecrire une fonction adq = function(independent,class) qui prendra en paramètres un
    vecteur independent qui contiendra les valeurs de la variable explicative pour les di fférents individus, et un facteur class contenant la classe d'appartenance de chacun de ces individus.

    La fonction renverra une liste créeé de la manière suivante :
    list(apriori=apriori,mu=mu,sigma=sigma)
    Cette liste contiendra donc dans le vecteur apriori les probabilités a priori, dans le vecteur mu les moyennes et dans le vecteur sigma les écarts-types.

    Voilà ce que je dois faire ..

  5. #5
    Ayest
    Invité(e)
    Par défaut
    D'après ce que je vois dans la doc de la fonction qda, ca donnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    data(donnee)
    edit(donnee)
    adq=function(independent,class){
    	ad=qda(app[,-5],grouping=app[,5]) 
    	res=predict(ad,newdata=test[,-5])
    	list(apriori=ad$prior, mu=ad$means, sigma=ad$scaling)
    }
    A ceci près que je ne suis pas sur que ad$scaling conviennent, mais tu trouveras ce dont tu as besoin en t'appuyant sur ce modèle.
    Du coup, 'predict' ne sert pas...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 46
    Par défaut
    Bonjour,
    Merci pour la réponse, je vais tester ça ce matin.

    Bonne journée!

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 44
    Par défaut deux à deux
    Bonjour,
    je recherche une fonction qui appliquée à un vecteur numérique, me renvoie autant de vecteur unique qu'il y a de couples possibles?
    vecteur d'origine c(1,2,3,4,5)
    renvoie
    c(1,2)
    c(1,3)
    c(1,4)
    c(1,5)
    c(2,3)
    c(2,4) etc...
    merci d'avance

  8. #8
    Ayest
    Invité(e)
    Par défaut
    Bonjour,

    C'est préférable de créer une nouvelle discussion lorsqu'il s'agit d'un nouveau sujet ; ca facilite la recherche.

    La réponse en ta question est donné par la fonction 'unique'

    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
     
    > ?unique
     
    > d=cbind(sample(1:5,8,replace=TRUE),sample(1:5,8,replace=TRUE))
    > d
         [,1] [,2]
    [1,]    4    2
    [2,]    4    3
    [3,]    2    1
    [4,]    4    5
    [5,]    2    2
    [6,]    4    5
    [7,]    2    4
    [8,]    1    5
    > unique(d)
         [,1] [,2]
    [1,]    4    2
    [2,]    4    3
    [3,]    2    1
    [4,]    4    5
    [5,]    2    2
    [6,]    2    4
    [7,]    1    5

  9. #9
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 44
    Par défaut
    Erreur d'affectation de message
    merci de la réponse

Discussions similaires

  1. VBA requete avec fonction sous access
    Par vanima dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/06/2006, 15h18
  2. [EXCEL] Fonction sous.total
    Par repié dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 15/02/2006, 10h13
  3. [VBA]localiser un appel fonction sous excel
    Par random dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2006, 10h09
  4. Jascript fonction sous IE mais pas sous Netscape ou FF
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 29/12/2005, 17h02
  5. Fonction sous SQL Server
    Par GeffD dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/04/2005, 11h32

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