Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 25-02-2014 00:49:35

eltorofuerte
Membre
Inscription : 01-04-2013
Messages : 6

Programmation sous R pour régression de Poisson

Je viens de commencer à programmer sous R et j'ai un peu du mal pour un script sur la régression de poisson.
Si vous pouvez prendre un peu de temps pour m'expliquer ca serait cool!

Merci

p <- read.csv("http://www.ats.ucla.edu/stat/data/poisson_sim.csv")
p <- within(p, {
    prog <- factor(prog, levels = 1:3, labels = c("General", "Academic", "Vocational"))
    id <- factor(id)
})
summary(p)   

##Pour cette étape on a importé des données excel .csv (on veut savoir ici si les deux variables qui sont "filière" et "note en math" joue sur le fait que l'étudiant aura une bourse(ou un prix?? désolé c'etait en anglais) ou pas.
la commande within si j'ai bien compris nous permet de redéfinir les variables, c'est le principe du format sous sas, au lieu d'avoir des "1,2,3" on a "general,academic,.." qui sont plus parlantes. id <-factor j'ai pas bien compris..

##le summary nous sert à étudier moyenne, médiane,quartiles...

with(p, tapply(num_awards, prog, function(x) {
    sprintf("M (SD) = %1.2f (%1.2f)", mean(x), sd(x))
})) ## j'ai pas du tout compris cette étape, on calcule une esperance et un ecart type mais je comprends pas les pourcentages..


ggplot(p, aes(num_awards, fill = prog)) + geom_histogram(binwidth = 0.5, position = "dodge")# on trace le graph de p OK

summary(m1 <- glm(num_awards ~ prog + math, family = "poisson", data = p)) # la commande de la régression de poisson, de num_award en fonction de prog et math.

## là c'est le néant je comprends pas du tout si vous pouvez m'éclaircir merci


cov.m1 <- vcovHC(m1, type = "HC0")
std.err <- sqrt(diag(cov.m1))
r.est <- cbind(Estimate = coef(m1), `Robust SE` = std.err, `Pr(>|z|)` = 2 *
    pnorm(abs(coef(m1)/std.err), lower.tail = FALSE), LL = coef(m1) - 1.96 *
    std.err, UL = coef(m1) + 1.96 * std.err)

r.est

with(m1, cbind(res.deviance = deviance, df = df.residual, p = pchisq(deviance,
    df.residual, lower.tail = FALSE)))


## update m1 model dropping prog
m2 <- update(m1, . ~ . - prog)
## test model differences with chi square test
anova(m2, m1, test = "Chisq")

s <- deltamethod(list(~exp(x1), ~exp(x2), ~exp(x3), ~exp(x4)), coef(m1), cov.m1)

## exponentiate old estimates dropping the p values
rexp.est <- exp(r.est[, -3])
## replace SEs with estimates for exponentiated coefficients
rexp.est[, "Robust SE"] <- s

rexp.est
(s1 <- data.frame(math = mean(p$math), prog = factor(1:3, levels = 1:3, labels = levels(p$prog))))
predict(m1, s1, type = "response", se.fit = TRUE)

## calculate and store predicted values
p$phat <- predict(m1, type = "response")

## order by program and then by math
p <- p[with(p, order(prog, math)), ]

## create the plot
ggplot(p, aes(x = math, y = phat, colour = prog)) + geom_point(aes(y = num_awards),
    alpha = 0.5, position = position_jitter(h = 0.2)) + geom_line(size = 1) +
    labs(x = "Math Score", y = "Expected number of awards")

Hors ligne

#2 25-02-2014 10:29:39

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : Programmation sous R pour régression de Poisson

Bonjour,

Sans pratiquer le langage R, au moins une information concernant  sprintf("M (SD) = %1.2f (%1.2f)", mean(x), sd(x)) :

entre les " se trouve la définition d'un format de sortie de sprintf
les % renvoient aux paramètres respectifs qui suivent, à savoir mean(x) et sd(x)
les 1.2 spécifient width.precision suivant lesquels ces paramètres seront imprimés (dans un string).
Si par exemple mean(x) vaut 12.3456 et sd(x) vaut 3.7213, le résultat de sprintf sera la chaine de caractères :
M (SD) = 12.35 (3.72)

Hors ligne

#3 25-02-2014 23:47:56

eltorofuerte
Membre
Inscription : 01-04-2013
Messages : 6

Re : Programmation sous R pour régression de Poisson

Merci totomm c'est clair !!
S'il y a d'autres aides je suis preneur!

Hors ligne

#4 06-03-2014 22:58:15

eltorofuerte
Membre
Inscription : 01-04-2013
Messages : 6

Re : Programmation sous R pour régression de Poisson

Est-ce que quelqu'un peut m'expliquer la sortie de glm de poisson?
Merci

# #
# # Appel:
# # Glm (formule = num_awards ~ prog + mathématiques, de la famille = "poisson", les données = p)
# #
# # Déviance résiduelles:
# # Min 1Q Median 3Q Max 
# # -2,204 -0,844 -0,511 0,256 2,680 
# #
# # Coefficients:
# # Estimation Std. Erreur z valeur Pr (> | z |)   
# # (Intercept) -5,2471 0,6585 -7,97 1.6e-15 ***
# # ProgAcademic 1,0839 0,3583 0,0025 3,03 **
# # ProgVocational 0,3698 0,4411 0,4018 0,84   
# # Maths 0,0702 0,0106 6,62 3.6e-11 ***
# # ---
# # Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 '1
# #
# # (Paramètre de dispersion de la famille de poisson pris à 1)
# #
# # Déviance Null: 287,67 sur 199 degrés de liberté
# # Déviance résiduelle: 189,45 sur 196 degrés de liberté
# # AIC: 373,5
# #
# # Nombre d'itérations Fisher Scoring: 6

Hors ligne

#5 06-03-2014 23:00:02

eltorofuerte
Membre
Inscription : 01-04-2013
Messages : 6

Re : Programmation sous R pour régression de Poisson

Je ne comprends pas pourquoi la section général disparait normalement on doit aussi avoir progeneral ?

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
plus trente six
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums