Michael Friendly
2013-Jul-06 12:30 UTC
[R] fitting the null loglinear model with MASS::loglm??
The null loglinear model is an intercept-only model for log frequency, log(f) = \mu For a one-way table the test of the null model is the same as the chisq.test. This can be fit using loglin(), but I don't think there is any way to specify this using MASS::loglm > t1<- margin.table(Titanic,1) > t1 Class 1st 2nd 3rd Crew 325 285 706 885 > loglin(t1, NULL) 0 iterations: deviation $lrt [1] 475.8113 $pearson [1] 467.8069 $df [1] 3 $margin NULL > chisq.test(t1) Chi-squared test for given probabilities data: t1 X-squared = 467.8069, df = 3, p-value < 2.2e-16 The problem is that loglm() allows the 'convenience' of using integers rather than names to specify terms in the model, e.g., 1+2+3, so there is no way AFAICS to specify an intercept-only model. That is, below, the model ~1 is actually the saturated model for the one-way table. > loglm(~NULL, t1) Error in denumerate.formula(formula) : node stack overflow > loglm(~0, t1) Error in double(nmar) : vector size cannot be NA/NaN > loglm(~1, t1) Call: loglm(formula = ~1, data = t1) Statistics: X^2 df P(> X^2) Likelihood Ratio 0 0 1 Pearson 0 0 1 > -- Michael Friendly Email: friendly AT yorku DOT ca Professor, Psychology Dept. & Chair, Quantitative Methods York University Voice: 416 736-2100 x66249 Fax: 416 736-5814 4700 Keele Street Web: http://www.datavis.ca Toronto, ONT M3J 1P3 CANADA