Hello Alejo,
Please, keep sending your post to the R-help mailing list in order other
people can also answer.
The type of lda_analysis is lda and that is normal and it also is
perfectly normal to find a different type for predict(lda_analysis)$x.
Moreover the example of the lda() function about iris gives me the exact
same types for the object z (of the example) and for predict(z).
When you plot lda_analysis, you use the function plot.lda whereas you
use the function plot for the predict object.
As I told you in my previous e-mail the predicted class are not the
class of X$G3 so it is normal if the two plots are not exactly the same.
which(predict(lda_analysis)$class != X$G3) gives you all the
observations that are predicted in a different category from X$G3. Look
at this points and you can see they are the only different points from
the two plots (the coordinates are the same).
Alain
Alejo C.S. wrote:> Hi Alain,
>
> I thought (in the worng way I see) that the predict function applied
> to an object of class "lda" returned the coordinates of the
> discriminant axes. When doing the same to iris data, the original
> classes are the same than those returned by predict. Is not the case
> with my data, if you compare the original classes with those returned
> by predict(), the are different.
> I'm really confused now.......
>
> Regards,
>
>
> Alejo
>
> 2009/10/15, Alain Guillet <alain.guillet at uclouvain.be
> <mailto:alain.guillet at uclouvain.be>>:
>
> Hi Alejo,
>
> According to my knowledge the two plots are different because in the
> first one a point belongs to a group depending on its group in the
> data
> whereas in the second plot a point belongs to the group predicted
> by the
> linear discriminant analysis.
>
> I hope somebody will correct me if I am wrong.
>
> Alain
>
>
> Alejo C.S. wrote:
>
> Hi Alain, this is the code:
>
>
> library(MASS)
> library(mda)
>
>
> #data attached, first column "G3" group membership
>
> X <- read.table("data", header=T)
>
> lda_analysis <- lda(formula(X), data=X)
>
> plot(lda_analysis, col=palette()[X$G3])
>
> #the above plot is completely different to:
>
> plot(predict(lda_analysis)$x, type="n")
> text(predict(lda_analysis)$x,
> labels=predict(lda_analysis)$class,
> col=palette()[predict(lda_analysis)$class])
>
> The above code only reproduce the first plot using predict to
> obtain coordinates and classes for the first tow discriminant
> axis.
>
> Thanks ,
>
> Alejo
>
>
> --
> Alain Guillet
> Statistician and Computer Scientist
>
> SMCS - Institut de statistique - Universit? catholique de Louvain
> Bureau c.316
> Voie du Roman Pays, 20
> B-1348 Louvain-la-Neuve
> Belgium
>
> tel: +32 10 47 30 50
>
>
>
--
Alain Guillet
Statistician and Computer Scientist
SMCS - Institut de statistique - Universit? catholique de Louvain
Bureau c.316
Voie du Roman Pays, 20
B-1348 Louvain-la-Neuve
Belgium
tel: +32 10 47 30 50