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

SAS STAT Discussion :

Test de significativité


Sujet :

SAS STAT

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Test de significativité
    Bonjour à tous,

    Voici mon problème :
    dans mon fichier j'ai 4 colonnes, les 2 premières Y12 et Y11 correspondant à des taux de satisfaction (la première pour cette année, la deuxième pour l'année dernière) et les 2 suivantes N12 et N11 les volumes de répondants (respectivement de cette année et de l'année dernière).

    Je voudrais savoir si la différence entre mes taux de satisfaction sont significativement différents en tenant compte du poids des répondants, et cela pour chaque ligne de mon fichier. L'idéal serait d'avoir une 5ème colonne avec l'information significativité : positive, négative ou nulle (pas de différence).

    J'ai essayé avec la proc freq mais je ne sais pas trop quoi mettre dans weight :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    proc freq data=sign;
    weight ???? (que mettre ici??
    tables Y12*Y11 / chisq;
    run;
    Si quelqu'un sait comment faire ? Pour info j'utilise SAS EG 4.3

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    C'est l'organisation de ta table qui n'est pas bonne.
    Il te faudrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ANNEE REPONSE  POIDS
    2011       OK        200
    2011       KO        150
    2012       OK        400
    2012       KO        325
    Alors la proc Freq serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROC FREQ DATA=... ;
      WEIGHT poids ;
      TABLE annee * reponse / CHISQ ;
    RUN ;
    Comment passer de ta table actuelle à la nouvelle ? La valeur de poids pour REPONSE=OK et ANNEE=2011 est Y11*N11, celle pour REPONSE=KO et ANNEE=2011 est (1-Y11)*N11. (En supposant que Y11 et Y12 sont entre 0 et 1, pas entre 0 et 100.)
    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
    DATA work.nouveau ;
      SET work.existant ;
      annee = 2011 ;
      reponse="OK" ;
      poids=N11*Y11 ;
      OUTPUT ;
      reponse="KO" ;
      poids=(1-N11)*Y11 ;
      OUTPUT ;
      annee = 2012 ;
      reponse="OK" ;
      poids=N12*Y12 ;
      OUTPUT ;
      reponse="KO" ;
      poids=(1-N12)*Y12 ;
      OUTPUT ;
    RUN ;
    Bon courage.
    Olivier
    Bon courage.
    Olivier

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci Olivier pour ta réponse. Malgré tout je ne pense pas que cela résolve mon problème (ou alors je n 'ai pas compris la solution que tu me suggères...).
    Je ne me suis peut-être pas bien exprimée, voilà comment se présente mon tableau (une fois transposé comme tu l'as proposé):

    Y12 0.36 0.35 0.44 0.56...(taux de satisfaction année 2012)
    Y11 0.28 0.27 0.52 0.48...(taux de satisfaction année 2011)
    N12 120 850 2100 1800...(nombre répondants année 2012)
    N11 300 500 600 1200...(nombre répondants année 2011)
    Significativité pour chaque colonne ?

    Dans ton exemple je ne vois pas à quoi correspond les OK et KO et surtout comment cela peut s'appliquer à chacune de mes colonnes ? Je ne veux pas savoir si globalement les taux de Y12 sont significativement différents de Y11 mais je voudrais l'info cas par cas (j'appelle un cas les données en vert par exemple)?
    J'espère m'être correctement exprimé et que tu pourras m'éclairer à ce sujet !

    Merci d'avance !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Attaché statisticien
    Inscrit en
    Mai 2011
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Attaché statisticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2011
    Messages : 687
    Points : 1 581
    Points
    1 581
    Par défaut
    Bonjour


    dans mon fichier j'ai 4 colonnes, les 2 premières Y12 et Y11
    Y12 0.36 0.35 0.44 0.56...(taux de satisfaction année 2012)
    Y11 0.28 0.27 0.52 0.48...(taux de satisfaction année 2011)
    N12 120 850 2100 1800...(nombre répondants année 2012)
    N11 300 500 600 1200...(nombre répondants année 2011)
    Tu avais mal décrit ta table, tes colonnes Y12 et Y11 sont des lignes en fait....

    A priori une table SAS a les observations en lignes, et les variables en colonne, alors que tu as l'inverse.

    Il faudrait je pense que tu remette ça d'aplomb en faisant une proc transpose.

    Ensuite tu cherche à comparer tes observations à quoi ?

    l'information significativité : positive, négative ou nulle (pas de différence).
    (pas de différence) : pas de différence par rapport à quelle référence pour chaque observation.. ? (pas de différence par rapport à la précédente ? par rapport à une moyenne ? )

  5. #5
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Je crois qu'effectivement on ne s'est pas compris du tout sur l'organisation de ta table. Alors j'ai repris les données que tu proposais, et en transposant et bricolant, je l'ai mise dans la forme qui me semblait nécessaire à la proc Freq. Chaque test du khi-2 te donne l'égalité des proportions de satisfaits entre les deux années (p-value forte : pas de différence significative, p-value faible : différence significative).
    Voici mon code, n'hésite pas si tu as des questions. L'idéal, à mon avis, est de l'exécuter morceau par morceau pour voir quel est le but des manipulations.
    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
    42
    DATA work.enquete ;
      INPUT var $ item1-item4 ;
    DATALINES ;
    Y12 0.36 0.35 0.44 0.56 
    Y11 0.28 0.27 0.52 0.48 
    N12 120 850 2100 1800   
    N11 300 500 600 1200    
    ;
    RUN ;
    DATA work.enquete ;
      SET work.enquete ;
      annee = 2000 + SUBSTR(var,2) ;
      var2 = SUBSTR(var,1,1) ;
    RUN ;
    PROC SORT DATA=work.enquete ;
      BY annee ;
    RUN ;
    PROC TRANSPOSE DATA=work.enquete 
                    OUT=work.test (RENAME=(_name_=item)) ;
      BY annee ;
      VAR item1-item4 ;
      ID var2 ;
    RUN ;
    DATA work.test2 ;
      SET work.test ;
      LENGTH avis $ 15 ;
      avis = "Satisfait" ;
      effectif = y*n ;
      OUTPUT ;
      avis = "Insatisfait" ;
      effectif = (1-y)*n ;
      OUTPUT ;
    RUN ;
    PROC SORT DATA=work.test2 ;
      BY item ;
      LABEL item="Question" ;
    RUN ;
    PROC FREQ DATA=work.test2 ;
      WEIGHT effectif ;
      TABLE annee * avis / CHISQ NOPERCENT NOCOL ;
      BY item ;
    RUN ;
    Bon courage.
    Olivier
    Bon courage.
    Olivier

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup!! En effet, il y a eu incompréhension mais grâce à votre aide j'ai quasiment résolu mon problème. Il ne me reste plus qu'à savoir comment récupérer toutes les p-value pour pouvoir les stocker dans un tableau : une p-value par item (par question). Est-ce que ça serait abuser de votre aide que de vous demander comment procéder, si solution il y a ?

    Encore un grand merci !

  7. #7
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ODS OUTPUT chisq=work.pValues ;
    juste avant la proc FREQ te créera une table PVALUES en sortie en plus des résultats usuels. Il n'y a plus qu'à requêter dessus.
    Bon courage.
    Olivier

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Super !

    Merci beaucoup Olivier, ça va me faire gagner beaucoup de temps par rapport au "bricolage" que je faisais avant.

    Je vais mettre ce post en résolu.

    Bonne après-midi à toi

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

Discussions similaires

  1. Test de significativité dans Tableau croisé
    Par Picsouli dans le forum SAS STAT
    Réponses: 3
    Dernier message: 10/09/2012, 17h35
  2. test de significativité
    Par mounabs dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/04/2010, 13h50
  3. Script test de deux chaine avec if
    Par kacedda dans le forum Linux
    Réponses: 6
    Dernier message: 02/05/2003, 15h38
  4. [XMLRAD] test de nullité
    Par Pm dans le forum XMLRAD
    Réponses: 5
    Dernier message: 29/11/2002, 10h57
  5. test collisions
    Par tatakinawa dans le forum OpenGL
    Réponses: 5
    Dernier message: 08/06/2002, 06h03

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