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 :

aide pour un devoir


Sujet :

R

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut aide pour un devoir
    bonjour je suis étudiante en L3 et j'ai un exercice à rendre en R:
    1) recupérer le fichier de données L3ingbinom5.txt à l'adresse suivante
    http://www.math.sciences.univ-nantes.fr/~philippe/data/L3ingbinom5.txt"
    il contient la réalisation d'un échantillon d'une loi binomiale de parametres (5,0.3)

    j'ai donc fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=scan(file="http://www.math.sciences.univ-nantes.fr/~philippe/data/L3ingbinom5.txt")
    2) construire une vecteur qui contient les moments empiriques(mu 1(1),...,mu n(6)) ou mu n(k) le moment empirique d'ordre k est égal à mu n(k)=1/n somme de i=1 à n de Xi^k
    utiliser la boucle for pour construire ce vecteur.

    j'ai donc posé n=10000 car il y a 10000 éléments dans x
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    n=10000
    i=1:n
    mu.estim=1:6
    for (k in 1:6)
    { mu.estim[k]=(1/n)sum(x^k) }
    mais ça ne marche pas et je ne comprend pas pourquoi, pourriez vous m'aider ?
    merci

  2. #2
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Citation Envoyé par marine44 Voir le message
    bonjour je suis étudiante en L3 et j'ai un exercice à rendre en R:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    n=10000
    i=1:n
    mu.estim=1:6
    for (k in 1:6)
    { mu.estim[k]=(1/n)sum(x^k) }
    Salut,

    En général il vaut mieux poster l'erreur que te donnes R si tu veux qu'on puisse t'aider plus facilement.
    Ici le problème est qu'il manque un * entre 1/n et ton sum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mu.estim[k]=(1/n)*sum(x^k)
    Au passage : tu peux simuler toi même 10000 réalisations d'une binomiale 5,0.3 en faisant rbinom(10000,5,0.3)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    ah oui ça marche, merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    ah non ça ne marche toujours pas car quand je pose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    y=for (k in 1:6){
     mu.estim[k]=(1/n)*sum(x^k) }
    j'obtiens
    alors que je devrais obtenir un vecteur

  5. #5
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <s>y=</s>for (k in 1:6){
     mu.estim[k]=(1/n)*sum(x^k) }


    Ton vecteur est déjà créé, c'est mu.estim.
    Si tu veux le renommer y tu fais:

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    ah d'accord ! merci beaucoup

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    j'ai encore une question, après je doit construire un vecteur qui contient les 6 premiers moment de la loi, (E(X1),...,E(X1^6))
    avec E(h(X1))= somme de i=0 à 5 de h(i)P(X1=i)

    je pense faire une somme de la fonction dbinom, mais je ne vois pas comment faire la somme car la fonction sum() fait automatiquement la somme de i=1 à n

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     esp=1:6
    for(h in 1:6) {
        esp[h]= ??

  8. #8
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Citation Envoyé par marine44 Voir le message
    j'ai encore une question, après je doit construire un vecteur qui contient les 6 premiers moment de la loi, (E(X1),...,E(X1^6))
    avec E(h(X1))= somme de i=0 à 5 de h(i)P(X1=i)
    Si j'ai bien compris le but est de faire exactement la même chose mais au lieu de passer par la moyenne empirique, d'utiliser la formule de l'esperance d'une fonction de V.A. ( et de vérifier qu'on obtient le même résultat?).

    je pense faire une somme de la fonction dbinom, mais je ne vois pas comment faire la somme car la fonction sum() fait automatiquement la somme de i=1 à n
    Je te le code avec une boucle for pour que ce soit facile à comprendre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    resultat.bis<-c()
    for(k in 1:6){
    i=0:5
    h<-i^k
    P<-dbinom(i,5,0.3)
     
    resultat.bis<-c(resultat.bis,sum(h*P))}
     
    print(resultat.bis)
    Et la normalement tu es happy car tu retrouves les même valeurs qu'avec ton mu.estim

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    oui, je crois que c'est ça, le résultat n'est pas exactement le même mais il est proche et je pense que c'est normal. merci beaucoup

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    une dernière question et après c'est fini
    on nous demande de calculer Vk=(1/n)(E(X1^2k)-E(X1^k)^2)
    j'ai donc essayé de refaire pareil mais ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Vk=c()
    for (k in 1:6){
    	i=0:5
    	h=i^k
    	P=dbinom(i,5,0.3)
    	Vk=c(Vk,(1/n)*((sum((h^2)*P)-(sum(h*p))^2))}
    il y a ce message qui apparaît:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Error: unexpected '}' in:
    "P=dbinom(i,5,0.3)
    Vk=c(Vk,(1/n)*((sum((h^2)*P)-(sum(h*p))^2))}"

  11. #11
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Ce message signifie que R attend que tu refermes autre chose avant ta boucle for. Souvent ca veut dire que tu as mal refermé une parenthèse, et c'est effectivement le cas ici puisque tu as oublié de refermer c(...):



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Vk=c()
    for (k in 1:6){
    	i=0:5
    	h=i^k
    	P=dbinom(i,5,0.3)
    	Vk=c(Vk,(1/n)*((sum((h^2)*P)-(sum(h*P))^2)))}
    Au passage un de tes P était en minuscule, attention aux maj/min car R intrerprete P et p comme deux variables différentes.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    merci,
    nous devons également déterminer le lien entre Vk et l'estimateur mu.estim(k) je pense que V1=mu(2)-mu(1)^2.
    mais au vu des résultats ça ne semble pas coller. pouvez m'éclairer ?

  13. #13
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Redit :
    Bon si en fait ta formule que tu codes a l'air fausse.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    faux ? a bon ?
    on devais calculer Vk à la question précédente et on nous demande le lien entre Vk et l'estimateur mu n(k) des moments empiriques , comme Vk est égale à 1/n*la variance des moment de la loi j'en ai déduit que mu(2k)-mu(k)^2 tend vers nVk.

Discussions similaires

  1. Aide pour un devoir langage C
    Par Darkaro dans le forum Débuter
    Réponses: 4
    Dernier message: 08/03/2012, 09h45
  2. Petite aide pour un devoir sur merise
    Par AirBoy dans le forum Merise
    Réponses: 2
    Dernier message: 13/01/2012, 15h44
  3. [SQL3]Aide pour faire un devoir
    Par aminaR dans le forum Langage SQL
    Réponses: 5
    Dernier message: 10/03/2008, 11h20
  4. [MySQL] Aide pour devoir consistant à insérer les données issues d'un formulaire en bdd
    Par glasgow dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 19/02/2008, 09h21

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