Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
KTC Écran PC Gaming 24″ (1920 x 1080) ...
Voir le deal
67.39 €
Le deal à ne pas rater :
Pokémon Évolutions Prismatiques : coffrets et dates de sortie de ...
Voir le deal

Lignes de codes pour l'analyse de régression avec + * :

2 participants

Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Lignes de codes pour l'analyse de régression avec + * :

Message par psy Dim 14 Juil 2019 - 5:49

Bonjour

voici dans un premier temps ce que j'essaye de faire avant de poser la question en lien avec mes premiers pas dans le lancement d'une analyse de régression avec R.

Ma base de données s'appelle: ClSubObjSFMCM2.xls

Je souhaiterais régresser le score en français (des élèves de CM2 résolvent des petits exercices en français, avec comme acronyme pour ce score: SFCM2)
par un score de Clairvoyance des Attentes Subjectives (acronyme M4CE)
et par un score de Clairvoyance des Attentes Objectives (acronyme SCPECM)
et par un score de Concordance de Clairvoyance Attentes subjectives et Objectives de la classe de CM2 (acronyme ClSubObj)

Comme je mélange les + les * et les : je m’apprêtais à écrire ceci

lm (SFCM~M4CE*SCPECM*ClSubObj, data=ClSubObjSFMCM2)

Comme je gère qu'a moitié la Console et R commander, je ne peux pas vérifier vraiment tout seul.

Merci




psy

Nombre de messages : 11
Localisation : Toulouse
Date d'inscription : 19/06/2019

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par Eric Wajnberg Dim 14 Juil 2019 - 9:11

J'imagine que vous êtes capable d'importer les données sous R à partir de votre fichier Excel.

Sur le plan syntaxique, ceci semble ok (sauf que SFCM2 semble être devenu SFCM; et ca ne devrait donc pas plaire à R).

Sur le plan statistique, interpréter des interaction de rang supérieur à 2 me semble vraiment acrobatique.

Pour information, sous R, on peu imposer de limiter à deux les interactions avec une syntaxe du type:

Code:
lm(SFCM~(M4CE+SCPECM+ClSubObj)^2, data=ClSubObjSFMCM2)

HTH, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1238
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Merci mais oups j'ai juste les coefficients sans le reste

Message par psy Dim 14 Juil 2019 - 18:17

Bonjour Eric,

D'abord merci beaucoup pour l'aide. Smile
Effectivement il y avait des 2 qui manquaient. alien

J'ai tapé votre (ta) ligne de commande, je me suis débrouillé avec la console sans Rcommander, avec peut être une ancienne version de R.
Du coup il m'a donné le minimum vital sans les autres colonnes à savoir: Std.error/t value/ Pr(>|t|)/Resudual standard error/DF

En fait j'obtiens ça: Shocked
Je n'ai pas régressé que le score aux exercices de Francais, j'ai aussi régressé le score de Maths et Regréssé le score de maths+francais, d'ou les 3 analyses!

> View(ClSubObjSFMCM2Complet)
> lm(SFCM2~(M4CE+SCPECM2+ClSubObj)^2,data = ClSubObjSFMCM2Complet)

Call:
lm(formula = SFCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)

Coefficients:
(Intercept) M4CE SCPECM2 ClSubObj
6.2796 0.7063 -2.5075 -3.5925
M4CE:SCPECM2 M4CE:ClSubObj SCPECM2:ClSubObj
0.9532 -0.4885 1.5350

lm(SMCM2~(M4CE+SCPECM2+ClSubObj)^2,data = ClSubObjSFMCM2Complet)

Call:
lm(formula = SMCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)

Coefficients:
(Intercept) M4CE SCPECM2 ClSubObj
8.7601 0.4617 -2.8470 -5.4262
M4CE:SCPECM2 M4CE:ClSubObj SCPECM2:ClSubObj
0.8895 2.2103 -0.8104

lm(SFMCM2~(M4CE+SCPECM2+ClSubObj)^2,data = ClSubObjSFMCM2Complet)

Call:
lm(formula = SFMCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)

Coefficients:
(Intercept) M4CE SCPECM2 ClSubObj
15.0397 1.1680 -5.3545 -9.0186
M4CE:SCPECM2 M4CE:ClSubObj SCPECM2:ClSubObj
1.8427 1.7218 0.7246

Je sais pas ce qu'il faut que je fasse pour avoir les toutes les infos.

Dominique

psy

Nombre de messages : 11
Localisation : Toulouse
Date d'inscription : 19/06/2019

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par Eric Wajnberg Lun 15 Juil 2019 - 3:58

psy a écrit:lm(SFMCM2~(M4CE+SCPECM2+ClSubObj)^2,data = ClSubObjSFMCM2Complet)

Call:
lm(formula = SFMCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)

