The following dummy data frame has factor Q (with 2 levels) nesting
factor P (with levels p1 and p2 nested under q1, and p3 and p4 nested
under q2), but both crossing the random variate s, which has 8
levels. The dependent measure is dv.
> # The data frame:
> testnest
dv s P Q
1 1 s1 p1 q1
2 2 s2 p1 q1
3 1 s3 p1 q1
4 2 s4 p1 q1
5 1 s5 p1 q1
6 3 s6 p1 q1
7 3 s7 p1 q1
8 4 s8 p1 q1
9 2 s1 p2 q1
10 3 s2 p2 q1
11 3 s3 p2 q1
12 1 s4 p2 q1
13 1 s5 p2 q1
14 2 s6 p2 q1
15 2 s7 p2 q1
16 3 s8 p2 q1
17 3 s1 p3 q2
18 3 s2 p3 q2
19 4 s3 p3 q2
20 1 s4 p3 q2
21 1 s5 p3 q2
22 1 s6 p3 q2
23 2 s7 p3 q2
24 2 s8 p3 q2
25 4 s1 p4 q2
26 3 s2 p4 q2
27 1 s3 p4 q2
28 2 s4 p4 q2
29 4 s5 p4 q2
30 1 s6 p4 q2
31 3 s7 p4 q2
32 1 s8 p4 q2
# The following aov() call is structurally correct with respect
# to the design, and appropriate error-terms, but, as can be seen,
# returns an error:
> testnest.aov=aov(dv~Q+P%in%Q+Error(s+s:Q+s:P:Q),data=testnest)
Warning message:
Error() model is singular in: aov(dv ~ Q + P %in% Q + Error(s + s:Q +
s:P:Q), data = testnest)
# However, applying the summary() method to the aov output, produces
the correct analysis:
> summary(testnest.aov)
Error: s
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 7 5.8750 0.8393
Error: s:Q
Df Sum Sq Mean Sq F value Pr(>F)
Q 1 0.1250 0.1250 0.068 0.8018
Residuals 7 12.8750 1.8393
Error: s:Q:P
Df Sum Sq Mean Sq F value Pr(>F)
Q:P 2 0.250 0.125 0.1111 0.8956
Residuals 14 15.750 1.125
I have tried many different ways of denoting the Error()
partitioning, but can't find one that produces both the correct
analysis *AND* no singularity error on the aov() call. Any suggestions?
--
Please avoid sending me Word or PowerPoint attachments.
See <http://www.gnu.org/philosophy/no-word-attachments.html>
-Dr. John R. Vokey
Dear Prof. Vokey:
I can't answer your question regarding aov, because I never use it.
Instead, I use lme in library(nlme), which should be able to handle your
specific question and many more that aov can NOT handle. I could get
your error message, but I don't know how to fix it using aov.
However, the following lme call looks like it might answer the
question you are asking:
> library(nlme)
> testNest <- lme(dv~Q,
+ random=list(s=~1, P=~1), data=testnest)
> testNest
Linear mixed-effects model fit by REML
Data: testnest
Log-restricted-likelihood: -47.54548
Fixed: dv ~ Q
(Intercept) Qq2
2.125 0.125
Random effects:
Formula: ~1 | s
(Intercept)
StdDev: 4.726742e-05
Formula: ~1 | P %in% s
(Intercept) Residual
StdDev: 1.076244 0.005591059
Number of Observations: 32
Number of Groups:
s P %in% s
8 32
For me, the essential reference for lme is Pinheiro and Bates (2000)
Mixed-Effects Models in S and S-Plus (Springer). Bates is perhaps the
leading contributor in this area, and I believe you will be amply
rewarded for appropriate study of this book.
hope this helps,
spencer graves
John Vokey wrote:
> The following dummy data frame has factor Q (with 2 levels) nesting
> factor P (with levels p1 and p2 nested under q1, and p3 and p4 nested
> under q2), but both crossing the random variate s, which has 8
> levels. The dependent measure is dv.
> > # The data frame:
> > testnest
> dv s P Q
> 1 1 s1 p1 q1
> 2 2 s2 p1 q1
> 3 1 s3 p1 q1
> 4 2 s4 p1 q1
> 5 1 s5 p1 q1
> 6 3 s6 p1 q1
> 7 3 s7 p1 q1
> 8 4 s8 p1 q1
> 9 2 s1 p2 q1
> 10 3 s2 p2 q1
> 11 3 s3 p2 q1
> 12 1 s4 p2 q1
> 13 1 s5 p2 q1
> 14 2 s6 p2 q1
> 15 2 s7 p2 q1
> 16 3 s8 p2 q1
> 17 3 s1 p3 q2
> 18 3 s2 p3 q2
> 19 4 s3 p3 q2
> 20 1 s4 p3 q2
> 21 1 s5 p3 q2
> 22 1 s6 p3 q2
> 23 2 s7 p3 q2
> 24 2 s8 p3 q2
> 25 4 s1 p4 q2
> 26 3 s2 p4 q2
> 27 1 s3 p4 q2
> 28 2 s4 p4 q2
> 29 4 s5 p4 q2
> 30 1 s6 p4 q2
> 31 3 s7 p4 q2
> 32 1 s8 p4 q2
>
> # The following aov() call is structurally correct with respect
> # to the design, and appropriate error-terms, but, as can be seen,
> # returns an error:
>
> > testnest.aov=aov(dv~Q+P%in%Q+Error(s+s:Q+s:P:Q),data=testnest)
> Warning message:
> Error() model is singular in: aov(dv ~ Q + P %in% Q + Error(s + s:Q +
> s:P:Q), data = testnest)
>
> # However, applying the summary() method to the aov output, produces
> the correct analysis:
>
> > summary(testnest.aov)
>
> Error: s
> Df Sum Sq Mean Sq F value Pr(>F)
> Residuals 7 5.8750 0.8393
>
> Error: s:Q
> Df Sum Sq Mean Sq F value Pr(>F)
> Q 1 0.1250 0.1250 0.068 0.8018
> Residuals 7 12.8750 1.8393
>
> Error: s:Q:P
> Df Sum Sq Mean Sq F value Pr(>F)
> Q:P 2 0.250 0.125 0.1111 0.8956
> Residuals 14 15.750 1.125
>
> I have tried many different ways of denoting the Error()
> partitioning, but can't find one that produces both the correct
> analysis *AND* no singularity error on the aov() call. Any suggestions?
>
> --
> Please avoid sending me Word or PowerPoint attachments.
> See <http://www.gnu.org/philosophy/no-word-attachments.html>
>
> -Dr. John R. Vokey
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
Here P is already nested in Q, so s:P suffices. You are getting the warning because most of the cells of s:P:Q are empty. On Tue, 14 Mar 2006, John Vokey wrote:> The following dummy data frame has factor Q (with 2 levels) nesting > factor P (with levels p1 and p2 nested under q1, and p3 and p4 nested > under q2), but both crossing the random variate s, which has 8 > levels. The dependent measure is dv. > > # The data frame: > > testnest > dv s P Q > 1 1 s1 p1 q1 > 2 2 s2 p1 q1 > 3 1 s3 p1 q1 > 4 2 s4 p1 q1 > 5 1 s5 p1 q1 > 6 3 s6 p1 q1 > 7 3 s7 p1 q1 > 8 4 s8 p1 q1 > 9 2 s1 p2 q1 > 10 3 s2 p2 q1 > 11 3 s3 p2 q1 > 12 1 s4 p2 q1 > 13 1 s5 p2 q1 > 14 2 s6 p2 q1 > 15 2 s7 p2 q1 > 16 3 s8 p2 q1 > 17 3 s1 p3 q2 > 18 3 s2 p3 q2 > 19 4 s3 p3 q2 > 20 1 s4 p3 q2 > 21 1 s5 p3 q2 > 22 1 s6 p3 q2 > 23 2 s7 p3 q2 > 24 2 s8 p3 q2 > 25 4 s1 p4 q2 > 26 3 s2 p4 q2 > 27 1 s3 p4 q2 > 28 2 s4 p4 q2 > 29 4 s5 p4 q2 > 30 1 s6 p4 q2 > 31 3 s7 p4 q2 > 32 1 s8 p4 q2 > > # The following aov() call is structurally correct with respect > # to the design, and appropriate error-terms, but, as can be seen, > # returns an error: > > > testnest.aov=aov(dv~Q+P%in%Q+Error(s+s:Q+s:P:Q),data=testnest) > Warning message: > Error() model is singular in: aov(dv ~ Q + P %in% Q + Error(s + s:Q + > s:P:Q), data = testnest) > > # However, applying the summary() method to the aov output, produces > the correct analysis: > > > summary(testnest.aov) > > Error: s > Df Sum Sq Mean Sq F value Pr(>F) > Residuals 7 5.8750 0.8393 > > Error: s:Q > Df Sum Sq Mean Sq F value Pr(>F) > Q 1 0.1250 0.1250 0.068 0.8018 > Residuals 7 12.8750 1.8393 > > Error: s:Q:P > Df Sum Sq Mean Sq F value Pr(>F) > Q:P 2 0.250 0.125 0.1111 0.8956 > Residuals 14 15.750 1.125 > > I have tried many different ways of denoting the Error() > partitioning, but can't find one that produces both the correct > analysis *AND* no singularity error on the aov() call. Any suggestions? > > -- > Please avoid sending me Word or PowerPoint attachments. > See <http://www.gnu.org/philosophy/no-word-attachments.html> > > -Dr. John R. Vokey > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Maybe Matching Threads
- [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON
- [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON
- [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON
- [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON
- [PATCH] Optimize silk_warped_autocorrelation_FIX() for ARM NEON