[R] candisc plotting

Michael Friendly friendly at yorku.ca
Sat Dec 13 01:07:46 CET 2008


You might try something like

do.can <- candisc(do.mod, data=do)
plot(do.can)

But, in your example there is only one canonical dimension there are 
only two levels of the
factor.

In any case, do.can$scores has the scores, so you can try to plot them 
however you like.

For a 1-D plot in a case where it makes more sense, try

iris.mod <- lm(cbind(Petal.Length, Sepal.Length, Petal.Width, 
Sepal.Width) ~ Species, data=iris)
iris.can <- candisc(iris.mod, data=iris, ndim=1)
 plot(iris.can)


-Michael


Pete Shepard wrote:
> Dear Michael,
>
>
> You haven't told us what your data is, and we can only surmise -- not 
> very helpful for you and annoying for those who try to help.
>
> Apologies, I am brand new to R and this mailing list. Will try to be 
> more concise.
>
> Here is my data a NEW verion of my data:
>
>   Curvature Diameter   Quality
> 1      2.95     6.63    Passed
> 2      2.53     7.79    Passed
> 3      3.57     5.65    Passed
> 4      3.16     5.47    Passed
> 5      2.58     4.46 NotPassed
> 6      2.16     6.22 NotPassed
> 7      3.27     3.52 NotPassed
>
> What I am trying to get from the candisc method is a 1 dimensional 
> scatterplot that separates my two groups Passed and NotPassed
>
> On this data I do a "do.mod <- lm(cbind(Diameter, Curvature) ~ 
> Quality, data=do)"
>
> >do.mod produces
>
> Coefficients:
>                Diameter  Curvature
> (Intercept)    4.7333    2.6700  
> QualityPassed  1.6517    0.3825  
>
> I then run the "candisc" method: "do.can <- candisc(do.mod, data=do)"
>
> this produces:
>
> Canonical Discriminant Analysis for Quality:
>
>    CanRsq Eigenvalue Difference Percent Cumulative
> 1 0.91354     10.566                100        100
>
> Test of H0: The canonical correlations in the
> current row and all that follow are zero
>
>   LR test stat approx F num Df den Df   Pr(> F)   
> 1        0.086   52.831      1      5 0.0007706 ***
> ---
> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
> What "I think" I would like to plot is the discriminant function of 
> each sample 1-7.
>
> Here is an example of what I am trying to do with candisc.
>
> http://people.revoledu.com/kardi/tutorial/LDA/Numerical%20Example.html
>
> Thanks
>
>
>  
>
>
>
>  
>
>
>
> On Thu, Dec 11, 2008 at 3:36 PM, Michael Friendly <friendly at yorku.ca 
> <mailto:friendly at yorku.ca>> wrote:
>
>     Dear Pete,
>
>     You haven't told us what your data is, and we can only surmise --
>     not very helpful for you and annoying for those who try to help.
>
>
>     Pete Shepard wrote:
>
>         Hello,
>
>         I have a file with two dependent variables (three and five)
>         and one
>         independent variable. I do  i.mod <- lm(cbind(three, five) ~
>         species,
>         data=i.txt) and get the following output:
>
>
>         Coefficients:
>                     three   five
>         (Intercept)   9.949   9.586
>         species      -1.166  -1.156
>
>     From this, it seems that species is numeric variable, not a factor.
>     If so, canonical discriminant analysis in not appropriate, so
>     all following bets are off.
>
>     That's likely why you end up with only one canonical dimension.
>
>
>
>         I do a" i.can<-candisc(i.mod,data=i):
>
>     Is data=i the same as data=i.txt?
>
>
>         and get the following output:
>
>         Canonical Discriminant Analysis for species:
>
>            CanRsq Eigenvalue Difference Percent Cumulative
>         1 0.096506    0.10681                100        100
>
>         Test of H0: The canonical correlations in the
>         current row and all that follow are zero
>         LR test stat approx F num Df den Df   Pr(> F)
>         1        0.903   63.875      1    598 6.859e-15 ***
>         ---
>         Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
>
>         this is different than the output I get with SAS:
>
>     What was your SAS code? Was the data the same?
>
>
>                 Eigenvalue Difference Proportion Cumulative      Ratio
>             F Value
>         Num DF Den DF Pr > F
>
>               1     0.1068                1.0000     1.0000 0.90349416
>         31.88      2    597 <.0001
>
>
>
>
>         I am also wondering how to plot the can1*can1 like it is done
>         in SAS.
>
>         proc plot;
>            plot can1*can1=species;
>            format species spechar.;
>            title2 'Plot of Constits_vs_cassettes';
>          run;
>
>     If you want to compare plots for canonical analysis in SAS and R,
>     see my macros, canplot and hecan at
>     http://www.math.yorku.ca/SCS/sasmac/
>
>     But in general, if all you have is 1 canonical dimension, a dotplot or
>     boxplot of the canonical scores would be more useful than a
>     scatterplot plot of can1 * can1.
>
>     The plot method for candisc objects in the candisc package has some
>     code to handle the 1 can-D case.
>
>     hope this helps
>     -Michael
>
>         Thanks
>
>                [[alternative HTML version deleted]]
>
>         ______________________________________________
>         R-help at r-project.org <mailto: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.
>
>
>
>     -- 
>     Michael Friendly     Email: friendly AT yorku DOT ca
>     Professor, Psychology Dept.
>     York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
>     4700 Keele Street    http://www.math.yorku.ca/SCS/friendly.html
>     Toronto, ONT  M3J 1P3 CANADA
>
>


-- 
Michael Friendly     Email: friendly at yorku.ca 
Professor, Psychology Dept.
York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street    http://www.math.yorku.ca/SCS/friendly.html
Toronto, ONT  M3J 1P3 CANADA



More information about the R-help mailing list