Coefficients:
    (Intercept)              M4CE           SCPECM2          ClSubObj  
        15.0397            1.1680           -5.3545           -9.0186  
   M4CE:SCPECM2     M4CE:ClSubObj  SCPECM2:ClSubObj  
         1.8427            1.7218            0.7246  

Je sais pas ce qu'il faut que je fasse pour avoir les toutes les infos.
Ce qu'il faut faire ? Comme toujours, dans R, ce qu'il faut faire, c'est lire la documentation, notamment ici la doc de la fonction lm.
Code:
?lm

Par exemple,
Code:
ma.reg=lm(formula = SFMCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)
anova(ma.reg)

HTH, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1238
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par psy Lun 15 Juil 2019 - 15:50

Bonjour

Ok pour l'aide pour la documentation à savoir le ?
Parfois c'est ??
Merci. Embarassed

Du coup j'ai fait cela comme code:

jpa<-lm(formula = SFCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)
> summary(jpa)

Call:
lm(formula = SFCM2 ~ (M4CE + SCPECM2 + ClSubObj)^2, data = ClSubObjSFMCM2Complet)

En sachant pour rappel que:

Concernant la variable à prédire : SFCM2  (le Score en Français à des exercices  des élèves de CM2)
Concernant  les prédicteurs :
M4CE : clairvoyance subjective (Moyenne des 4 items de clairvoyance des attentes de l’enseignant)
SCPECM2 : clairvoyance objective (Scroe des Croix Communes entre le Prof de CM2 et les élèves de CM2)
ClSubObj : Concordance de la clairvoyance subjective et objective au niveau de la classe, , avec création d’un score pour chaque professeur en fonction de la qualité de cette concordance (mesurée par des corrélations). Par exemple le Maître X a un score de 1, la Maîtresse B et C un score de 0 et La maîtresse D = -1. Pour cette dernière il n'y a pas une bonne corrélation entre la clairvoyance réelle et subjective dans sa classe, donc elle a -1.

J'obtiens ces résultats ou plutôt cette absence de résultats:


Residuals:
   Min      1Q  Median      3Q     Max
-7.0018 -2.3978 -0.2613  2.3613  9.0049

Coefficients:
                Estimate Std. Error t value Pr(>|t|)  
(Intercept)        6.2796     6.1034   1.029   0.3077  
M4CE               0.7063     2.0144   0.351   0.7271  
SCPECM2           -2.5075     2.5461  -0.985   0.3286  
ClSubObj          -3.5925     4.2044  -0.854   0.3962  
M4CE:SCPECM2       0.9532     0.8030   1.187   0.2399  
M4CE:ClSubObj     -0.4885     1.3211  -0.370   0.7129  
SCPECM2:ClSubObj   1.5350     0.8943   1.716   0.0912 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.646 on 60 degrees of freedom
Multiple R-squared:  0.3327, Adjusted R-squared:  0.266
F-statistic: 4.986 on 6 and 60 DF,  p-value: 0.0003352

Mais du coup, vu l'absence de résultats, je me demande si j'ai bien fait ce que l'on me demande, à savoir, de " multiplier les variables pour créer chaque variable d'interaction?".
Comme j’utilise R et pas Excel pour calculer la régression, donc j'ai pas besoin de multiplier les variables...non?

Je vais quand même pas faire pour obtenir les valeurs de la variable (ClSubjObj = Concordance de la Clairvoyance Objective et subjective de la classe) que je rentre dans mon tableau de données la multiplication: M4CE (clairvoyance subjective) xSCPECM2 (clairvoyance objective) x Score attribué à chaque professeur?

psy

Nombre de messages : 11
Localisation : Toulouse
Date d'inscription : 19/06/2019

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par psy Lun 15 Juil 2019 - 18:45

Bonjour

j'ai essayé de regarder sur le net pour comprendre et je suis tombé sur ce chapitre de thèse, mais j'ai encore du mal:

Au chapitre 6 qui s'intitule analyse des interactions, ils disent par exemple: :

"On caractérise généralement l'interaction par le produit de deux (ou plusieurs) variables .

La signi cation n'est pas la même selon leur type. Lorsque les variables sont des indicatrices, soit parce
qu'elles binaires par nature, soit parce qu'il s'agit d'une indicatrice de modalité d'une variable qualitative,
le produit indique la conjonction des caractéristiques. Par exemple, si X1 = fumeur et X2 = alcoolique,
la variable Z = X1 X2 prend la valeur 1 lorsque l'on a a aire à un fumeur alcoolique. Elle prend la
valeur 0 lorsqu'il s'agit d'un fumeur qui ne boit pas ; ou d'un soi ard qui ne fume pas ; ou lorsque la
personne n'est ni fumeur, ni alcoolique. L'insertion de la variable Z dans la régression permet de véri er
l'interaction. Si l'impact du tabac est constant que l'on soit alcoolique ou pas, le coe cient associé à Z
ne devrait pas être signi catif ; dans le cas contraire, s'il est signi cativement di érent de 0, cela veut dire
que l'impact du tabac n'est pas le même chez les alcooliques et les non-alcooliques. On parle de modèle
saturé lorsque l'on intègre toutes les interactions possibles dans la régression.


