Also, I would guess that the code precedes the use of backticks in 
non-syntactic names. Could they be deployed here?

- Peter

> On 17 Sep 2023, at 16:43 , John Fox <j...@mcmaster.ca> 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
> 
> -- 
> John Fox, Professor Emeritus
> McMaster University
> Hamilton, Ontario, Canada
> web: https://www.john-fox.ca/
> On 2023-09-16 4:39 p.m., Robert Baer wrote:
>> Caution: External email.
>> When doing Anova using the car package,  I get a print warning that is
>> unexpected.  It seemingly involves have my flow cytometry factor levels
>> named CD271+ and CD171-.  But I am not sure this warning should be
>> intended behavior.  Any explanation about whether I'm doing something
>> wrong? Why can't I have CD271+ and CD271- as factor levels?  Its legal
>> text isn't it?
>> library(car) mod = aov(Viability ~ Treatment*Expression, data = dat1)
>> Anova(mod, type =2) Anova Table (Type II tests) Response: Viability Sum
>> Sq Df F value Pr(>F) Treatment 19447.3 3 9.2942 0.0002927 *** Expression
>> 2669.8 1 3.8279 0.0621394 . Treatment:Expression 2226.3 3 1.0640
>> 0.3828336 Residuals 16739.3 24 --- Signif. codes: 0 ‘***’ 0.001 ‘**’
>> 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Warning messages: 1: 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 2: 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 3: 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
>> The code to reproduce:
>> ```
>> dat1 <-structure(list(Treatment = structure(c(1L, 1L, 1L, 1L, 3L, 1L,
>>                                                1L, 1L, 1L, 2L, 2L, 2L,
>> 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
>>                                                3L, 3L, 4L, 4L, 4L, 4L,
>> 4L, 4L, 4L, 4L), levels = c("Control",
>> "Dabrafenib", "Trametinib", "Combination"), class = "factor"),
>>                        Expression = structure(c(2L, 2L, 2L, 2L, 2L, 1L,
>> 1L, 1L,
>>                                                 1L, 2L, 2L, 2L, 2L, 1L,
>> 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L,
>>                                                 1L, 2L, 2L, 2L, 2L, 1L,
>> 1L, 1L, 1L), levels = c("CD271-",
>> "CD271+"), class = "factor"),
>>                        Viability = c(128.329809725159, 24.2360176821065,
>> 76.3597924274457, 11.0128771862387, 21.4683836248318,
>>                                      140.784162982894, 87.4303286565443,
>> 118.181818181818, 53.603690178743,
>>                                      51.2973284643475, 5.47760907168941,
>> 27.1574091870075, 50.8360561214684,
>>                                      56.5250816836441, 28.6949836632712,
>> 93.2731116663463, 71.900826446281,
>>                                      32.2314049586777, 24.2360176821065,
>> 27.4649240822602, 24.0822602344801,
>>                                      26.542379396502, 30.693830482414,
>> 27.772438977513, 13.4729963482606,
>>                                      8.24524312896406, 18.5469921199308,
>> 13.9342686911397, 13.3192389006342,
>>                                      19.9308091485681, 17.6244474341726,
>> 16.2406304055353)),
>>                   row.names = c(NA,
>>                                 -32L),
>>                   class = c("tbl_df", "tbl", "data.frame"))
>> mod = aov(Viability ~ Treatment*Expression, data = dat1)
>> summary(mod)
>> library(car)
>> Anova(mod, type =2)
>> ```
>>> sessionInfo() R version 4.3.1 (2023-06-16 ucrt) Platform:
>> x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 11 x64 (build
>> 25951) Matrix products: default locale: [1] LC_COLLATE=English_United
>> States.utf8 LC_CTYPE=English_United States.utf8
>> LC_MONETARY=English_United States.utf8 [4] LC_NUMERIC=C
>> LC_TIME=English_United States.utf8 time zone: America/Chicago tzcode
>> source: internal attached base packages: [1] stats graphics grDevices
>> utils datasets methods base other attached packages: [1] car_3.1-2
>> carData_3.0-5 tidyr_1.3.0 readr_2.1.4 readxl_1.4.3 ggplot2_3.4.3
>> dplyr_1.1.3 loaded via a namespace (and not attached): [1] crayon_1.5.2
>> vctrs_0.6.3 cli_3.6.1 rlang_1.1.1 purrr_1.0.2 generics_0.1.3
>> labeling_0.4.3 [8] bit_4.0.5 glue_1.6.2 colorspace_2.1-0 hms_1.1.3
>> scales_1.2.1 fansi_1.0.4 grid_4.3.1 [15] cellranger_1.1.0 abind_1.4-5
>> munsell_0.5.0 tibble_3.2.1 tzdb_0.4.0 lifecycle_1.0.3 compiler_4.3.1
>> [22] pkgconfig_2.0.3 rstudioapi_0.15.0 farver_2.1.1 R6_2.5.1
>> tidyselect_1.2.0 utf8_1.2.3 parallel_4.3.1 [29] vroom_1.6.3 pillar_1.9.0
>> magrittr_2.0.3 bit64_4.0.5 tools_4.3.1 withr_2.5.0 gtable_0.3.4
>>         [[alternative HTML version deleted]]
>> ______________________________________________
>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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 -- To UNSUBSCRIBE and more, see
> 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.

-- 
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd....@cbs.dk  Priv: pda...@gmail.com

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to