TENEMOS MUCHAS VARIABLES. HACEMOS SELECCION PARA QUEDARNOS CN LAS MÁS SIGNIFICATIVAS, QUE SERÁN LAS Q MEJOR DISCRIMINEN

 

proc stepdisc data=gatos.gatos method=sw;

class tipogato;

 var x1_ph--u2_spgrav;

run;

 

METODO ALTERNATIVO

 

proc reg data=analisis.gatos;

model tipogato=x1_ph--u2_spgrav /

selection=forward sle=0.05;   /*FORWARD añadiendo vbles*/

run;

 

METER VLES D INTERES AN ARRAYS

 

Cada variable esta compuesta de las 3 variables que nosh an salido a medir. Cada variable tiene el tamaño fijado por cada grupo de gato

» g1=[g11 g12 g13]………………….g2,g3,g4

 

HACER ESTUDIO DE NORMALIDAD

SI LA MUESTRA ES MAAYOR Q 10 VECES EL Nº DE VBLES MEDIDAS EN CADA GRUPO CONSIDERAMOS Q ES GRANDE. EN ESTE CASO TENEMOS MUESTRAS PEQUEÑAS, USAMOS NORPEQ EN CADA GRUPO. SALE UNA GRAFICA….SI HAY OUTLIER COMPROBAMOS CN CURTOSIS Y ASIMETRIA

 

USAMOS KURTOSIM PARA VER KURTOSIS Y SIMETRIA. Da dos resultados,uno el de la simetría y otro el de la kurtosis, si son menores que uno no rechazamos y vemos que son normales

 

Ga1=kurto(g1(:,1:3))………….Ga2,Ga3,Ga4

 

AHORA VEMOS LA HOMOGENEIDAD DE LA VARIANZA (Ho: =...= ). METEMOS EN EL TOTAL LAS VARIABLES ESCOGIDAS AL PRINCIPIO, LUEGO EL TAMAÑO DE CADA GRUP Y SI ES PEQUEÑIISIMO RECHAZAMOS HOMOGENEIDAD DE VARIANZA

 

Tot=[todos(:,2) todos(:,4) todos(:,7)]

n=[12 14 11 8]

hv=homogvar(tot(:,1:3),n)

 

 

 

 

 

 

 

 

MANOVA,CONTRASTE TOTAL DE MEDIAS , OSEA CONTRASTE DE IGUALDAD DE MEDIAS DE TODOS LOS GRUPOS(SI EL P-VALOR ES PEQUEÑISIMO LO RECHAZO, HAY DIFERENCIAS ENTRE GRUPOS) Ho: =...=  .

proc anova data=analisis.gatos;

class tipogato;

model x2_coeff x4_phospht x7_creatnn=tipogato  / nouni;

manova h= tipogato prefix=diff;

means tipogato;

run;

 

 

REALIZAR ANALISIS DE PERFILES PARA VER LAS DIFERENCIAS EN LAS GRAFICAS…..(¿COMO?)

 

ANALISIS DISCRIMINANTE CANONICO. Una vez rechazado que las medias son iguales voy a buscar una función que me permita discriminar al máximo la pertenencia de un individuo a un grupo. Esa función buscará la máxima distancia posible entre grupos.

 

proc glm data=analisis.gatos;

class tipogato;

model x2_coeff x4_phospht x7_creatnn=tipogato /nouni;

manova h=_all_;

means tipogato / bon cldiff;

run;

 

Para cada vble un resultado, las dos primeras columnas indicant la comparacion de vbles, aquellas q tengan asteriscos son en las que los grupos son distintos. Si es uno el q se diferencia d los demas, pues este se comporta de manera diferente a los otros 3 para esa vble.

 

Después de bonferroni……..

 

proc candisc data=gatos.gatos out=gatos.salida;

class tipogato;

var x2_coeff x4_phospht x7_creatnn x10_cholne;

run;

 

proc means data=gatos.salida;

class tipogato;

   var can1 can2;

     output out=gatos.salida1;

run;

 

proc print data=gatos.salida1 noobs;

run;

 

El recuadro de likelihodd aproxímate:, cogemos la cumulativa: Los autovalores son el % que explica cada uno, tienen valores  3.8706,0.2838, 0.0020, el primero explica el 93.12%, podría coger solo el primero o los dos primeros.

En el recuadro de between canonical sacamos las funciones lineales para las vbles canonicas  normalizadas: Las variables canónicas normalizadas toman valores entre -1 y 1

- Función lineal de Can1= -0.862285X2 + 0.683848X4+0.838710X7

- Función lineal de Can2=  0.506411X2 + 0.729282X4+0.838710X7

Luego nos da las vbles canonicas estandarizadas……

Después las medias d las vbles canonicas en cada uno de los 5 grupos, las ponemos en un array y hacemos un plot. (son 4 xq hay 4 tipos de gatos)

 

S=[aki dntro la matriz que haya salido]

plot(s(:,1),s(:,2),’*’)

text(s(1,1),s(1,2),’1’)

text(s(2,1),s(2,2),’2’)

text(s(3,1),s(3,2),’3’)

text(s(4,1),s(4,2),’4’)

 

 

Método paramétrico para variables CANONICAS:

Lo siguiente es obtener una función discriminante, con el proc discrim, sabemos que los datos son normales par varianzas distintas (utilizamos pool=no).

Miramos las distancias entre las variables canónicas, busco que sean la máxima posible.

 

  proc discrim data=gatos.salida method=normal pool=no

      crosslisterr crossvalidate;

      class tipogato;

priors equal;

 var can1-can2;

      title 'Usando densidad Normal, 4 variables canonicas y contrastando igualdad de covarianzas';

   run;

 

Método paramétrico para variables ORIGINALES

 

 

proc discrim data=gatos.gatos method=normal pool=no

crossvalidate crosslisterr;

class tipogato;

priors equal;

var x2_coeff x4_phospht x7_creatnn x10_cholne;

run;

 

Aquí podemos apreciar no nos a colocado bien a los gatos, nos sale que el error es 0.3707 como es mayor que 0.2 podemos decir que no es un buen discriminante ya que no coloca bien a los gatos en su correspondiente grupo, por grupos vemos que en el que peor se clasifican es en el 4º grupo.

 

proc gplot data=gatos.salida;

   plot can1*can2=tipogato;

   run;

 

Este es el plot de individuos para can1 y can2 veo que no discrimina bien y no hay diferencias claras entre los 4 grupos, por eso cuando llega un nuevo individuo puede clasificarse mal