[R] Print hypothesis warning- Car package

Robert Baer rb@er @end|ng |rom @t@u@edu
Mon Sep 18 03:33:00 CEST 2023


Thanks John. Appreciate the insights.

On 9/17/2023 9:43 AM, John Fox wrote:
> Dear Robert,
>
> Anova() calls linearHypothesis(), also in the car package, to compute 
> sums of squares and df, supplying appropriate hypothesis matrices. 
> linearHypothesis() usually tries to express the hypothesis matrix in 
> symbolic equation form for printing, but won't do this if coefficient 
> names include arithmetic operators, in your case - and +, which can 
> confuse it.
>
> The symbolic form of the hypothesis isn't really relevant for Anova(), 
> which doesn't use the printed representation of each hypothesis, and 
> so, despite the warnings, you get the correct ANOVA table. In your 
> case, where the data are balanced, with 4 cases per cell, Anova(mod) 
> and summary(mod) are equivalent, which makes me wonder why you would 
> use Anova() in the first place.
>
> To elaborate a bit, linearHypothesis() does tolerate arithmetic 
> operators in coefficient names if you specify the hypothesis 
> symbolically rather than as a hypothesis matrix. For example, to test, 
> the interaction:
>
> ------- snip --------
>
> > linearHypothesis(mod,
> +                  c("TreatmentDabrafenib:ExpressionCD271+ = 0",
> +                    "TreatmentTrametinib:ExpressionCD271+ = 0",
> +                    "TreatmentCombination:ExpressionCD271+ = 0"))
> Linear hypothesis test
>
> Hypothesis:
> TreatmentDabrafenib:ExpressionCD271+ = 0
> TreatmentTrametinib:ExpressionCD271+ = 0
> TreatmentCombination:ExpressionCD271+ = 0
>
> Model 1: restricted model
> Model 2: Viability ~ Treatment * Expression
>
>   Res.Df   RSS Df Sum of Sq     F Pr(>F)
> 1     27 18966
> 2     24 16739  3    2226.3 1.064 0.3828
>
> ------- snip --------
>
> Alternatively:
>
> ------- snip --------
>
> > H <- matrix(0, 3, 8)
> > H[1, 6] <- H[2, 7] <- H[3, 8] <- 1
> > H
>      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
> [1,]    0    0    0    0    0    1    0    0
> [2,]    0    0    0    0    0    0    1    0
> [3,]    0    0    0    0    0    0    0    1
>
> > linearHypothesis(mod, H)
> Linear hypothesis test
>
> Hypothesis:
>
>
> Model 1: restricted model
> Model 2: Viability ~ Treatment * Expression
>
>   Res.Df   RSS Df Sum of Sq     F Pr(>F)
> 1     27 18966
> 2     24 16739  3    2226.3 1.064 0.3828
> Warning message:
> In printHypothesis(L, rhs, names(b)) :
>   one or more coefficients in the hypothesis include
>      arithmetic operators in their names;
>   the printed representation of the hypothesis will be omitted
>
> ------- snip --------
>
> There's no good reason that linearHypothesis() should try to express 
> each hypothesis symbolically for Anova(), since Anova() doesn't use 
> that information. When I have some time, I'll arrange to avoid the 
> warning.
>
> Best,
>  John
>



More information about the R-help mailing list