I have no error when fitting the model. The summary and anova seems to be fine :
> summary(lm1) Call: lm(formula = Volume ~ temps + Traitement:temps + Série, data = data) Residuals: Min 1Q Median 3Q Max -34.3134 -14.9527 -0.9835 12.9174 49.5546 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 24.827 5.128 4.841 4.93e-06 *** temps -3.786 3.057 -1.239 0.2185 Série8 11.680 5.203 2.245 0.0271 * temps:Traitement 3.162 1.277 2.477 0.0150 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 18.86 on 96 degrees of freedom Multiple R-squared: 0.08465, Adjusted R-squared: 0.05604 F-statistic: 2.959 on 3 and 96 DF, p-value: 0.03617 > anova(lm1) Analysis of Variance Table Response: Volume Df Sum Sq Mean Sq F value Pr(>F) temps 1 762 762.09 2.1417 0.14661 Série 1 214 214.18 0.6019 0.43976 temps:Traitement 1 2183 2182.74 6.1340 0.01501 * Residuals 96 34161 355.84 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 But the data is not at all balanced : > table(data$Série, data$Traitemen) 1 2 3 7 0 28 31 8 24 17 0 In batch 7 there is no mouse treated with treatment 1, and in batch 8 there is no mouse treated with treatment 3. Maybe the error come from here, even if lm() is fine with this ? Cheers, Jonas Joris Meys a écrit : > Could you then at least give the summary of the lm? It's really > impossible to tell where your problem is without any information about > the fit. It's a strange error, I never had it in this context, and > this kind of errors often indicate that what goes in is wrong. Your > lm() object is not well formed, so the problem should come from the > fit itself. And as I can't see any obvious errors in your model > formula, it has to be a problem with your data. Did you get no warning > at all when fitting the model? > > Cheers > Joris > > On Fri, Jun 18, 2010 at 10:19 AM, Jonas Mandel <jonas.man...@curie.fr> wrote: >> Hello, >> >> Sorry for the lack of clarity, I thought I was clear about the package : >> it's the function allEffects from the package effects. >> >> Here is my example again (unfortunately I can't give the data) : >> The data concerns effects of 3 treatments on the tumoral volume of mice. >> >>> head(data) >> Id Série Traitement vTum temps Volume >> 55656.1 55656 7 3 1 1 14.03 >> 55805.1 55805 7 3 3 1 59.92 >> 55829.1 55829 7 3 1 1 15.31 >> 55806.1 55806 7 3 2 1 28.01 >> 50725.1 50725 7 3 2 1 34.48 >> 55737.1 55737 7 3 2 1 43.56 >> >> vTum is a factor coding for the qualitative initial volume, from small >> to big, temps is the time (integer) in month since beginning of >> treatment, and Série is a factor coding for the batch. Data is unbalanced. >> >> I fit a linear model as follows: >>> lm1=lm(Volume ~ temps + Traitement:temps + Série , data) >> And then I try to use allEffects to compute (and then plot) the effects >> of the interaction: >>> eff.lm1 <- allEffects(mod=lm1, xlevels=list(temps=c(1:3), Traitement=1:3)) >> And here is the error I get: >> Error in apply(mod.matrix[, components], 1, prod) : index out of range >> >> In the example given in the help page there are factor variables and >> numeric variables so I don't think the problem comes from here. Any help >> is welcome here. >> >> Cheers, >> Jonas >> >> >> Joris Meys a écrit : >>> Please, read the posting guide: >>> - provide a minimal example >>> - tell us from which package the function is coming >>> >>> I guess you used the function allEffects() from the package effects, and >>> did : >>> eff.lm1 <- allEffect(lm1) >>> >>> Then I guess that there's something wrong with the variables you put >>> into the model. Sure they're factor variables and not numeric? >>> >>> Cheers >>> Joris >>> >>> >>> >>> On Thu, Jun 17, 2010 at 6:03 PM, Jonas Mandel <jonas.man...@curie.fr> wrote: >>>> Dear R users, >>>> >>>> I have some trouble using the allEffects() function to compute and >>>> display effect plots for a linear model. >>>> My data is quite simple, it concerns effects of 3 treatments on the >>>> tumoral volume of mice. vTum codes for the qualitative initial volume, >>>> from small to big, temps is the time in month since beginning of >>>> treatment, and Série codes for the batch. Data is unbalanced. >>>> >>>>> head(data) >>>> Id Série Traitement vTum temps Volume >>>> 55656.1 55656 7 3 1 1 14.03 >>>> 55805.1 55805 7 3 3 1 59.92 >>>> 55829.1 55829 7 3 1 1 15.31 >>>> 55806.1 55806 7 3 2 1 28.01 >>>> 50725.1 50725 7 3 2 1 34.48 >>>> 55737.1 55737 7 3 2 1 43.56 >>>> >>>> >>>> The linear model is also quite simple : >>>>> lm1=lm(Volume ~ temps + Traitement:temps + Série , data) >>>> But when I try to use allEffects() I get this error: >>>>> eff.lm1 <- allEffect(mod=lm1, >>>> Error in apply(mod.matrix[, components], 1, prod) : index out of range >>>> >>>> I read the help and the example but I don't understand the reason why it >>>> doesn't work. Can you help me ? >>>> Thanks >>>> >>>> >>>> -- >>>> Jonas Mandel >>>> >>>> ______________________________________________ >>>> R-help@r-project.org mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide >>>> http://www.R-project.org/posting-guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>> >>> > > > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.