j'ai des données non normales alors j'ai transformé ces données en données binaires (0 = pas de sucre et 1 = du sucre), j'aimerais les analyser, sauf que j'ai des messages d'erreur que j'utilise glm (sans tenir compte des répétitions) ou bien glmer avec ou sans interaction et en tenant compte des répétitions.
ma variable mesurée est : sug (binary data: 0 pour pas de sucre mesuré et 1 si du sucre à été mesuré)
mes effets fixes: temp (2 Temperatures différentes) et var (6 variétés différentes testées) + l'interaction des deux
mes réplicats = rep (le sucre à été mesuré sur 5 réplicats biologiques)
J'ai donc un split plot design et j'aimerais voir les différences variétales, entre températures et pour les interactions au niveau du sucres.
Pouvez-vous m'aider svp? Voici mon script ci-dessous et le csv en format code ci-dessous.
Normalement je dois obtenir un effet de l'interaction temp * var car je sais que j'ai 3 variétés qui ne sucrent pas pour temp = 8 mais qui sucrent pour temp = 4 et pour les 3 autres variétés elles ne sucrent pas pour les 2 températures.
Merci par avance.
Margot
Code : Tout sélectionner
file<-read.csv2("file.csv", na.strings = "NA",header = TRUE)
head(file)
str(file)
file$sug<-as.numeric(file$sug)
file$temp<-as.factor(file$temp)
library(lme4)
library(car)
##Measured variable : sug (binary data: 0 means no sugar and 1 means sugar)
##fixed effect to observed: temp, var and interaction temp, var
##replicates = rep (5 biological replicates per sug analysis)
#split plot design?
# 2 temperatures (temp)
# 6 varieties (var)
#observation of the sugar content (sug) on 5 biological replicates
#model without random factor (rep) / glm function
model_global = glm(sug ~ temp * var , family="binomial", data =file)
Anova(model_global)
#warning:
# Warning messages:
# 1: glm.fit: fitted probabilities numerically 0 or 1 occurred
# 2: glm.fit: fitted probabilities numerically 0 or 1 occurred
# 3: glm.fit: fitted probabilities numerically 0 or 1 occurred
#model with random factor (rep) / glmer fuction
model_global_int = glmer(sug ~ temp * var + (1 | rep), family=binomial, data =file)
Anova(model_global_int)
#Warning messages:
# 1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
# unable to evaluate scaled gradient
# 2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
# Hessian is numerically singular: parameters are not uniquely determined
model_global_plus = glmer(sug ~ temp + var + (1 | rep), family=binomial, data =file)
Anova(model_global_plus)
#Error in pwrssUpdate(pp, resp, tol = tolPwrss, GQmat = GQmat, compDev = compDev, :
# (maxstephalfit) PIRLS step-halvings failed to reduce deviance in pwrssUpdate
VOICI mon fichier au format code:
Code : Tout sélectionner
> dput(file)
structure(list(temp = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L,
2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L), .Label = c("4", "8"), class = "factor"),
var = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L), .Label = c("var1", "var2", "var3", "var4",
"var5", "var6"), class = "factor"), rep = structure(c(1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L,
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L), .Label = c("rep1",
"rep2", "rep3", "rep4", "rep5"), class = "factor"), sug = c(1,
1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0)), row.names = c(NA, -60L), class = "data.frame")