Ray Haraf
2008-Apr-03 04:44 UTC
[R] summary(object, test=c("Roy", "Wilks", "Pillai", ....) AND ellipse(object, center=....)
Dear All, I would be very appreciative of your help with the following 1). I am running multivariate multiple regression through the manova() function (kindly suggested by Professor Venables) and getting two different answers for test=c("Wilks","Roy","Pillai") and tests=c("Wilks","Roy",'"Pillai") as shown below. In the first case (test=c(list)) I got error message which probably means I can only call one test at a time. I thought I could get ride of this by adding "s" to test; in this case (tests=c(list)), I got Pillai test. Does this mean that Pillai would be the default test and summary(manova()) can only post one test at a time?> summary(manova(cbind(y1, y2) ~ z1, data + ex7.8),test=c("Wilks","Roy","Pillai"))Error in match.arg(test) : 'arg' must be of length 1> summary(manova(cbind(y1, y2) ~ z1, data + ex7.8),tests=c("Wilks","Roy","Pillai"))Df Pillai approx F num Df den Df Pr(>F) z1 1 0.9375 15.0000 2 2 0.0625 . Residuals 3 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 2). My next struggle is to construct prediction ellipse. Both ellipse() and ellipse.lm() are not giving me the solution to "Sampling from multivariate multiple regression prediction regions" posted by Iain Pardoe, Mon May 9 18:43:46 2005. I am working on the same problem and performed all the steps he suggested> ex7.10 <-+ data.frame(y1 = c(141.5, 168.9, 154.8, 146.5, 172.8, 160.1, 108.5), + y2 = c(301.8, 396.1, 328.2, 307.4, 362.4, 369.5, 229.1), + z1 = c(123.5, 146.1, 133.9, 128.5, 151.5, 136.2, 92), + z2 = c(2.108, 9.213, 1.905, .815, 1.061, 8.603, 1.125))> attach(ex7.10) > f.mlm <- lm(cbind(y1,y2)~z1+z2) > y.hat <- c(1, 130, 7.5) %*% coef(f.mlm) > round(y.hat, 2)y1 y2 [1,] 151.84 349.63> qf.z <- t(c(1, 130, 7.5)) %*%+ solve(t(cbind(1,z1,z2)) %*% cbind(1,z1,z2)) %*% + c(1, 130, 7.5)> round(qf.z, 5)[,1] [1,] 0.36995> n.sigma.hat <- SSD(f.mlm)$SSD # same as t(resid(f.mlm)) %*%resid(f.mlm)> round(n.sigma.hat, 2)y1 y2 y1 5.80 5.22 y2 5.22 12.57> F.quant <- qf(.95,2,3) > round(F.quant, 2)[1] 9.55>From here how could I calculate a 95% prediction ellipse for y=(y1,y2) at (z1,z2)=(130,7.5) using either ellipse or ellipse.lm? y1 would be the x-axis and y2, the y-axis. The center is different from (0,0) and I don't know what would be the appropriate x (the lm object). Should Iused predicted values or residuals? In both cases I have vectors which is different from the example given with ellipse.lm 3). Lastly but not the least, would be too ambitious to draw the axes (i.e, the eigenvalues) to the ellipse? Thanks and very kind regards, Ray [[alternative HTML version deleted]]
Prof Brian Ripley
2008-Apr-03 06:47 UTC
[R] summary(object, test=c("Roy", "Wilks", "Pillai", ....) AND ellipse(object, center=....)
Reading the help often resolves questions, which is why we ask you to do so before posting. From ?summary.manova: Usage: ## S3 method for class 'manova': summary(object, test = c("Pillai", "Wilks", "Hotelling-Lawley", "Roy"), intercept = FALSE, ...) Arguments: object: An object of class '"manova"' or an 'aov' object with multiple responses. test: The name of the test statistic to be used. Partial matching is used so the name can be abbreviated. ... The 'summary.manova' method uses a multivariate test statistic for the summary table. Wilks' statistic is most popular in the literature, but the default Pillai-Bartlett statistic is recommended by Hand and Taylor (1987). Note, not mention of 'tests' and explicitly 'a ... test'. It is a standard convention that when several alternatives are given in the usage the first is the default, _and_ the text does say this explicitly. (I might have followed up your next question had you given a URL link to the posting concerned.) On Thu, 3 Apr 2008, Ray Haraf wrote:> > I would be very appreciative of your help with the following > > 1). I am running multivariate multiple regression through the manova() > function (kindly suggested by Professor Venables) and getting two > different answers for test=c("Wilks","Roy","Pillai") and > tests=c("Wilks","Roy",'"Pillai") as shown below. In the first case > (test=c(list)) I got error message which probably means I can only call > one test at a time. I thought I could get ride of this by adding "s" to > test; in this case (tests=c(list)), I got Pillai test. Does this mean > that Pillai would be the default test and summary(manova()) can only > post one test at a time? > >> summary(manova(cbind(y1, y2) ~ z1, data > + ex7.8),test=c("Wilks","Roy","Pillai")) > Error in match.arg(test) : 'arg' must be of length 1 >> summary(manova(cbind(y1, y2) ~ z1, data > + ex7.8),tests=c("Wilks","Roy","Pillai")) > Df Pillai approx F num Df den Df Pr(>F) > z1 1 0.9375 15.0000 2 2 0.0625 . > Residuals 3 > --- > Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 > > 2). My next struggle is to construct prediction ellipse. Both ellipse() and ellipse.lm() are not giving me the solution to "Sampling from multivariate multiple regression prediction regions" posted by Iain Pardoe, Mon May 9 18:43:46 2005. I am working on the same problem and > performed all the steps he suggested > >> ex7.10 <- > + data.frame(y1 = c(141.5, 168.9, 154.8, 146.5, 172.8, 160.1, 108.5), > + y2 = c(301.8, 396.1, 328.2, 307.4, 362.4, 369.5, 229.1), > + z1 = c(123.5, 146.1, 133.9, 128.5, 151.5, 136.2, 92), > + z2 = c(2.108, 9.213, 1.905, .815, 1.061, 8.603, 1.125)) >> attach(ex7.10) >> f.mlm <- lm(cbind(y1,y2)~z1+z2) >> y.hat <- c(1, 130, 7.5) %*% coef(f.mlm) >> round(y.hat, 2) > y1 y2 > [1,] 151.84 349.63 >> qf.z <- t(c(1, 130, 7.5)) %*% > + solve(t(cbind(1,z1,z2)) %*% cbind(1,z1,z2)) %*% > + c(1, 130, 7.5) >> round(qf.z, 5) > [,1] > [1,] 0.36995 >> n.sigma.hat <- SSD(f.mlm)$SSD # same as t(resid(f.mlm)) %*% > resid(f.mlm) >> round(n.sigma.hat, 2) > y1 y2 > y1 5.80 5.22 > y2 5.22 12.57 >> F.quant <- qf(.95,2,3) >> round(F.quant, 2) > [1] 9.55 > > >> From here how could I calculate a 95% prediction ellipse for y=(y1,y2) at (z1,z2)=(130,7.5) using either ellipse or ellipse.lm? y1 would be the x-axis and y2, the y-axis. The center is different from (0,0) and I don't know what would be the appropriate x (the lm object). Should I > used predicted values or residuals? In both cases I have vectors which is different from the example given with ellipse.lm > > 3). Lastly but not the least, would be too ambitious to draw the axes (i.e, the eigenvalues) to the ellipse? > > Thanks and very kind regards, > Ray > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >-- 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
Ray Haraf
2008-Apr-05 17:15 UTC
[R] summary(object, test=c("Roy", "Wilks", "Pillai", ....) AND ellipse(object, center=....)
Dear All, I would be very appreciative of your help with the following 1). I am running multivariate multiple regression through the manova() function (kindly suggested by Professor Venables) and getting two different answers for test=c("Wilks","Roy","Pillai") and tests=c("Wilks","Roy",'"Pillai") as shown below. In the first case (test=c(list)) I got error message which probably means I can only call one test at a time. I thought I could get ride of this by adding "s" to test; in this case (tests=c(list)), I got Pillai test. Does this mean that Pillai would be the default test and summary(manova()) can only post one test at a time?> summary(manova(cbind(y1, y2) ~ z1, data + ex7.8),test=c("Wilks","Roy","Pillai"))Error in match.arg(test) : 'arg' must be of length 1> summary(manova(cbind(y1, y2) ~ z1, data + ex7.8),tests=c("Wilks","Roy","Pillai"))Df Pillai approx F num Df den Df Pr(>F) z1 1 0.9375 15.0000 2 2 0.0625 . Residuals 3 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 2). My next struggle is to construct prediction ellipse. Both ellipse() and ellipse.lm() are not giving me the solution to "Sampling from multivariate multiple regression prediction regions" posted by Iain Pardoe, Mon May 9 18:43:46 2005. I am working on the same problem and performed all the steps he suggested> ex7.10 <-+ data.frame(y1 = c(141.5, 168.9, 154.8, 146.5, 172.8, 160.1, 108.5), + y2 = c(301.8, 396.1, 328.2, 307.4, 362.4, 369.5, 229.1), + z1 = c(123.5, 146.1, 133.9, 128.5, 151.5, 136.2, 92), + z2 = c(2.108, 9.213, 1.905, .815, 1.061, 8.603, 1.125))> attach(ex7.10) > f.mlm <- lm(cbind(y1,y2)~z1+z2) > y.hat <- c(1, 130, 7.5) %*% coef(f.mlm) > round(y.hat, 2)y1 y2 [1,] 151.84 349.63> qf.z <- t(c(1, 130, 7.5)) %*%+ solve(t(cbind(1,z1,z2)) %*% cbind(1,z1,z2)) %*% + c(1, 130, 7.5)> round(qf.z, 5)[,1] [1,] 0.36995> n.sigma.hat <- SSD(f.mlm)$SSD # same as t(resid(f.mlm)) %*%resid(f.mlm)> round(n.sigma.hat, 2)y1 y2 y1 5.80 5.22 y2 5.22 12.57> F.quant <- qf(.95,2,3) > round(F.quant, 2)[1] 9.55>From here how could I calculate a 95% prediction ellipse for y=(y1,y2) at (z1,z2)=(130,7.5) using either ellipse or ellipse.lm? y1 would be the x-axis and y2, the y-axis. The center is different from (0,0) and I don't know what would be the appropriate x (the lm object). Should Iused predicted values or residuals? In both cases I have vectors which is different from the example given with ellipse.lm 3). Lastly but not the least, would be too ambitious to draw the axes (i.e, the eigenvalues) to the ellipse? Thanks and very kind regards, Ray [[alternative HTML version deleted]]
Ray Haraf
2008-Apr-06 00:46 UTC
[R] summary(object, test=c("Roy", "Wilks", "Pillai", ....) AND ellipse(object, center=....)
Dear All, I would be very appreciative of your help with the following 1). I am running multivariate multiple regression through the manova() function (kindly suggested by Professor Venables) and getting two different answers for test=c("Wilks","Roy","Pillai") and tests=c("Wilks","Roy",'"Pillai") as shown below. In the first case (test=c(list)) I got error message which probably means I can only call one test at a time. I thought I could get ride of this by adding "s" to test; in this case (tests=c(list)), I got Pillai test. Does this mean that Pillai would be the default test and summary(manova()) can only post one test at a time?> summary(manova(cbind(y1, y2) ~ z1, data + ex7.8),test=c("Wilks","Roy","Pillai"))Error in match.arg(test) : 'arg' must be of length 1> summary(manova(cbind(y1, y2) ~ z1, data + ex7.8),tests=c("Wilks","Roy","Pillai"))Df Pillai approx F num Df den Df Pr(>F) z1 1 0.9375 15.0000 2 2 0.0625 . Residuals 3 --- Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 2). My next struggle is to construct prediction ellipse. Both ellipse() and ellipse.lm() are not giving me the solution to "Sampling from multivariate multiple regression prediction regions" posted by Iain Pardoe, Mon May 9 18:43:46 2005. I am working on the same problem and performed all the steps he suggested> ex7.10 <-+ data.frame(y1 = c(141.5, 168.9, 154.8, 146.5, 172.8, 160.1, 108.5), + y2 = c(301.8, 396.1, 328.2, 307.4, 362.4, 369.5, 229.1), + z1 = c(123.5, 146.1, 133.9, 128.5, 151.5, 136.2, 92), + z2 = c(2.108, 9.213, 1.905, .815, 1.061, 8.603, 1.125))> attach(ex7.10) > f.mlm <- lm(cbind(y1,y2)~z1+z2) > y.hat <- c(1, 130, 7.5) %*% coef(f.mlm) > round(y.hat, 2)y1 y2 [1,] 151.84 349.63> qf.z <- t(c(1, 130, 7.5)) %*%+ solve(t(cbind(1,z1,z2)) %*% cbind(1,z1,z2)) %*% + c(1, 130, 7.5)> round(qf.z, 5)[,1] [1,] 0.36995> n.sigma.hat <- SSD(f.mlm)$SSD # same as t(resid(f.mlm)) %*%resid(f.mlm) > round(n.sigma.hat, 2)y1 y2 y1 5.80 5.22 y2 5.22 12.57> F.quant <- qf(.95,2,3) > round(F.quant, 2)[1] 9.55>From here how could I calculate a 95% prediction ellipse for y=(y1,y2) at (z1,z2)=(130,7.5) using either ellipse or ellipse.lm? y1 would be the x-axis and y2, the y-axis. The center is different from (0,0) and I don't know what would be the appropriate x (the lm object). Should I used predicted values or residuals? In both cases I have vectors which is different from the example given with ellipse.lm3). Lastly but not the least, would be too ambitious to draw the axes (i.e, the eigenvalues) to the ellipse? Thanks and very kind regards, Ray [[alternative HTML version deleted]]