On utilise également le produit quand nous traitons des variables quantitatives. Il faut être conscient
simplement que l'on caractérise un certain type d'interaction. Admettons que X1 maintenant représente
la consommation de cigarettes par jour, X2 la consommation d'alcool. Que penser de Z = X1 X2 quand
elle est introduite dans la régression logistique ?
Le LOGIT s'écrit
LOGIT = a0 + a1X1 + a2X2 + a3Z
= a0 + a1X1 + a2X2 + a3X1 X2
= a0 + (a1 + a3X2)X1 + a2X2


Voyons ce qu'il en est si l'on fait varier la variable X1 d'une unité
LOGIT(ΔX1 = 1) = a0 + (a1 + a3X2)(X1 + 1) + a2X2
= a0 + (a1 + a3X2)X1 + a2X2 + (a1 + a3X2)


De fait, la variation du logit consécutive à une variation d'une unité de X1 est une fonction linéaire
de la seconde variable X2

ΔLOGIT(ΔX1 = 1) = LOGIT(ΔX1 = 1) - LOGIT = a1 + a3 X2
De manière plus générale, la variation du logit lorsque X1 évolue de d unités s'écrit
ΔLOGIT(ΔX1 = d) = (a1 + a3X2) xd

Il faut garder cette idée en tête. Concernant les variables quantitatives, utiliser le produit caractérise
un certain type d'interaction : le log odds-ratio consécutif à une variation d'une des explicatives est
fonction linéaire des autres explicatives. Ce n'est pas une limitation, il faut en être conscient simplement
lorsque nous analysons les résultats.

Ca m'aide un peu mais c 'est pas gagné.
dominique

psy

Nombre de messages : 11
Localisation : Toulouse
Date d'inscription : 19/06/2019

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par Eric Wajnberg Mar 16 Juil 2019 - 15:13

Plusieurs points :

Premièrement, les syntaxes "?" ou "??" n'ont pas le même sens sous R. Une fois encore, je vous invite à lire les documentations correspondantes.

Par ailleurs, vous n'avez pas lu correctement ma précédente réponse. Je signalais l'usage de la fonction anova(), mais ne n'est ce que vous faites.

Enfin, je vous cite:

psy a écrit:Mais du coup, vu l'absence de résultats, je me demande si j'ai bien fait ce que l'on me demande, à savoir, de " multiplier les variables pour créer chaque variable d'interaction?".

Ce qu'on vous demande ? Il semble nécessaire de préciser que - selon moi - ce forum n'est là pour faire vos exercices à votre place. Je vous invite à retravailler vos cours, et tâcher de vous en sortir par vous même.

Cordialement, Eric.


Dernière édition par Eric Wajnberg le Mer 17 Juil 2019 - 4:13, édité 1 fois
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1238
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par psy Mar 16 Juil 2019 - 16:57

Bonjour Eric,

Merci pour votre aide, ces derniers temps.
J'ai notamment découvert la limitation aux doubles interaction par ^2.

J'ai pas suivi la fonction anova () car j'ai pas bien compris le résultat et j'ai pensé que la fonction summary() pouvez m'aider.

Pour multiplier les variables et ainsi créer une variable d'interaction, c'est surement valable sur excel mais pas sur R.

Pour apporter ma pierre, j'ai laissé sur le café une référence de bouquin assez sympa....pour renvoyer un peu l’ascenseur à ma façon...avant de faire mieux j’espère quand j'aurais progressé grace des cours en Licence MIASHS....car dans certaines facs de psycho c'est la misère.

Je prends votre dernier message comme des critiques constructives.
La frontière est difficile  à trouver entre se faire aider authentiquement...je rajouterai sous contexte de pression temporelle et donner la perception qu'on fait faire ses propres exercices à sa place.


A bientôt j’espère
Cordialement Dominique

psy

Nombre de messages : 11
Localisation : Toulouse
Date d'inscription : 19/06/2019

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par Eric Wajnberg Mer 17 Juil 2019 - 4:19

La fonction summary() propose des tests sur chaque paramétre séparément alors que la fonction anova() propose des tests globaux, par facteur, et leurs interactions, etc.

Pour le calcul des termes d'interactions, tout est fait (automatiquement) dans R. Les calculer à la main, comme dans ce "qui vous est demandé" ressemble à un exercice issue d'un cours de stat, et c'est à vous de comprendre de quoi il retourne, je pense.

Cordialement,

Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1238
Date d'inscription : 14/09/2012

Revenir en haut Aller en bas

Lignes de codes pour l'analyse de régression avec + * : Empty Re: Lignes de codes pour l'analyse de régression avec + * :

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum