Professional Documents
Culture Documents
1
2
Uno m
as.
.
Indice general
1. Probabilidad: lo bueno si . . .
1.1. Experimento y probabilidad . . . .
1.2. Variable aleatoria . . . . . . . . . .
1.2.1. Funci
on de distribucion . .
1.2.2. Media y varianza . . . . . .
1.2.3. Teorema de Bayes . . . . .
1.3. Vectores aleatorios . . . . . . . . .
1.4. Distribuci
on normal multivariante
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2. Un
2.1.
2.2.
2.3.
3. Componentes principales
3.1. Introducci
on . . . . . . .
3.2. Componentes principales
3.3. Componentes principales
3.4. Un poco de teora . .
. . . . . . . . . . .
. . . . . . . . . . .
de los datos golub
. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
y la matriz de co. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
.
.
.
.
.
.
.
.
4. An
alisis cluster
4.1. Algunos ejemplos . . . . . . . . . . . . . . . . . . . .
4.2. Disimilaridades . . . . . . . . . . . . . . . . . . . . .
4.2.1. Disimilaridades entre observaciones . . . . .
4.2.2. Disimilaridades entre grupos de observaciones
4.3. Cluster jer
arquico . . . . . . . . . . . . . . . . . . .
4.4. Metodos de particionamiento . . . . . . . . . . . . .
4.4.1. Metodo de las k-medias . . . . . . . . . . . .
4.4.2. Particionamiento alrededor de los mediodes .
4.5. Silueta . . . . . . . . . . . . . . . . . . . . . . . . .
4.6. Un ejemplo completo . . . . . . . . . . . . . . . . . .
3
.
.
.
.
.
.
.
9
9
10
11
11
19
19
20
25
25
27
29
29
30
32
34
35
35
35
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
37
45
48
. . . .
. . . .
. . . .
. . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
51
52
55
55
58
59
65
65
70
74
77
.
.
.
.
.
.
.
.
.
.
.
.
5. An
alisis discriminante o de c
omo clasificar con muestra de entrenamiento
83
5.1. Un problema de probabilidad sencillo . . . . . . . . . . . . . . . . . 86
5.2. Dos poblaciones normales . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3. Dos normales multivariantes . . . . . . . . . . . . . . . . . . . . . . 87
5.4. Dos poblaciones normales multivariantes con parametros desconocidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.5. An
alisis discriminante con mas de dos poblaciones normales . . . . 91
5.6. Valoraci
on del procedimiento de clasificacion . . . . . . . . . . . . . 92
5.7. Variables discriminantes canonicas o discriminantes lineales . . . . . 96
5.8. Algunos ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6. Regresi
on
6.1. Regresi
on lineal simple . . . . . . . . . . . . .
6.2. Regresi
on lineal m
ultiple . . . . . . . . . . . .
6.3. Estimaci
on de . . . . . . . . . . . . . . . .
6.4. Algunos casos particulares . . . . . . . . . . .
6.5. Verosimilitud . . . . . . . . . . . . . . . . . .
6.6. Algunos ejemplos . . . . . . . . . . . . . . . .
6.7. Distribuci
on muestral de . . . . . . . . . .
6.8. Bondad de ajuste . . . . . . . . . . . . . . .
6.9. Valoraci
on de las hip
otesis del modelo . . . .
6.10. Inferencia sobre el modelo . . . . . . . . . . .
6.11. Selecci
on de variables . . . . . . . . . . . . .
6.11.1. Procedimientos que comparan modelos
6.11.2. Procedimientos basados en criterios .
6.12. Algunos ejemplos . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
103
106
108
108
110
111
111
114
115
116
134
140
140
143
146
7. De c
omo usar R en un tiempo razonable (no f
acil, no)
7.1. Instalaci
on y c
omo trabajar con R . . . . . . . . . . . . .
7.1.1. R y Windows . . . . . . . . . . . . . . . . . . . .
7.1.2. R y Linux . . . . . . . . . . . . . . . . . . . . . .
7.2. C
omo instalar un paquete? . . . . . . . . . . . . . . . . .
7.3. C
omo fijar el directorio de trabajo? . . . . . . . . . . . .
7.4. Etiquetas de valor y de variable . . . . . . . . . . . . . . .
7.4.1. C
omo etiquetar una variable? . . . . . . . . . . .
7.5. Elaboraci
on de un informe a partir del codigo R . . . . .
7.5.1. Sweave . . . . . . . . . . . . . . . . . . . . . . . .
7.6. R y Octave/Matlab . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
159
160
160
160
160
161
161
161
161
161
161
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pr
ologo
Cada vez hay m
as datos. Tenemos mas datos introducidos en ficheros. Y esto
es lo peor. Si los datos estuvieran en hojas sueltas y perdidas pues no pasa nada.
Se archivan los papeles y los datos no molestan. No, ahora los propios ordenadores
o bien muchas personas accediendo desde distintos lugares, tienen el mal gusto de
crear unas bancos de datos cada vez mayores. Cada vez con mas casos y con mas
variables. El problema no es conseguir datos. Los tienes a precio de saldo. Te los dan
sin que los pidas. Si tienes conocidos biologos, medicos, qumicos, psicologos seguro
que tienen datos para analizar. Si trabajais en un hospital, tendreis una legion de
medicos (y cada vez m
as enfermeros) con datos. Todo el mundo tiene datos. A los
que tienen cari
no. Que creen que tienen mucho valor. Pero que no saben que hacer
con ellos. En el mejor de los casos alg
un dibujo estilo pastel (bueno, se le llama
diagrama de sectores pero es un pastel) o histograma. Que Dios nos libre de tanto
dibujo que solo sirve para gastar papel y tinta!
En estas notas se pretende (s
olo se pretende) partiendo de unos conocimientos
inform
aticos que no sean b
asicos y de unos conocimientos probabilsticos y estadsticos m
as bien b
asicos, llegar a poder hacer algo decente con un banco de datos.
La parte de an
alisis descriptivo de datos se obvia. Simplemente a lo largo del
curso se va utilizando y recordando. Ya esta bien de perder el tiempo explicando
c
omo hacer un histograma si luego lo hace un programa.
El tono de estas notas pretende ser ameno pues bastante toston es lo que se
cuenta. No in
util. Pero s tost
on. Hay que asumirlo desde un principio. Esto no es
Sexo en Nueva York.1 Son unas notas de Estadstica con R ?. 2
Este documento contiene unas notas de clase para la asignatura de An
alisis de
Datos de Ingeniera Inform
atica de la Universidad de Valencia. Pretende en cada
tema empezar desde un nivel b
asico de contenidos para llegar al uso de la tecnica
correspondiente. Es una realidad que el informatico acaba realizando analisis de
datos. Entre otras cosas porque suele ser la persona mas a mano o bien porque ya ha
programado el resto de la aplicacion que tambien incorporar alg
un tipo de analisis
m
as o menos sencillo. Y es una pena ver como se desaprovecha la informacion.
Por ello en estas notas pretendo tratar rapidamente muchos temas y, ademas, que
podamos utilizarlas. Por ello se recurre a R. Por su potencia y por su disponibilidad.
Incluso en su propia casa y con una conexion a Internet no demasiado rapida puede
el estudiante instalarse R y cualquier paquete que se necesite. Esto ya es bastante
desde el punto de vista docente. Ademas, cualquier procedimiento estadstico esta en
R. Casi se puede decir, que si no lo esta, no merece la pena de utilizarse.
Se proponen distintos apendices como apoyo a conceptos anteriores necesarios.
Se hace un repaso r
apido de los conceptos basicos de la Probabilidad en el tema
1 Sin duda, la mejor serie de televisi
on de la historia. Hay que verla. Las pelculas de despu
es
no. En cualquier caso ahora es m
as recomendable Girls.
2 Un anuncio de la radio (Cadena Ser para m
as se
nas) hablaba de una persona que no entenda
porqu
e su profesor de Estadstica lo haba suspendido. Es de suponer que la persona que escribi
o el
anuncio estudiara Periodismo. All hay una asignatura de Estadstica. Claramente le ha servido.
Ha hecho un anuncio y le habr
an pagado por ello.
1. Las ideas b
asicas de la Estadstica que utilizamos en el resto del curso aparecen
en el tema 2. Ambos captulos con meros res
umenes que no sustituyen el repaso
de muchos de los conceptos en algunos de los textos que se citan en los captulos
correspondientes.
Estas notas est
an orientadas para estudiantes de Ingeniera Informatica y por
ello en muchas ocasiones se incluyen definiciones y conceptos basicos que dicho
estudiante no tiene. Una introduccion generica a la Probabilidad y la Estadstica
que es adecuado hojear pues cubre los conceptos previos es el libro de texto de
Dougherty [1990].
El interes fundamental de estas notas es dar una vision muy amplia sin perder
demasiado tiempo en detalles de cada tecnica. En este sentido se intenta ir directo
al grano con lo que eso supone de dificultad a
nadida. Sin embargo, tiene la compensaci
on de ver c
omo muchos de los conceptos que se estudian son reescritura uno
de otro.
Por fin, un signo de edad es tener que escribir las cosas para que no se nos
olviden. Quiz
as para que uno mismo lo aprenda y para no olvidarlo despues. En el
fondo, todos vamos aprendiendo seg
un lo explicamos y lo escuchamos.
Sin duda, unas notas como las que siguen solo se pueden hacer utilizando LATEX
para escribir y el programa R ? 3 para realizar el analisis de los datos. Son dos
herramientas imprescindibles que se complementan perfectamente. Un tratamiento
estadstico no acaba con un codigo o con unos dibujos aislados. Acaba con un
informe. Con frecuencia, se dedica mas tiempo a explicar lo que se ha hecho, a
escribir el informe, que a la preparacion y tratamiento de los datos, al analisis de
los datos. En este sentido, creo que una herramienta como LATEX es fundamental
utilizada con R. En este texto hablamos de analisis de datos. No de LATEX. Sin
embargo, uno aprende a veces cosas importantes mientras estudia otras que cree
que lo son m
as. En este sentido, habra referencias a LATEX.
Finalmente veamos una gua de lectura del documento. Es muy habitual que
si uno empieza a leer un texto por el principio nunca pase mas alla del primer o
segundo captulo, y eso con suerte. Las notas estan escritas de manera que se lean
cada tema por separado sin mas conexiones entre ellos. De modo que si quieres un
peque
no repaso de Probabilidad consulta el tema 1. Si patinas un poco en lo basico
de la Estadstica pues entonces hay que leer el tema 2. Son los u
nicos temas de
car
acter b
asico. Los dem
as van al grano. En particular si te interesa como reducir
la dimensi
on del banco de datos lee el tema 3. Si el problema que te quita el sue
no
es c
omo dadas unas variables sobre un individuo clasificarlo en uno de g posibles
grupos conocidos a priori y de los cuales tienes ejemplos entonces no lo dudes y
lee el tema 5. Si tienes datos y no saben si se disponen formando grupos y ni tan
siquiera del n
umero de grupos que tienes entonces has de acudir sin remision al
tema 4. Finalmente en los temas 6, ?? y ?? viene la artillera pesada. Como todos
sabemos los modelos lineales son el corazon de la Estadstica, sin ellos, otras tecnicas
de an
alisis de datos se la hubieran ventilado. Los modelos lineales es un esfuerzo
colectivo que ha construido una teora redonda, u
til, facil de aprender y aplicar.
Parece que casi todo est
a previsto y bien resuelto. Los modelos lineales generalizados
surgen de la envidia que todo lo corroe. Cuando la variable respuesta, en lugar de
ser continua, como en los modelos lineales, es una respuesta binaria, o multinomial,
o bien un conteo. Que hacer? La teora de modelos lineales no se puede aplicar
ni con calzadores. Sin embargo, con unos cuantos cambios tecnicamente simples
surgen unos modelos probabilsticos para analizar estos datos que son absolutamente
preciosos.
3 La primera lecci
on sobre R es c
omo citar el programa. En la lnea de comandos escribimos
citation y nos devuelve la referencia bibliogr
afica. Del mismo modo lo podemos hacer si utilizamos
otro paquete. Por ejemplo tecleando citation(cluster) nos indica c
omo citar el paquete cluster
que utilizamos en el tema 4.
Un detalle pr
actico de enorme interes. Para programar con R en el sistema operativa Windows lo m
as c
omodo es utilizar RWinEdt (?) mientras que si trabajamos
en Linux la opci
on m
as c
omoda es utilizar emacs con el paquete ESS. Se pueden
encontrar detalles adicionales R.
R es libre. Esto significa que es malo? Tiene pocas funciones? Lo que tiene
no es de fiar? Hay una idea muy extendida de que el precio de las cosas esta ntimamente relacionado con la calidad. No se si en general es cierto. En el caso de R
no lo es. Algunos artculos de prensa que apoyan el comentario son NYT.06.01.09,
NYT.07.01.09, The New York Times, 16 de febrero de 2009.
Tambien podeis encontrar algunas empresas que, basandose en R, desarrollan
productos comerciales como Revolution Computing.
Finalmente algunas direcciones de interes sobre R son las siguientes: http://www.rbloggers.com/.
Captulo 1
Probabilidad: lo bueno si . . .
Empezamos por donde hay que empezar. Con la Probabilidad. Temida, odiada.
Despreciada porque habla de juegos. Por encima de todo, u
til, de una utilidad
extra
na. Da verg
uenza hablar de Estadstica sin citar algo de Probabilidad. 1 Y
no lo vamos a hacer. Vamos a cumplir con la papeleta. En cualquier caso, si no
te manejas bien con los conceptos basicos probabilsticos (variable aleatoria, vector
aleatorio, distribuci
on conjunta y marginal, . . .) hay que leer alg
un texto. Uno muy
bueno, pero no f
acil de encontrar, es ?.
1.1.
Experimento y probabilidad
hecho, hay una teora muy extendida que dice que podemos saber Estadstica sin ning
un
conocimiento de Probabilidad. Esta creencia se considera un nuevo tipo de enfermedad mental. Si
bien en una versi
on leve de dicha enfermedad.
4 14
9 25 15
1.2.
6 26
Variable aleatoria
(1.3)
f (x)dx.
(1.5)
1.2.1.
Funci
on de distribuci
on
Se define la funci
on de distribucion de una variable aleatoria X como la funcion
real de variable real dada por
F (x) = P (X x) con x R.
1.2.2.
(1.6)
Media y varianza
Una variable suele describirse de un modo simple mediante su media y su varianza. La media nos da una idea de alrededor de que valor se producen los valores aleatorios de la variable mientras que la varianza cuantifica la dispersion
de estos valores alrededor de laPmedia. Se definen para variables discretas como: la media es EX = = P xD xP (X = x); mientras que la varianza es
var(X) = 2 = E(X )2 = xD (x )2 P (X = x). Habitualmente ademas
de lap
varianza se suele utilizar para medir variabilidad la desviaci
on tpica dada por
= var(X).
En variables continuas las definiciones de media y varianza son las analogas sustituyendo
sumatorios por integrales, de modo que la media se define
==
R +
R + como EX
2
2
xf
(x)dx
mientras
que
la
varianza
ser
a
var(X)
=
=
(x
)
f
(x)dx.
Distribuci
on
Bernoulli
Binomial
Hipergeometrica
Geometrica
Binomial Negativa
Poisson
e x
x!
Funcion de probabilidad
1x
f (x|p) = px (1
si x = 0, 1
p)
n
f (x|n, p) =
px (1 p)nx si x = 0, 1, . . . , n
x
A B
x
nx
si x = 0, . . . , n.
f (x|A, B, n) =
A+B
n
f (x|p) = p(1 p)x si x = 0, 1, 2, . . .
r+x1
f (x|r, p) =
pr (1 p)x si x = 0, 1, 2, . . .
x
si x = 0, 1, . . .
f (x|) =
r(1p)
p
1p
p
nA
A+B
np
Media
p
r(1p)
p2
1p
p2
nAB(A+Bn)
(A+B)2 (A+B1)
np(1 p)
Varianza
p(1 p)
12
13
a La
funci
on gamma se define como () =
Weibull(, )
Lognormal
F-Snedecor F (m, n)
t-Student t()
R +
LN (, )
X N (, ) e
n
(n2) si
1
( )
n>2
2n2 (m+n2)
m(n2)2 (n4) si n > 4
2
2
1 2 1
(2( ) ( ))
si > 2
0 si > 1
(+)2 (++1)
2
2
Gamma Ga(, )
Exponencial Expo()
Ji-Cuadrado 2 ()
Beta Be(, )
()2
12
2
+
2
Normal, N (, 2 )
Varianza
Media
1
si < x <
1 x 2
f (x|, 2 ) = 12 e 2 ( ) x R
f (x|, ) = ()
x1 ex si x > 0 a
1
f (x | ) = exp x si x 0
X 2 () si X Ga( 2 , 12 )
(+) 1
f (x|, ) = ()()
x
(1 x)1 si 0 < x < 1
+1
2
( +1
x2
2 )
f (x) = (
1
+
x R
2)
m/21
( m+n
)
x
m/2 n/2
2
f (x) = ( m )(
n (mx+n)
n m
(m+n)/2 si x > 0
2
2)
x
1
f (x | , ) = x
exp ( ) si x > 0
2
X
2
Uniforme
f (x|, ) =
Funci
on de densidad
Distribuci
on
0.30
0.25
0.20
0.15
0.10
0.05
0.00
10
Es interesante ver c
omo se modifica la forma de la funci
on de probabilidad cuando modificamos la probabilidad de exito manteniendo constante el n
umero de pruebas
que realizamos. Indicamos con 1 y 2 la primera y segunda funciones de probabilidad.
0.30
2
2
0.15
0.20
0.10
0.00
0.05
0.25
1
2
2
2
10
La funci
on de distribuci
on la podemos conseguir con pbinom.
1.0
0.6
0.8
0.4
f(x)
0.2
10
La inversa de la funci
on de distribuci
on, esto es, los cuantiles nos la dara
qbinom.
qbinom(0.3, size = 10, prob = 0.23)
## [1] 2
Podemos simular valores de la distribuci
on binomial con rbinom.
rbinom(5, size = 10, prob = 0.23)
## [1] 5 1 1 2 3
4.424e-04
1.048e-01
2.555e-02
1.744e-04
1.024e-07
16
1.770e-03
1.144e-01
1.614e-02
7.751e-05
3.512e-08
5.309e-03
1.144e-01
9.682e-03
3.322e-05
1.171e-08
1.274e-02
1.056e-01
5.533e-03
1.375e-05
3.797e-09
2.548e-02
9.049e-02
3.018e-03
5.498e-06
1.199e-09
4.368e-02
7.239e-02
1.574e-03
2.128e-06
3.689e-10
11
0.10
0.08
1
22
2 2
2
2
1
0.06
0.04
2
1
2
1
2
1
2
2
2
1
2
1
222
111
222222222
2
2
2
1
2
1
22
11
22222222222222222222222
1111111111111111111111111111111111111
20
0.00
2
1
0.02
10
30
40
50
60
9 10 11 12 13 14 15 17
8 16 9 12 13 11 12
7 20 10 8 11 14 16
9 11 9 17 17 6 12 12 12 14 15 14 18 10 15 12 20
6 10 15 14 11 14 10 10 7 10 11 13 9 16
17
9 13
Nota de R 4 La funci
on de densidad y de distribuci
on las obtenemos con dpois y
ppois.
dpois(0:60, lambda = 12)
##
##
##
##
##
##
##
##
[1]
[9]
[17]
[25]
[33]
[41]
[49]
[57]
6.144e-06
6.552e-02
5.429e-02
7.872e-04
7.982e-07
1.107e-10
3.128e-15
2.348e-20
7.373e-05
8.736e-02
3.832e-02
3.779e-04
2.902e-07
3.239e-11
7.660e-16
4.944e-21
4.424e-04
1.048e-01
2.555e-02
1.744e-04
1.024e-07
9.256e-12
1.838e-16
1.023e-21
1.770e-03
1.144e-01
1.614e-02
7.751e-05
3.512e-08
2.583e-12
4.326e-17
2.080e-22
5.309e-03
1.144e-01
9.682e-03
3.322e-05
1.171e-08
7.044e-13
9.983e-18
4.161e-23
1.274e-02
1.056e-01
5.533e-03
1.375e-05
3.797e-09
1.878e-13
2.260e-18
2.548e-02
9.049e-02
3.018e-03
5.498e-06
1.199e-09
4.900e-14
5.023e-19
Representamos las funciones de probabilidad de dos distribuciones Poisson modificando el valor de que es su media y varianza de modo que un valor de mayor
se traduce en una densidad que toma valores mayores y m
as dispersa.
plot(0:60, dpois(0:60, lambda = 12), xlab = "", pch = "1")
points(0:60, dpois(0:60, lambda = 24), xlab = "", pch = "2")
11
0.10
0.08
1
22
2 2
2
2
1
0.06
2
1
0.04
2
1
2
1
2
1
2
2
2
1
2
222
1111
222222222
2
2
2
1
2
1
22
11
22222222222222222222222
1111111111111111111111111111111111111
20
0.00
0.02
10
30
40
50
60
4.368e-02
7.239e-02
1.574e-03
2.128e-06
3.689e-10
1.251e-14
1.096e-19
9 10 11 12 13 14 15 17
1.2.3.
6 7 12 10 14 13 15 12 17 10 10 12 7 10 16 16
8 13 12 7 11 17 14 18 18 11 14 14 20
Teorema de Bayes
1.3.
(1.7)
Vectores aleatorios
b1
P (a1 X1 b1 , . . . , ad X1 bd ) =
bd
...
a1
1
= ...
d
6 11
11 . . . 1d
..
..
= ...
.
.
d1
...
dd
cov(X1 , Y1 ) . . . cov(X1 , Yp )
..
..
..
cov(X, Y ) =
.
.
.
cov(Xd , Y1 ) . . . cov(Xd , Yp )
y ser
a la matriz de covarianzas entre dichos vectores.
Si los vectores X e Y son independientes se verifica que cov(X, Y ) = 0.
Dado el vector X = (X1 , . . . , Xd )0 podemos considerar la matriz de correlaciones que en la posici
on (j, k) tiene el coeficiente de correlacion entre las variables
jk
Xi y Xj , jk = jjkk
, es decir,
1
..
P = .
d1
12
..
.
...
..
.
d2
...
1d
..
.
1
P = D 2 D 2 .
(1.9)
1.4.
(1.11)
Distribuci
on normal multivariante
(1.13)
Se tiene que si Y1 , . . . , Yd son variables aleatorias con distribucion normal independientes con medias nulas y varianza com
un 2 entonces se tiene que Y Nd (0, 2 Id ).
Teorema 1 Supongamos Y Nd (, ) y sea
(1)
Y
Y =
,
Y (2)
(1)
= (2) ,
11
=
21
12
,
22
11 [y
(1)
], 22,1 ) donde 22,1 = 22 21 1
.
11 12
Una segunda manera en que podemos definir la distribucion normal multivariante es del siguiente modo.
Pd
Definici
on 3 Y tiene una distribuci
on normal multivariante si a0 Y = i=1 ai Yi
tiene una distribuci
on normal univariante para cualquier vector a = (a1 , . . . , ad )0 .
Si EY = and cov(Y ) = > 0 entonces Y Nd (, ).
Nota de R 5 El paquete [?] nos permite trabajar con la normal multivariante.
library(mvtnorm)
En concreto, veamos un ejemplo de la normal bivariante con vector de medias y
matriz de covarianzas dada por
mu <- c(4.5, 7.3)
Sigma <- matrix(c(7.097258, 3.885963, 3.885963, 3.371314), 2, 2)
Elegimos los puntos donde vamos a calcular la densidad bivariante
npuntos <- 50
x <- seq(mu[1] - 3 * sqrt(Sigma[1, 1]), mu[1] + 3 * sqrt(Sigma[1, 1]), len = npuntos)
y <- seq(mu[2] - 3 * sqrt(Sigma[2, 2]), mu[2] + 3 * sqrt(Sigma[2, 2]), len = npuntos)
y calculamos los valores.
21
z <- NULL
for (i in 1:npuntos) {
for (j in 1:npuntos) {
z <- rbind(z, c(x[i], y[j], dmvnorm(c(x[i], y[j]), mean = mu, sigma = Sigma)))
}
}
Vamos a representarlos.
persp(z)
contour(z)
22
1.0
10
12
12
10
10
12
10
10
12
0.0
12
10
10
10
10 8
10
10
10
12
12
8
6
6 8
8
6
6
6
10
10
10
10
10
10
4
4
2
4
2
4
2
4
2
4
10
12
8
4
6 8
8
4
12
10
10
0.4
10
10
6
8
0.2
10
2
2
2
0.8
0.6
10
10
10
10
0.0
0.2
0.4
0.6
0.8
1.0
C
omo generar valores normales multivariantes? Consideramos el vector de medias y la matriz de covarianzas siguiente.
23
24
Captulo 2
2.1.
"eg1"
"eg2"
"eg3"
"score5"
"sexo"
"d1"
"d2"
"d3"
"especialidad"
"T.TOTALP"
"t1"
"t2"
"t3"
"intensidad"
"T.QUIRUR"
"s1"
"s2"
"s3"
"tipoanes"
"edad"
Para poder trabajar con los nombres de las variables hemos de adjuntar el banco
de datos
attach(scoremaster)
Podemos ver los primeros diez valores de la variable score.
25
score[1:10]
## [1] 6 4 5 6 7 6 7 8 6 5
## Levels: 3 < 4 < 5 < 6 < 7 < 8
De las variables consideradas algunas son categ
oricas como puede ser la especialidad o tipoanes (tipo de anestesia), otras son ordinales como score, score2, score3,
. . . mientras que otras son continuas como T.TOTALP o T.QUIRUR. Es interesante utilizar la funci
on extractora summary sobre un data frame.
summary(scoremaster)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
score
3: 13
4: 89
5:199
6:276
7:219
8:126
eg1
0: 18
1:545
2:359
d1
0: 18
1:360
2:544
t1
0: 50
1:359
2:513
s1
0: 17
1:307
2:598
score2
eg2
d2
t2
3
: 7
0
: 27
0
: 36
0
: 11
4
: 33
1
:377
1
:359
1
: 59
5
:133
2
:359
2
:366
2
:691
6
:234
NA's:159
NA's:161
NA's:161
7
:192
8
:162
NA's:161
s2
score3
eg3
d3
t3
s3
score4
0
: 3
3
: 2
0
: 9
0
: 10
0
: 0
0
: 0
Min.
:5.0
1
:237
4
: 3
1
: 78
1
: 76
1
: 9
1
: 45
1st Qu.:6.0
2
:522
5
: 34
2
: 51
2
: 51
2
:127
2
: 92
Median :6.5
NA's:160
6
: 45
NA's:784
NA's:785
NA's:786
NA's:785
Mean
:6.4
7
: 34
3rd Qu.:7.0
8
: 20
Max.
:8.0
NA's:784
NA's
:902
score5
especialidad intensidad
tipoanes
asa
sexo
T.TOTALP
Min.
:4.0
1
:325
1:168
General:746
1:555
0
:329
Min.
: 900
1st Qu.:5.5
2
:163
2:426
Plexo :108
2:332
1
:590
1st Qu.: 6060
Median :6.5
4
:136
3:328
CAM
: 65
3: 35
NA's: 3
Median : 8790
Mean
:6.0
5
: 55
NA's
: 3
Mean
: 9881
3rd Qu.:7.0
7
:157
3rd Qu.:12420
Max.
:7.0
8
: 74
Max.
:35160
NA's
:918
NA's: 12
T.QUIRUR
edad
Min.
: 600
Min.
: 4.0
1st Qu.: 2640
1st Qu.:31.0
Median : 3600
Median :43.0
Mean
: 3903
Mean
:43.5
3rd Qu.: 4860
3rd Qu.:56.0
Max.
:16200
Max.
:84.0
NA's
:194
Median
8790
Max.
35200
Plexo
108
CAM
65
100
200
300
400
500
600
700
barplot(table(tipoanes))
General
2.2.
Plexo
CAM
Verosimilitud
viendo c
omo de verosmil es cada una de las funciones dados los datos y. Esta funcion
recibe el nombre de verosimilitud de f dados los datos y y se suele denotar como
V erosimilitud[f ; y] = L(f ; y) = f (y).
(2.1)
Con frecuenica, es conveniente trabajar con el logaritmo natural de la funcion anterior y hablaremos de la log-verosimilitud.
l[f ; y] = log f (y).
(2.2)
Una simplificaci
on adicional (que es habitual en las aplicaciones) supone que la
funci
on de densidad f pertenece a una familia parametrica F, esto es, cada elemento
de la familia es conocido completamente salvo un n
umero finito de parametros
= (1 , . . . , p ) de modo que denotaremos f (y; ) o fY (y; ). Al conjunto de valores
posibles de se le llama espacio param
etrico y lo denotaremos por . En este
caso, la logverosimilitud es una funcion de y denotaremos
V erosimilitud[; y] = l(; y) = log f (y; ).
(2.3)
y
LZ (; z) = LY (; y).
z
Esto sugiere que es mejor trabajar con el cociente de las verosimilitudes para dos
vectores de par
ametros 1 y 2 en lugar de los valores aislados.
Si asumimos que los distintos Y1 , . . . , Yn son independientes entonces
LY (; y) = fY (y) =
n
Y
fYi (yi ),
i=1
y
ly (; y) =
n
X
i=1
n
X
LYi (; yi ).
i=1
Pn
i=1
yi
(1 )n
Pn
i=1
yi
Ejemplo 3 (N
umero de
exitos en n pruebas Bernoulli) Nuestros datos son
ahora el n
umero total de exitos en un n
umero dado de pruebas de Bernoulli, r. Entonces la variable correspondiente R tiene una distribuci
on binomial con n pruebas
y una probabilidad de exito . La verosimilitud viene dada por
n r
L(; r) =
(1 )nr
r
28
2.3.
Estimaci
on
Denotamos por el espacio formado por los valores que puede tomar o espacio
parametrico. Un estimador del parametros o vector parametrico es cualquier
funci
on de la muestra X1 , . . . , Xn que toma valores en el espacio parametrico.
Si (X1 , . . . , Xn ) es un estimador del parametro entonces se define el error
cuadr
atico medio como
M SE() = E[(X1 , . . . , Xn ) ]2
(2.4)
(2.5)
2.3.1.
Estimaci
on insesgada de media y varianza
Dada una muestra Y1 , . . . , Yn de una variable. Un estimador habitualmente utilizado para estimar = EYi es la media muestral dada por
n
1X
Yi .
Y =
n i=1
(2.6)
Notemos que
1
E Y = E[
n
n
X
1X
1X
Yi ] =
EYi =
= .
n i=1
n i=1
i=1
S2 =
1 X
(Yi Y )2 .
n 1 i=1
(2.7)
La raz
on de la divisi
on por n 1 en lugar de dividir por n viene de las siguientes
igualdades.
n
X
E
(Yi Y )2 =
i=1
n
n
X
X
[(Yi ) (Y )2 )]2 =
E(Yi )2 nE(Y )2 , (2.8)
i=1
i=1
n
X
2
= n 2 2 = (n 1) 2 ,
(Yi Y )2 = n 2
n
i=1
de donde,
n
ES 2 = E
1 X
(Yi Y )2 = 2 ,
n 1 i=1
2.3.2.
Estimaci
on insesgada del vector de medias y la matriz
de covarianzas
muestrales. Si
Yi1
Yi = ...
Yip
Entonces podemos representar toda la muestra como la siguiente matriz
0
Y11 . . . Y1d
Y1
..
..
Y = ... = ...
.
.
Yn0
Yn1
...
Ynd
mientras que los datos observados, la matriz de datos, vendra dada por
0
y11 . . . y1d
y1
..
..
y = ... = ...
.
.
yn0
yn1 . . . ynd
El vector de medias muestral viene dado por la siguiente expresion en terminos de
la matriz Y ,
n
1X
1
Y =
Yi = Y 0 1n .
(2.9)
n i=1
n
siendo 1n el vector n 1 con todos los valores iguales a uno. Tambien denotaremos
Y1
Y = ...
Yp
El estimador de la matriz de covarianzas (poblacional) sera la matriz de covarianzas muestral que tiene en la posicion (j, k) la covarianza muestral entre las
componentes j y k,
n
Sjk
1 X
(Yij Yj )(Yik Yk ),
=
n 1 i=1
de modo que
S11
..
S= .
...
..
.
S1d
.. =
.
Sd1
...
Sdd
1
1 X
(Yi Y )(Yi Y )0 =
Q.
n 1 i=1
n1
(Yi Y )(Yi Y )0 =
i=1
n
X
0
(Xi X)(X
i X) =
i=1
n
X
X
0.
Xi Xi0 nX
i=1
n
X
i=1
31
= (n 1).
n
Y
ij
i=1
i=1
Denotaremos por R la matriz de correlaciones muestrales R = [rjk ].
Nota de R 8 (Matrices de covarianza y correlaci
on muestrales) Vamos a estimar la media y la varianza de un modo insesgado. Empezamos leyendo los datos
scoremaster.
load("../data/scoremaster")
attach(scoremaster)
La covarianza y la correlaci
on muestrales entre el timepo total quir
urgico y el
tiempo total postquir
urgico los obtenemos con
cov(T.QUIRUR, T.TOTALP)
## [1] 2308272
cor(T.QUIRUR, T.TOTALP)
## [1] 0.2365
La matriz de covarianzas muestral vendra dada por
cov(cbind(T.QUIRUR, T.TOTALP))
##
T.QUIRUR T.TOTALP
## T.QUIRUR 3107898 2308272
## T.TOTALP 2308272 30659874
y la de correlaciones sera
cor(cbind(T.QUIRUR, T.TOTALP))
##
T.QUIRUR T.TOTALP
## T.QUIRUR
1.0000
0.2365
## T.TOTALP
0.2365
1.0000
2.4.
Estimador m
aximo verosmil
El metodo de estimaci
on que vamos a utilizar en este curso el m
etodo de
m
axima verosimilitud. El estimador maximo verosmil de , que denotaremos
se obtienen m
por ,
aximizando la funcion de verosimilitud o, equivalentemente,
la transformaci
on mon
otona de dicha funcion que es la funcion de logverosimilitud.
Utilizaremos para denotar el estimador maximo verosmil la notacion inglesa MLE.
= max L(),
L()
(2.11)
= argmax L(),
(2.12)
o tambien
32
Pn
i=1
xi
= f ().
(2.13)
c2 = n1 S 2 =
n y que
Ejemplo
6 (Normal) En este caso se comprueba que
=X
n
Pn
1
2
a .
Ejemplo 7 (Binomial) Supongamos que una muestra en una poblaci
on finita y
consideremos como valor observado el n
umero de exitos. Entonces la verosimilitud
sera
n y
L(p) =
p (1 p)ny ,
(2.15)
y
y la logverosimilitud viene dada como
n
l(p) = log
+ y log p + (n y) log(1 p),
y
(2.16)
La ecuaci
on de verosimilitud sera
y ny
y np
l(p)
=
=
.
p
p
1p
p(1 p)
(2.17)
(2.18)
En consecuencia asint
oticamente p tiene varianza p(1p)
lo cual era de prever pues
n
si consideramos la variable Y que nos da el n
umero de exitos entonces sabemos que
EY = np y que var(Y ) = np(1 p).
33
2.5.
Contraste de hip
otesis
(2.19)
H1 : 1
(2.20)
Bas
andonos en una muestra aleatoria X1 , . . . , Xn hemos de tomar una decision.
Las decisiones a tomar son una entre dos posibles: (i) Rechazar la hipotesis nula o
bien (ii) no rechazar la hip
otesis nula. Notemos que, una vez hemos tomado una
decisi
on, podemos tener dos posibles tipos de error como recoge la siguiente tabla.
En las columnas indicamos la realidad mientras que en las filas indicamos la decision
que tomamos.
Rechazamos H0
No rechazamos H0
H0
Error tipo I
H1
Error tipo II
Siendo S 2 =
2
i=1 (Xi X)
Pn
n1
H0 : = 0 ,
(2.22)
H1 : 6= 0 .
(2.23)
0
X
.
S/ n
Bajo la hip
otesis nula este estadstico sigue una distribucion t de Student con n 1
grados de libertad,
T t(n 1).
Si suponemos que trabajamos con un nivel de significacion la region crtica en la
cual rechazamos la hip
otesis nula sera
|T | > tn1,1 2 .
34
2.5.1.
max0 L()
max L()
(2.24)
2.5.2.
Test de Wald
(2.26)
H1 : 6= 0 .
(2.27)
SE()
tiene, bajo la hip
otesis nula, aproximadamente una distribucion normal estandar,
z N (0, 1). Este tipo de estadsticos donde se utiliza el error estandar del estimador
bajo la hip
otesis alternativa recibe el nombre de estadstico de Wald.
Supongamos que es un vector de parametros y queremos contrastar las hipotesis dadas en 2.26. La versi
on multivariante del estadstico dado en 2.28 viene dada
por
1 ( 0 ),
W = ( 0 )0 [cov()]
(2.29)
se estima como la matriz de informacion observada en el MLE .
La
donde cov()
distribuci
on asint
otica de W bajo la hipotesis nula es una distribucion ji-cuadrado
donde el n
umero de grados de libertad coincide con el n
umero de parametros no
redundantes en .
2.5.3.
Intervalos de confianza
(2.30)
n
depende tanto de la muestra que conocemos como de un par
ameVemos c
omo X
S/ n
tro (la media ) que desconocemos. Fijamos un valor de (habitualmente tomaremos = 0,05) y elegimos un valor tn1,1/2 tal que
P (tn1,1/2
n
X
tn1,1/2 ) = 1 .
S/ n
(2.31)
La ecuaci
on anterior la podemos reescribir como
n tn1,1/2 S X
n + tn1,1/2 S ) = 1 .
P (X
n
n
(2.32)
Tenemos una muestra aleatoria X1 , . . . , Xn y por lo tanto tenemos un intervalo alea n + tn1,1/2 S ]. Este intervalo tiene una
n tn1,1/2 S , X
torio dado por [X
n
n
probabilidad de 1 de contener a la verdadera media. Tomemos ahora la muestra
n y de S 2 sino los valores observados
y consideremos no los valores aleatorios de X
x
n y s. Tenemos ahora un intervalo [
xn tn1,1/2 sn , x
n + tn1,1/2 sn ] fijo. Es
posible que este en este intervalo y es posible que no lo este. Sabemos que antes
de tomar la muestra tenamos una probabilidad de 1 de contener a la verdadera
media pero despues de tomar la muestra tenemos una confianza de 1 de contener a la verdadera media. Al intervalo [
xn tn1,1/2 sn , x
n + tn1,1/2 sn ] se
le llama intervalo de confianza para con nivel de confianza 1 .
Vamos a ver un planteamiento mas general del problema.
Supongamos que tenemos un test para contrastar la hipotesis simple H0 : = 0
frente a la alternativa H1 : 6= 0 . Supongamos que elegimos un nivel de significaci
on para contrastar las hip
otesis anteriores y consideramos el siguiente conjunto
formado por todos los 0 tales que no rechazamos la hipotesis nula al nivel . Este conjunto es un conjunto de confianza al nivel 1 . Cuando el conjunto de
confianza es un intervalo hablamos de intervalo de confianza.
Supongamos que consideramos el test del cociente de verosimilitudes. Denotemos
por 2k (1 ) el percentil 1 de una distribucion ji-cuadrado con k grados de
libertad. Entonces el intervalo de confianza al nivel 1 sera el conjunto
< 2 (1 )}
{0 : 2[l(0 ) l()]
k
(2.33)
| 0 |
< Z1/2 }
SE()
(2.34)
es el error est
donde SE()
andar estimado de bajo la hipotesis alternativa.
36
Captulo 3
Componentes principales
3.1.
Introducci
on
En este tema nos ocupamos de problemas de reduccion de dimension. Que significa reducir la dimensi
on? Responder a esta pregunta es obvio si nos fijamos en los
datos que tenemos. Trabajando con expresion de genes tenemos tantas filas como
genes y tantas columnas como muestras. En resumen miles de filas y decenas o centenares de columnas. En temas anteriores hemos visto como seleccionar filas, esto
es, seleccionar genes es una tarea incluso previa. Hemos de quedarnos con genes que
tengan una expresi
on diferencial si consideramos alguna caracterstica fenotpica
o bien con genes que tengan una expresion mnima o bien con genes que tengan
un cierto nivel de variaci
on. Que hacemos con las columnas? O de otro modo:
que hacemos con las muestras? Quizas la respuesta natural sera: si tenemos miles
de filas, por que preocuparse de unas decenas de filas? No es una buena respuesta.
Realmente tener 50 o 100 columnas son muchas a la hora de visualizar resultados o
bien de aplicar tratamientos estadsticos. En este tema tratamos el tema de como
reducir el n
umero de columnas.
3.2.
Componentes principales
Para ilustrar los conceptos vamos a considerar unos datos sencillos. Tomamos
los datos golub y nos fijamos en los genes que tienen que ver con Cyclin (tienen
esta palabra en su nombre). Vamos a considerar las dos primeras muestras, esto es,
las dos primeras columnas.
library(multtest)
data(golub)
sel <- grep("Cyclin", golub.gnames[, 2])
golub.red <- golub[sel, 1:2]
Los datos aparecen en el siguiente dibujo. Cada punto corresponde con uno de
los genes seleccionados.
plot(golub.red)
37
1.5
0.5
0.0
golub.red[,2]
1.0
0.5
1.5
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
golub.red[,1]
Para la fila i (para el gen i) denotamos las expresiones observadas en las dos
muestras como xi = (xi1 , xi1 ). Tenemos n filas y por lo tanto nuestros datos son xi
con i = 1, . . . , n.
38
1.5
CCND2 Cyclin D2
0.5
0.0
0.5
Segunda muestra
1.0
CCND3 Cyclin D3
1.5
1.0
CCNH Cyclin H
Cyclin
CCNFA1
Cyclin
mRNA
F
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
Primera muestra
Centramos los datos. Esto es, le restamos a cada columna la media de la columna.
Para ello, primero calculamos las medias. El vector de medias lo vamos a denotar
por x
= (
x1 , x
2 ) donde
n
X
xij
x
j =
n
i=1
es decir, cada componente es la media de las componentes. En resumen el primer
valor es la expresi
on media en la primera muestra para todos los genes. Podemos
calcular f
acilmente el vector de medias. Una funcion especfica es la siguiente.
medias <- colMeans(golub.red)
Tambien podemos usar la funcion generica apply que nos hace lo mismo.
medias <- apply(golub.red, 2, mean)
Le restamos a cada columna su media.
golub.red <- sweep(golub.red, 2, medias)
En la siguiente figura reproducimos los datos centrados. Mostramos los ejes de
coordenadas en rojo.
39
plot(golub.red)
abline(v = mean(golub.red[, 1]), col = "red")
abline(h = mean(golub.red[, 2]), col = "red")
1.5
0.5
0.0
golub.red[,2]
1.0
0.5
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
golub.red[,1]
Hemos trasladado los datos de modo que las medias de cada variable valen cero
ahora. Esto es lo que se conoce como centrar los datos. Hemos centrado los datos.
Podemos comprobar que los nuevos datos tienen una media nula.
colMeans(golub.red)
## [1] -3.007e-17
1.070e-17
Nuestros datos (filas) corresponden a las expresiones correspondientes a los genes. Los datos originales tienen dimension 2 (dos variables correspondientes a las
dos muestras) y supongamos que pretendemos reducir la dimension a solo una, esto
es, representar cada gen mediante un u
nico n
umero. La idea de las componentes
principales es considerar una combinacion lineal de los valores originales. Es decir,
se pretende elegir un vector (de dimension dos) a1 = (a11 , a12 ) de modo que en
lugar de utilizar xi consideremos (el resumen) ui = a11 xi1 + a12 xi2 . Que a1 elegimos? La idea es lograr que los valores ui tengan la mayor variabilidad que se pueda
con objeto de no perder informacion. Mantener la variabilidad original indica que
mantenemos la informaci
on que los datos originales tienen. En concreto se elige a1
40
1X
(ui u
)2 .
n i=1
El vector a1 nos indica la direcci
on sobre la cual proyectamos los datos originales.
Las proyecciones sobre a1 , los valores ui son la mejor descripcion univariante de los
datos.
La segunda mejor descripci
on que sea ortogonal a la anterior seran las proyecciones sobre la lnea ortogonal a la primera que pasa por el origen de coordenadas.
Obtengamos las componentes principales.
a.pca <- prcomp(golub.red)
Vamos a representar los vectores directores de las lneas sobre las que proyectamos.
1.5
0.5
0.0
golub.red[,2]
1.0
0.5
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
golub.red[,1]
1.5
0.5
0.0
golub.red[,2]
1.0
0.5
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
golub.red[,1]
42
1.5
0.5
0.0
0.5
1.0
golub.red[,2]
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
golub.red[,1]
43
1.5
0.5
0.0
golub.red[,2]
1.0
0.5
1.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
golub.red[,1]
PC1
-2.50309
0.01369
-2.38702
0.33490
0.76608
0.27145
0.31170
2.22052
-0.93221
-0.39946
0.08294
2.22052
PC2
-1.542e-01
-2.024e-01
3.714e-03
-6.847e-05
2.806e-01
2.900e-02
-2.876e-01
-8.232e-02
1.837e-01
-7.240e-03
3.192e-01
-8.232e-02
44
var(golub.red[, 1])
## [1] 1.267
var(golub.red[, 2])
## [1] 0.9246
cuya suma es
var(golub.red[, 1]) + var(golub.red[, 2])
## [1] 2.192
Las nuevas coordenadas tienen la misma varianza total.
sum(a.pca$sdev^2)
## [1] 2.192
Y que proporci
on de la varianza es atribuible a la primera componente? Y a
la segunda? Podemos dividir la varianza de cada componente por la suma total.
variacion.total <- sum(a.pca$sdev^2)
a.pca$sdev^2/variacion.total
## [1] 0.98439 0.01561
La primera componente explica un 98.44 % de la variacion total. Para que necesitamos utilizar dos n
umeros por gen si con uno tenemos esencialmente la misma
informaci
on.
3.3.
Hemos visto las componentes principales con dos variables (en nuestro caso
dos muestras) con efecto de poder ver el significado geometrico de las componentes
principales. Vamos a trabajar con el banco de datos completo: todos los datos golub
que tienen 38 muestras (27 de un tipo de leucemia y 11 de otro tipo).
Obtengamos las componentes principales.
golub.pca <- prcomp(golub, scale = TRUE, center = TRUE)
45
Importance of components:
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PC8
PC9
Standard deviation
5.044 1.4407 1.1173 1.0351 0.8582 0.7440 0.7210 0.6923 0.6382
Proportion of Variance 0.669 0.0546 0.0328 0.0282 0.0194 0.0146 0.0137 0.0126 0.0107
Cumulative Proportion 0.669 0.7240 0.7569 0.7851 0.8045 0.8190 0.8327 0.8453 0.8561
PC10
PC11
PC12
PC13
PC14
PC15
PC16
PC17
Standard deviation
0.6363 0.56700 0.55263 0.53868 0.52011 0.49568 0.48402 0.47719
Proportion of Variance 0.0106 0.00846 0.00804 0.00764 0.00712 0.00647 0.00617 0.00599
Cumulative Proportion 0.8667 0.87518 0.88321 0.89085 0.89797 0.90443 0.91060 0.91659
PC18
PC19
PC20
PC21
PC22
PC23
PC24
PC25
Standard deviation
0.47068 0.45421 0.43795 0.43410 0.42475 0.41582 0.40718 0.40066
Proportion of Variance 0.00583 0.00543 0.00505 0.00496 0.00475 0.00455 0.00436 0.00422
Cumulative Proportion 0.92242 0.92785 0.93290 0.93786 0.94260 0.94715 0.95152 0.95574
PC26
PC27
PC28
PC29
PC30
PC31
PC32
PC33
Standard deviation
0.3948 0.38731 0.38417 0.37882 0.37124 0.36957 0.3596 0.3593
Proportion of Variance 0.0041 0.00395 0.00388 0.00378 0.00363 0.00359 0.0034 0.0034
Cumulative Proportion 0.9598 0.96379 0.96767 0.97145 0.97508 0.97867 0.9821 0.9855
PC34
PC35
PC36
PC37
PC38
Standard deviation
0.35276 0.34218 0.33228 0.32572 0.30667
Proportion of Variance 0.00327 0.00308 0.00291 0.00279 0.00247
Cumulative Proportion 0.98875 0.99183 0.99473 0.99753 1.00000
Atendiendo al segundo criterio nos quedaramos con las cuatro primeras componentes. La quinta tiene una desviacion inferior a uno. Atendiendo al tercer criterio
vemos que a partir de la quinta es muy estable la desviacion estandar. Si nos quedamos con las cinco primeras componentes estamos explicando un 80.44 % de la
variaci
on total. Puede ser una buena eleccion y una solucion intermedia. Los nuevos
datos los obtenemos con la funcion predict.
a <- predict(golub.pca)
Podemos ver todas las componentes para el primer gen (primera fila).
46
a[1, ]
##
PC1
PC2
PC3
## -7.037558 -1.611153 -0.580508
##
PC10
PC11
PC12
## 0.863368 -0.199101 -0.661874
##
PC19
PC20
PC21
## 0.484427 -0.413978 0.861061
##
PC28
PC29
PC30
## -0.022861 -0.267373 0.223251
##
PC37
PC38
## 0.451057 0.873975
PC4
PC5
PC6
0.008742 0.538498 0.217864
PC13
PC14
PC15
0.098494 1.167026 -0.080884
PC22
PC23
PC24
0.412109 -0.169220 -0.042500
PC31
PC32
PC33
0.004499 -0.066890 -0.420015
PC7
PC8
PC9
0.095230 -0.918847 0.512902
PC16
PC17
PC18
0.019310 0.311826 -0.734193
PC25
PC26
PC27
0.392160 -0.810611 -0.724087
PC34
PC35
PC36
0.043023 0.325942 -0.095873
Y ahora nos quedamos con las primeras cinco columnas correspondientes con las
cinco primeras componentes principales como hemos decidido previamente.
a <- a[, 1:5]
Podemos representar, como es habitual, las dos primeras componentes.
plot(a[, 1], a[, 2], xlab = "Primera componente", ylab = "Segunda componente")
0
5
Segunda componente
10
15
20
Primera componente
47
golub.pca$rotation[, 1]
## [1] 0.1715 0.1691 0.1650 0.1727 0.1659 0.1669 0.1686 0.1602 0.1649 0.1688 0.1654 0.1694
## [13] 0.1629 0.1661 0.1648 0.1721 0.1559 0.1600 0.1677 0.1492 0.1273 0.1621 0.1644 0.1653
## [25] 0.1659 0.1690 0.1540 0.1689 0.1541 0.1517 0.1691 0.1682 0.1452 0.1675 0.1638 0.1509
## [37] 0.1476 0.1520
Podemos ver que son coeficientes muy parecidos, todos positivos. Basicamente
tenemos la media muestral de todos los niveles de expresion en las 38 muestras. La
primera componente es b
asicamente la media sobre las 38 muestras. Y la segunda
componente?
golub.pca$rotation[, 2]
## [1] 0.104190 -0.036887 0.069109 0.100701 0.170952 0.028349 0.032391 0.000506
## [9] 0.093594 0.023533 0.075376 -0.089381 0.233400 0.077939 0.237951 0.184072
## [17] 0.078197 0.041608 0.114629 0.247148 0.201580 -0.014148 0.037859 0.210586
## [25] -0.044465 0.122287 0.021439 -0.189279 -0.174593 -0.243776 -0.165316 -0.150156
## [33] -0.344035 -0.157688 -0.130649 -0.277921 -0.344829 -0.222766
Si observamos los coeficientes vemos que las primeros 27 valores son positivos y
los 11 u
ltimos son negativos. Ademas no hay una gran diferencia entre los 27 primeros y tampoco entre los 11 u
ltimos. Basicamente estamos comparando, para cada
gen, la media de los niveles de expresion sobre los datos ALL (leucemia linfoblastica
aguda) con la media sobre los datos AML (leucemia mieloide aguda).
3.4.
Un poco de teora
Cuando tomamos medidas sobre personas, objetos, empresas, unidades experimentales de un modo generico, se tiende a recoger el maximo de variables posible.
En consecuencia tenemos dimensiones del vector de caractersticas X grandes.
Una opci
on consiste en sustituir la observacion original, de dimension d, por k
combinaciones lineales de las mismas. Obviamente pretendemos que k sea mucho
menor que d. El objetivo es elegir k de modo que expresen una proporcion razonable de la dispersi
on o variacion total cuantificada como la traza de la matriz de
covarianza muestral, tr(S),
Sea X un vector aleatorio de dimension d con vector de medias y matriz
de covarianzas . Sea T = (t1 , t2 , . . . , td ) (los ti indican la i-esima columna de la
matriz) la matriz ortogonal tal que
T 0 T = = diag(1 , . . . , d ),
(3.1)
(3.2)
(3.3)
Finalmente, si las variables vienen dadas en unidades muy distintas puede ser
conveniente sustituir la matriz de covarianzas (poblacional o muestral) por la correspondiente matriz de correlaciones. De hecho, una de los inconvenientes de las
componentes principales como un modo de reducir la dimension de los datos es precisamente que obtenemos resultados distintos si utilizamos las componentes principales obtenidas a partir de la matriz de covarianzas o bien las componentes principales
obtenidas a partir de la matriz de correlaciones.
A partir de las d variables originales podemos obtener hasta d componentes principales. Sin embargo, hemos dicho que pretendemos reducir la dimension del vector
de datos. La pregunta a responder es: con cuantas componentes nos quedamos?
Supongamos que estamos trabajando
Pd. Hemos
Pd con la matriz
Pd de covarianzas
de recordar que var(yj ) = j y que j=1 var(xj ) = j=1 var(yj ) = j=1 j . En
consecuencia se suelen considerar los siguientes cocientes
Pk
j=1 j
, con k = 1, . . . , d,
Pd
j=1 j
de modo que, cuando para un cierto valor de k, estamos proximos a la unidad nos
quedamos con ese valor de k. En la version muestral trabajaremos o bien con los
valores propios de la matriz de covarianzas muestral o la matriz de correlaciones
muestrales.
Una referencia muy interesante sobre componentes principales es Abdi and Williams [2010].
49
50
Captulo 4
An
alisis cluster
En este tema vamos a tratar lo que en la literatura estadstica recibe el nombre de
an
alisis cluster 1 o, en mejor castellano, an
alisis de conglomerados. En la literatura
de Inteligencia Artificial se utiliza la expresion clasificaci
on no supervisada. Tenemos
una muestra de observaciones multivariantes de dimension d. Que pretendemos
hacer con ellos? Encontrar grupos. Muy breve la respuesta pero: que son grupos?
Imaginemos una imagen aerea fija de un patio de un colegio. En esta imagen los
datos son las posiciones de los ni
nos. Se agrupan los ni
nos formando grupos o
todos est
an jugando con todos y los grupos son una consecuencia pasajera del juego
(delanteros y defensas que aparecen agrupados en un ataque)?
Parece claro y simple el problema. S, lo parece. Que es un grupo? Como
defino un grupo? Cu
antos grupos distingo en los datos? Estamos viendo el efecto
del ruido o realmente hay una estructura debajo que la vemos en un entorno con
ruido.
Que quiere decir encontrar grupos? Se trata de clasificar las observaciones en
grupos de modo que las observaciones de un mismo grupo sean lo mas similares que
podamos y que los grupos entre s sean muy distintos. El n
umero de procedimientos
que se han propuesto en la literatura es muy grande. La mayor parte de ellos no tienen un modelo probabilstico debajo, no son procedimientos basados en modelo. Son
metodos que esencialmente utilizan el concepto de proximidad. Valoran de distintas
formas lo pr
oximos, lo cercanos que estan los puntos, dentro de un mismo grupo
y entre distintos grupos. Es pues, el primer punto a tratar: como cuantificamos
lo cerca o lejos que est
an los distintos puntos? En la seccion 4.2 nos ocupamos de
este punto. Tambien ser
a necesario, como veremos en el tema, valorar cuando dos
conjuntos de puntos son m
as o menos parecidos, proximos, similares. En la misma
secci
on nos ocupamos de ello. Supongamos que ya hemos clasificado en distintos
grupos. Hemos tenido exito al hacerla? Cuando tenemos un analisis discriminante
tenemos una muestra donde sabemos a que grupo pertenece el individuo y donde
lo hemos clasificado. Esto nos permita valorar si nuestro procedimiento clasifica
bien o no. Aqu no vamos a tener esta referencia que nos da la muestra de entrenamiento. C
omo valorarlo? Un concepto conocido por silueta y debido a Rousseeuw
[Kaufman and Rousseeuw, 1990] nos va a servir para ello. No es ni tan simple ni tan
satisfactorio como en an
alisis discriminante (como es de esperar si tenemos menos
informaci
on para trabajar). Lo estudiamos en la seccion 4.5.
Entre los muchos procedimientos de obtener los grupos a partir de los datos,
los m
as utilizados son dos tipos: procedimientos jerarquicos y metodos de particionamiento. De los jer
arquicos nos ocupamos en la seccion 4.3. El metodo de las
k-medias y el metodo de las k-mediodes (el castellano como siempre es muy sufrido
1 Por
51
4.1.
Algunos ejemplos
Nota de R 9 (Un ejemplo de datos a agrupar) Generamos tres muestras correspondientes a distribuciones bivariates normales. La matriz de covarianzas vamos a suponer que es la matriz identidad. Los vectores de medias son 1 = c(1, 1),
2 = c(3, 3) y 2 = c(7, 7). Es resumen un vector Xi Nd (i , I22 . Vamos a generar cien datos de cada grupo. Vamos a utilizar el paquete mvtnor ? para simular
las distintas normales bivariantes.
library(mvtnorm)
x1 <- rmvnorm(n = 100, mean = c(1, 1))
x2 <- rmvnorm(n = 100, mean = c(3.3, 4.1))
x3 <- rmvnorm(n = 100, mean = c(6, 5.5))
8
6
4
x1[,2]
x1[,1]
Se ve que hay tres grupos pero estos no estan muy claramente delimitados. Nosotros no disponemos de esta informaci
on. Conocemos los valores que componen los
vectores de datos pero no conocemos el grupo al que podra pertenecer cada uno de
ellos. Tampoco tenemos porque tener prefijado el n
umero de grupos. Los datos son
artificiales pero ilustran bien el problema.
Nota de R 10 (Un ejemplo artificial: los datos Ruspini) Son unos datos conocidos, los datos Ruspini. Est
an en el paquete cluster ?. Cargamos el paquete y los
datos.
library(cluster)
data(ruspini)
plot(ruspini)
53
150
100
50
20
40
60
80
100
120
54
Zyxin
0.5
0.0
0.5
1.0
1.5
2.0
2.5
CCND3 Cyclin D3
En este caso las observaciones corresponden a las muestras y las variables son
los niveles de expresi
on de dos genes. Hay grupos? Esto no son datos artificiales
como los de Ruspini y ya no es tan claro.
4.2.
4.2.1.
Disimilaridades
Disimilaridades entre observaciones
d
X
|xk yk |.
(4.2)
k=1
56
Cuadro 4.1: Conteos asociados a dos casos descritos por variables binarias
1
0
1
A
C
A+C
0
B
D
B+D
A+B
C+D
d=A+B+C+D
A+D
B+C
=1
.
A+B+C +D
A+B+C +D
La interpretaci
on de esta medida de disimilaridad es simple. Dos individuos son
tanto m
as disimilares cuantas m
as variables binarias tienen distintas. Notemos que
la presencia o ausencia de un atributo tienen el mismo peso.
Supongamos que las variable que describen al individuo son binarias asimetricas.
Ejemplos de esto pueden ser la presencia o ausencia de un atributo muy poco
frecuente. Por ejemplo, tener o no tener sida. Dos personas que tienen el sida, tienen
m
as es com
un, est
an m
as pr
oximas, que dos personas que no lo tienen. Supongamos
que codificamos el atributo menos frecuente como 1 y el mas frecuente como 0.
Est
a claro que un acoplamiento 1-1 o acoplamiento positivo es mas significativo que
un acoplamiento negativo o acoplamiento 0-0 por lo que A, n
umero de acoplamientos
positivos, ha de tener m
as peso que d o n
umero de acoplamientos negativos. El mas
conocido es el coeficiente de Jaccard que se define como
d(i, j) =
B+C
A
=1
A+B+C
A+B+C
du
.
d
Finalmente veamos c
omo tratar las variables ordinales. Lo que haremos para variables de este tipo es transformarlas al intervalo [0, 1]. Si xij denota la j-esima
variable del i-esimo individuo entonces consideramos la transformacion
yik =
xik 1
Mk 1
57
siendo 1, . . . , Mk los valores que puede tomar la j-esima variable ordinal. Lo que
estamos haciendo con este procedimiento es transformar la variable ordinal es una
variable numerica con una escala com
un. En la medida en que el n
umero de categoras sea mayor esta transformacion tendra mas sentido.
Hemos visto c
omo tratar cada tipo de variable aisladamente. El problema es
combinar todas ellas en una sola medida de disimilaridad. La funcion daisy del
paquete cluster ? utiliza la siguiente medida:
Pd
(k) (k)
k=1 ij dij
,
(4.3)
d(i, j) = Pd
(k)
k=1 ij
donde:
(k)
ij vale uno cuando las medidas xik y xjk no son valores faltantes y cero en
otro caso;
(k)
dij =
|xik xjk |
Rk
donde h vara entre todos los individuos con valor no faltante de la variable k.
Si todas las variables son categoricas entonces 4.3 nos da el n
umero de acoplamientos
del total de pares disponibles, en definitiva, el coeficiente de acoplamiento simple. Si
todas son variables binarias simetricas entonces obtenemos otra vez el coeficiente de
acoplamiento simple. Si las variables son binarias asimetricas entonces obtenemos
el coeficiente de Jaccard. Cuando todas las variables con las que trabajamos son
numericas la medida de disimilaridad es la distancia de Manhattan donde cada
variable est
a normalizada.
Dado un conjunto de datos xi con i = 1, . . . , n tendremos, utilizando algunas
de las medidas de disimilaridades comentadas, una matriz de dimension n n que
tiene en la posici
on (i, j) la disimilaridad entre xi y xj , d(i, j): [d(i, j)]i,j=1,...,n .
Con esta matriz cuantificamos la disimilaridad que hay entre los elementos originales de la muestra. Algunos de los procedimientos de agrupamiento que vamos
a considerar en lo que sigue no necesitan conocer los datos originales. Pueden aplicarse con solo conocer esta matriz de disimilaridades. Otros no. Otros utilizan los
datos a lo largo de las distintas etapas de aplicacion del procedimiento.
4.2.2.
En algunos procedimientos de agrupamiento (en particular, los jerarquicos) vamos a necesitar calcular disimilaridades entre conjuntos disjuntos de las observaciones originales. Estas disimilaridades las podemos calcular a partir de las disimilaridades originales punto a punto que hemos comentado en la seccion 4.2.1.
58
Supongamos que tenemos un banco de datos con n individuos cuyos ndices son
{1, . . . , n}. Sean A y B dos subconjuntos disjuntos del conjunto de ndices de la
muestra {1, . . . , n}, esto es, dos subconjuntos de observaciones disjuntos. Como
podemos definir una disimilaridad entre A y B partiendo de las disimilaridades
entre los datos individuales? Se han propuesto muchos procedimientos. Si denotamos la disimilaridad entre A y B como d(A, B) entonces las disimilaridades mas
habitualmente utilizadas son las siguientes:
Enlace simple La disimilaridad entre los dos grupos es el mnimo de las disimilaridades entre las observaciones de uno y de otro. Tomamos la disimilaridad
de los objetos que m
as se parecen en uno y otro grupo.
d(A, B) =
mn
aA,bB
d(a, b)
Enlace completo Ahora tomamos como disimilaridad entre los grupos como el
m
aximo de las disimilaridades, en definitiva, la disimilaridad entre los objetos
m
as alejados o m
as distintos.
d(A, B) =
max d(a, b)
aA,bB
4.3.
Cluster jer
arquico
Paso 0 Tenemos grupos unitarios formados por cada una de las observaciones.
Tenemos pues una particion inicial Ci = {i} con i = 1, . . . , n. En un principio,
cada dato es un grupo.
Paso 1 Calculamos las disimilaridades entre los elementos de la particion. Para
ello utilizamos cualquiera de los procedimientos antes indicados.
Paso 2 Agrupamos los dos conjuntos de la particion mas proximos y dejamos los
dem
as conjuntos igual. Tenemos ahora Ci con i = 1, . . . , k.
Paso 3 Si tenemos un solo conjunto en la particion paramos el procedimiento.
Paso 4 Volvemos al paso 1.
Hay una representaci
on grafica muy utilizada para describir los resultados de
un cluster jer
arquico aglomerativo como el que acabamos de describir. Esta representaci
on tiene el nombre de dendograma. En el dendograma se va mostrando
a que valor de la medida de disimilaridad se produce la union de los grupos y simult
aneamente que grupos se estan uniendo para esa disimilaridad. Tambien nos
permite una valoraci
on r
apida de cuantos grupos puede haber en el banco de datos.
Simplemente trazando una linea horizontal a la altura en que tengamos el n
umero
de grupos que pensamos que puede haber.
1.5
23
11
17
6
24
12
19
5
21
16
1
14
20
15
22
18
0.0
3
7
0.5
25
10
13
1.0
Height
2.0
2.5
3.0
Dendrogram of agnes(x = y)
y
Agglomerative Coefficient = 0.84
library(cluster)
data(votes.repub)
agn1 <- agnes(votes.repub, metric = "manhattan", stand = TRUE)
plot(agn1, which = 2)
61
20
Alabama
Georgia
Arkansas
Louisiana
Mississippi
South Carolina
Alaska
Vermont
Arizona
Montana
Nevada
Colorado
Idaho
Wyoming
Utah
California
Oregon
Washington
Minnesota
Connecticut
New York
New Jersey
Illinois
Ohio
Indiana
Michigan
Pennsylvania
New Hampshire
Wisconsin
Delaware
Kentucky
Maryland
Missouri
New Mexico
West Virginia
Iowa
South Dakota
North Dakota
Kansas
Nebraska
Maine
Massachusetts
Rhode Island
Florida
North Carolina
Tennessee
Virginia
Oklahoma
Hawaii
Texas
40
Height
60
80
votes.repub
Agglomerative Coefficient = 0.8
62
Alabama
Georgia
Louisiana
Arkansas
Florida
Texas
Mississippi
South Carolina
Alaska
Michigan
Connecticut
New York
New Hampshire
Indiana
Ohio
Illinois
New Jersey
Pennsylvania
Minnesota
North Dakota
Wisconsin
Iowa
South Dakota
Kansas
Nebraska
Arizona
Nevada
Montana
Oklahoma
Colorado
Idaho
Wyoming
Utah
California
Oregon
Washington
Missouri
New Mexico
West Virginia
Delaware
Kentucky
Maryland
North Carolina
Tennessee
Virginia
Hawaii
Maine
Massachusetts
Rhode Island
Vermont
100
0
50
Height
150
200
250
daisy(votes.repub)
Agglomerative Coefficient = 0.88
Representamos el dendograma.
plot(ruspini.ag, which = 2)
63
40
1
2
3 5
4
6
8 7
9
10
14
15
17
16
18
1911
12
13 20
61
62
66 63
64
6865
67
69
70
71
72
75
73
74
21
22
23
24
27
28
29
30
25
26
32
3531
36
39
40
33
34
37
38
41
42
43
44
45
49
5153
50
54
52
55
5657
59
60 58
46
47
48
20
Height
60
80
100
ruspini
Agglomerative Coefficient = 0.95
cutree(ruspini.ag, 4)
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [44] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
Y ahora podemos representar los datos de modo que ponemos en un mismo color
los datos que hemos clasificado en un grupo.
150
100
50
20
40
60
80
100
120
Un procedimiento jer
arquico aglomerativo tiene interes cuando el banco de datos
no tiene muchos individuos. En otro caso es muy difcil de interpretar un dendograma o de seleccionar el n
umero de grupos que hay. En todo caso lo hemos de ver
como un an
alisis exploratorio para decidir el n
umero de grupos y posteriormente
utilizar alg
un metodo de particionamiento como los que vamos a ver.
4.4.
M
etodos de particionamiento
Suponemos ahora que tenemos una idea de cuantos grupos hay. Posiblemente
hemos realizado un an
alisis jer
arquico previo con todos los datos o, si eran muchos,
con una selecci
on aleatoria de los datos. Tenemos pues una idea de cuantos grupos
tendremos que considerar. Obviamente podemos luego evaluar los resultados modificando el n
umero de grupos. En principio, vamos a suponer que fijamos el n
umero
de grupos a considerar. Suponemos pues que sabemos el n
umero de grupos y lo
denotamos por k.
4.4.1.
M
etodo de las k-medias
El primer procedimiento que vamos a ver es el metodo de las k-medias (que por
alguna extra
na raz
on en la literatura de Inteligencia Artificial se le llama de las
c-medias lo que demuestra que cada persona copia a sus amigos o, simplemente,
conocidos). Supongamos que tenemos C1 , . . . , Ck una particion de {1, . . . , n}. Un
65
dE (xj , x
Ci )2 ,
(4.4)
i=1 jCi
x
Ci =
1 X
xj ,
|Ci |
(4.5)
jCi
es el vector de medias del grupo cuyos ndices estan en Ci . Una particion sera tanto
mejor cuanto menor sea el valor de la funcion dada en 4.4. El procedimiento de
agrupamiento de las k-medias simplemente se basa en elegir como particion de los
datos aquella que nos da el mnimo de la funcion objetivo considerada en ecuacion
4.4. Notemos que en muchos textos se hablan del algoritmo de las k-medias y se
identifica con un procedimiento concreto para encontrar el mnimo de la funcion.
Aqu entendemos el procedimiento como la minimizacion de la funcion objetivo.
De hecho, R ofrece hasta cuatro posibles procedimientos de los muchos que cabe
proponer. Hay que diferenciar claramente el procedimiento del metodo de aplicacion
del mismo, del metodo de obtencion de dicho mnimo.
Es importante darnos cuenta de que el procedimiento que acabamos de ver
est
a basado en la utilizaci
on de la distancia eucldea y en que, dado un grupo,
podemos calcular el vector de medias y esto solo lo podemos hacer si todas las
variables son cuantitativas.
66
150
100
50
20
40
60
80
100
120
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
Zyxin
0.5
0.0
0.5
1.0
1.5
CCND3 Cyclin D3
2.0
2.5
Zyxin
0.5
0.0
0.5
1.0
1.5
CCND3 Cyclin D3
2.0
2.5
Zyxin
0.5
0.0
0.5
1.0
1.5
2.0
2.5
CCND3 Cyclin D3
4.4.2.
d(j, mi ).
(4.6)
i=1 jCi
En el metodo de particionamiento alrededor de los mediodes nos planteamos encontrar las observaciones m1 , . . . , mk que minimizan el valor dado en 4.6.
70
150
100
50
20
40
60
80
100
120
Zyxin
0.5
0.0
0.5
1.0
1.5
CCND3 Cyclin D3
2.0
2.5
Zyxin
0.5
0.0
0.5
1.0
1.5
CCND3 Cyclin D3
2.0
2.5
Zyxin
0.5
0.0
0.5
1.0
1.5
2.0
2.5
CCND3 Cyclin D3
4.5.
Silueta
Veamos c
omo se construye la silueta. Para la observacion i y el grupo C consideramos
X
C) = 1
d(i,
d(i, j),
|C|
jC
la disimilaridad media i con los elementos del grupo C. Para cada observacion i,
sea A el cluster al cual lo ha asignado el procedimiento cluster que empleamos
y calculamos a(i) la disimilaridad media de i con todos los demas individuos del
A). Obviamente estamos asumiendo que A contiene al menos
grupo A, a(i) = d(i,
C) para todos los grupos C 6= A y seleccionemos el
otro objeto. Consideremos d(i,
que tiene el mnimo valor:
C).
b(i) = mn d(i,
C6=A
74
Interpretacion
Fuerte estructura
Estructura razonable
Estructura debil. Probar otros metodos
No se encuentra estructura
a(i)
si a(i) < b(i),
b(i)
= 0 si a(i) = b(i),
b(i)
=
1 si a(i) > b(i).
a(i)
=
(4.7)
(4.8)
(4.9)
b(i) a(i)
.
max{a(i), b(i)}
3 No
75
n = 75
1 : 20 | 0.73
2 : 23 | 0.75
3 : 17 | 0.67
4 : 15 | 0.80
0.0
0.2
0.4
0.6
0.8
1.0
Silhouette width si
Average silhouette width : 0.74
##
11
12
11
4
## 0.5254 0.4158 0.3751 0.5815
## Individual silhouette widths:
##
Min. 1st Qu. Median
Mean 3rd Qu.
## 0.0113 0.3480 0.5220 0.4530 0.6000
Max.
0.6700
plot(silhouette(cz.km$cluster, dist(cz.data)))
n = 38
32
36
30
37
34
33
28
31
29
35
38
7
9
23
27
8
22
11
24
1
3
21
6
18
17
25
10
20
14
5
19
12
2
16
13
15
4
26
1 : 11 | 0.53
2 : 12 | 0.42
3 : 11 | 0.38
4 : 4 | 0.58
0.0
0.2
0.4
0.6
0.8
1.0
Silhouette width si
Average silhouette width : 0.45
4.6.
Un ejemplo completo
Nota de R 21 (Un an
alisis completo de ALL) En esta secci
on vamos a ver
un an
alisis cluster completo.
Lo tomamos de https://wiki.cgb.indiana.edu/display/r/4.+Bioconductor+Clustering+and+Visualization+Script.
Como siempre empezamos cargando los datos.
library("ALL")
data("ALL")
Veamos los tipos de biologa molecular y las frecuencias de cada tipo.
77
table(ALL$mol.biol)
##
## ALL1/AF4
##
10
BCR/ABL E2A/PBX1
37
5
NEG
74
NUP-98
1
p15/p16
1
TRUE
3439
TRUE
3507
78
Samples
15
Y vamos bien.
Vamos a considerar tambien que los niveles de expresi
on sean suficientemente
variables. En concreto la condici
on ser
a que la desviaci
on absoluta respecto de la
mediana (o simplemente mad) supere un cierto valor. Primero hemos de calcular la
desviaci
on absoluta respecto de la mediana de cada fila.
gen.mad <- apply(exprs(ALLs), 1, mad)
En concreto nos quedamos con los genes que tienen un valor de la desviaci
on
absoluta respecto de la mediana superior a 1.4.
ALLs <- ALLs[gen.mad > 1.4, ]
Otra vez, veamos que datos tenemos.
dim(ALLs)
## Features
##
58
Samples
15
10
1065_at
34583_at
40468_at
32184_at
41401_at
38037_at
41779_at
1118_at
31472_s_at
35127_at
38413_at
33358_at
36873_at
37558_at
37283_at
931_at
37809_at
36575_at
547_s_at
37251_s_at
34721_at
41470_at
1150_at
41577_at
37701_at
33274_f_at
41827_f_at
39929_at
38194_s_at
40117_at
38514_at
39318_at
1675_at
32111_at
40615_at
33219_at
36511_at
35995_at
32035_at
35961_at
40936_at
38604_at
266_s_at
36941_at
37225_at
40726_at
37493_at
40088_at
38052_at
33412_at
40365_at
40396_at
39182_at
AFFXBioDn5_at
40951_at
38585_at
38355_at
Height
31525_s_at
15
exprs(ALLs)
Agglomerative Coefficient = 0.75
O un an
alisis jer
arquico de las muestras. Observemos que aplicamos la funci
on
agnes a la matriz transpuesta de las expresiones t(exprs(ALLs)).
80
t(exprs(ALLs))
Agglomerative Coefficient = 0.51
81
LAL5
28003
24019
36001
31007
16004
08018
24005
15004
26008
04006
19005
12
63001
28032
28028
10
Height
14
16
18
20
82
Captulo 5
An
alisis discriminante o de
c
omo clasificar con muestra
de entrenamiento
Discriminar es clasificar. Es una palabra mal vista. Cuando una persona le dice a
otra: Usted me discrimina est
a indicando algo negativo en la medida en que piensa
que lo est
a separando para perjudicarle. Se asume la discriminacion como algo que
se realiza en un sentido negativo. Pues no. El analisis discriminante simplemente se
refiere al problema de clasificar en distintos grupos un conjunto de observaciones
vectoriales. Clasificar y discriminar se usan como sinonimos.
Tenemos distintos conjuntos de datos multivariantes. Que quiere que tenemos
grupos y que pretendemos hacer con ellos? Una biologa ha recogido una serie de
animales y ha observado en cada uno unas caractersticas numericas. Esta biologa
ha podido clasificar a los animales en distintas especies utilizando las variables x
de las que dispone y, posiblemente, algunas otras cuya consecucion ya no es tan
simple y, en ocasiones, ni posible. Esta interesada en dise
nar un procedimiento que,
partiendo de las variables de las que siempre dispone x, le permita decidir la especie
a la que pertenece un animal futuro del cual solamente tiene las caractersticas x.
Tiene esta persona un problema de clasificaci
on que pretende hacer bien y clasificar
a cada animal en su especie con un esfuerzo peque
no.
Otro ejemplo puede ser el siguiente. Una persona ha pasado una enfermedad
(como la hidatidosis) y por lo tanto guarda en su organismo anticuerpos frente al
virus que lo infect
o y le caus
o la enfermedad. A este individuo se le controla a lo
largo de los a
nos. Cuando se le aplica un procedimiento diagnostico el resultado
puede ser positivo debido a dos razones: el individuo ha recado en la enfermedad y
por lo tanto ha de ser tratado. Sin embargo, si el procedimiento es muy sensible el
resultado positivo del test puede ser simplemente producidos por los anticuerpos que
la persona conserva. Diferenciar una situacion de la otra supone otra exploracion
(placas del t
orax) y, por ello, una complicacion adicional. En la realizacion del test
se han recogido la presencia o ausencia de una serie de aminoacidos. Tenemos que
nuestro vector de caractersticas son variables binarias o dicotomicas y pretendemos
poder decidir a partir de ellas si la persona esta sana sin anticuerpos, sana con
anticuerpos o finalmente enferma utilizando la presencia o ausencia de los distintos
anticuerpos. Este es un segundo problema de interes a tratar aqu.
Pretendemos clasificar a un individuo dado utilizando algunas caractersticas
del mismo. Pero para poder hacerlo tenemos que conocer para una muestra, que
podemos llamar muestra de entrenamiento (training sample), en que grupo esta cada individuo con los que trabajamos. Esto hace bastante natural el nombre mas
83
IND
2
3
4
5
6
7
2
3
4
5
6
7
ausencia
ausencia
ausencia
ausencia
ausencia
ausencia
de
de
de
de
de
de
GRUPO
cristales
cristales
cristales
cristales
cristales
cristales
GRAV
1.017
1.008
1.011
1.005
1.020
1.012
Incluimos un an
alisis descriptivo de los datos.
summary(x)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
IND
Min.
: 2.0
1st Qu.:21.0
Median :40.0
Mean
:40.3
3rd Qu.:60.0
Max.
:79.0
CONDUC
Min.
: 5.1
1st Qu.:14.3
Median :21.4
Mean
:20.9
3rd Qu.:27.0
Max.
:38.0
GRUPO
ausencia de cristales :44
presencia de cristales:33
UREA
Min.
: 10
1st Qu.:159
Median :255
Mean
:262
3rd Qu.:362
Max.
:620
CALCIO
Min.
: 0.17
1st Qu.: 1.45
Median : 3.16
Mean
: 4.16
3rd Qu.: 6.19
Max.
:14.34
84
GRAV
Min.
:1.00
1st Qu.:1.01
Median :1.02
Mean
:1.02
3rd Qu.:1.02
Max.
:1.04
PH
Min.
:4.76
1st Qu.:5.53
Median :5.94
Mean
:6.04
3rd Qu.:6.40
Max.
:7.94
OSMO
Min.
: 187
1st Qu.: 410
Median : 594
Mean
: 614
3rd Qu.: 803
Max.
:1236
IND
1
2
3
4
5
6
1
2
3
4
5
6
Veamos un breve an
alisis descriptivo de los datos.
summary(x)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
IND
Min.
: 1
1st Qu.: 37
Median : 73
Mean
: 73
3rd Qu.:109
Max.
:145
PESO
GPB
Min.
:0.710
Min.
: 70
1st Qu.:0.880
1st Qu.: 90
Median :0.980
Median : 97
Mean
:0.977
Mean
:122
3rd Qu.:1.080
3rd Qu.:112
Max.
:1.200
Max.
:353
TIPO
LIAREA
diabetes manifiesta:33
Min.
:2.30
diabetes quimica
:36
1st Qu.:4.77
control
:76
Median :5.05
Mean
:5.02
3rd Qu.:5.40
Max.
:6.62
GAREA
Min.
: 269
1st Qu.: 352
Median : 413
Mean
: 544
3rd Qu.: 558
Max.
:1568
IAREA
Min.
: 10
1st Qu.:118
Median :156
Mean
:186
3rd Qu.:221
Max.
:748
El captulo est
a organizado del siguiente modo. Empezamos (seccion 5.1) recordando el teorema de Bayes con un ejemplo muy simple de urnas (no funerarias).
De este modo vemos la idea b
asica del metodo de clasificacion basado en probabilidades a posteriori. Consideramos, en la seccion 5.2, el caso (de interes puramente
academico) de dos poblaciones normales univariantes con la misma varianza y con
los par
ametros conocidos 1 . En la seccion 5.3 abordamos la situacion con dos poblaciones normales multivariantes. All consideramos tanto el caso en que las matrices
de covarianzas son la misma como cuando son distintas. En la seccion 5.4 nos planteamos la estimaci
on de los vectores de medias y las matrices de covarianzas y
vemos la implementaci
on pr
actica del metodo. El problema de la reduccion de la
dimensi
on dentro del problema de la clasificacion es considerado en la seccion 5.7
1 En
85
SSPG
Min.
: 29
1st Qu.:100
Median :159
Mean
:184
3rd Qu.:257
Max.
:480
5.1.
86
Finalmente nos hemos quedado con la poblacion i tal que tena un valor de (i | x)
mayor, aquella que, una vez observado el valor de X = x, haca mas probable la
poblaci
on.
5.2.
Supongamos ahora que tenemos que decidir entre dos poblaciones basandonos
en un valor aleatorio continuo con distribucion normal. En concreto supondremos
que en la primera poblaci
on X es normal con media 1 y varianza 2 . En la segunda
poblaci
on X tiene distribuci
on normal con media 2 y varianza 2 . Graficamente en
la figura ?? aparece la situaci
on con la que nos encontramos. Supongamos conocidos
los valores de las media y la varianza com
un. Observamos un valor de la variable X =
x: cu
al de las dos distribuciones lo ha generado? De otro modo: a que poblacion
pertenece este valor generado?
La idea para clasificar este valor generado es la misma de antes. Ahora tendremos
1
1
exp 2 (x i )2 ,
fi (x) = f (x | i , 2 ) =
2
2
aunque fi (x) no es la probabilidad del valor x asumiendo que estamos en la poblaci
on i. No obstante, fi (x)dx s que tiene este sentido. Hablando en un sentido
amplio tenemos una interpretaci
on similar. La observacion x la clasificaramos en
la poblaci
on 1 si
(1)f (x | 1 , 2 )
> 1,
(2)f (x | 2 , 2 )
F
acilmente comprobamos que esto equivale con que
1
1
(2)
(
)
x
(
+
)
> log
.
1
2
1
2
2
2
(1)
5.3.
En la secci
on 5.2 nos plante
abamos la situacion de dos normales univariantes. En
las aplicaciones es m
as habitual el caso en que trabajamos con varias caractersticas
simult
aneamente. En particular, vamos a asumir ahora que X puede pertenecer a
una de dos poblaciones normales multivariantes. La primera con vector de medias
1 y matriz de covarianzas y la segunda con vector de medias 2 y matriz de covarianzas . Dada una observaci
on multivariante x, la clasificaremos en la poblacion
1 si
(1)f (x | 1 , )
> 1,
(2)f (x | 2 , )
pero,
f (x | 1 , )
=
f (x | 2 , )
1
1
exp (x 1 )0 1 (x 1 ) + (x 2 )0 1 (x 2 ) =
2
2
1
exp (1 2 )0 1 x (1 2 )0 1 (1 + 2 ) . (5.1)
2
Sea = 1 (1 2 ), entonces la observacion es asignada a la primera poblacion
si
1
(2)
0
D(x) = x (1 + 2 ) > log
.
(5.2)
2
(1)
87
(2)
Notemos que la ecuaci
on D(x) = log (1)
nos define un hiperplano que separa las
dos poblaciones.
Que ocurre si no asumimos que tenemos una misma matriz de covarianzas? En
este caso se tiene que:
f (x | 1 , 1 )
=
f (x | 2 , 2 )
1
|2 | 1
1
0 1
log
(x 1 )0 1
1 (x 1 ) + (x 2 ) 2 (x 2 ) =
2
|1 | 2
2
|2 | 1 0 1
1
1
1
0
log
x (1 1
)x
2x
(
)
1
2 . (5.3)
2
1
2
2
|1 | 2
Q(x) = log
5.4.
(2)
(1)
(2)
.
(1)
(2)
,
(1)
(5.6)
0 (x 1 (
Ds (x) =
x1 + x
2 )
2
(5.7)
= S1 (
x1 x
2 ).
p
(5.8)
y
La funci
on Ds recibe el nombre de funci
on discriminante lineal. La razon es obvia:
clasificamos en uno o en otro grupo utilizando una funcion lineal de las distintas
variables.
En el caso particular en que (1) = (2), esto es, consideramos a priori igualmente probables ambos grupos entonces la regla de clasificacion propuesta sera:
clasificamos en la poblaci
on o clase 1 si,
0x
0x
0 x > 1 (
1 +
2 ).
2
Es es el procedimiento que propuso R.A. Fisher en 1936.
Notemos que las probabilidades de pertenencia a posteriori a cada una de las
poblaciones pueden ser estimadas mediante
(i|x) =
(i)f (x|
xi , Sp )
.
(1)f (x|
x1 , Sp ) + (2)f (x|
x2 , Sp )
(5.9)
(i|x) =
(i)f (x|
xi , Si )
.
(1)f (x|
x1 , S1 ) + (2)f (x|
x2 , S2 )
(5.10)
Nota de R 24 Vamos a trabajar con los datos de cristales en la orina. Esta nota
es un ejemplo de an
alisis discriminante lineal con dos grupos. Consideramos dos
casos. En el primero las probabilidades a priori de cada grupo se asumen iguales
entre s y, por lo tanto, iguales a 0,5. En el segundo caso, las probabilidades a priori
coinciden con las proporciones observadas dentro de la muestra de cada una de las
poblaciones o clases. Leemos los datos.
library(foreign)
x <- read.spss(file = "../data/cristal.sav", to.data.frame = T)
Definimos el valor -1 como dato faltante.
x[x == -1] <- NA
Eliminamos del estudio todos los casos en los que hay alg
un dato faltante.
cc <- complete.cases(x)
attach(x[cc, ])
Suponemos matrices de covarianzas iguales y probabilidades a priori iguales.
89
library(MASS)
z <- lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, prior = c(1, 1)/2)
Veamos c
omo recuperar los distintos elementos del an
alisis.
attributes(z)
## $names
## [1] "prior"
## [9] "terms"
##
## $class
## [1] "lda"
"counts" "means"
"xlevels"
"scaling" "lev"
"svd"
"N"
"call"
z$counts
##
##
z$means
##
CALCIO CONDUC GRAV OSMO
PH UREA
## ausencia de cristales
2.629 20.55 1.015 561.7 6.126 232.4
## presencia de cristales 6.202 21.38 1.022 682.9 5.927 302.4
Vamos a obtener las probabilidades a posteriori. Observar la opci
on CV=TRUE.
z <- lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, prior = c(1, 1)/2, CV = TRUE)
attributes(z)
## $names
## [1] "class"
"posterior" "terms"
"call"
1
2
3
4
5
6
"xlevels"
1
2
3
4
5
6
5.5.
An
alisis discriminante con m
as de dos poblaciones normales
(5.11)
donde n =
decir,
Pg
i=1
j=1 (xij
x
i )(xij x
i )0
ni 1
(5.14)
(5.15)
Notemos que el u
ltimo termino no es mas que la distancia de Mahalanobis de x al
centro estimado de la clase, x
i . La diferencia entre las funciones Qi para dos clases
distintas es una funci
on cuadr
atica y por ello el metodo recibe el nombre de an
alisis
discriminante cuadr
atico.
5.6.
Valoraci
on del procedimiento de clasificaci
on
de clasificaci
on. Tendremos para cada data, yi , el grupo al que pertenece e yi el
grupo en el que lo clasificamos. Podemos considerar una valoracion del resultado de
la clasificaci
on la siguiente cantidad,
I=
n
X
yi ,y
i
i=1
(5.16)
93
## [1] s s s s s s s s s s s s s s s s s s s s s s s s s s c c c c c c c c c c c c c c c v c
## [44] c c c c c c v v v v v v v v v v v v v v v v v v c v v v v v v v
## Levels: c s v
Nota de R 26 Seguimos con los datos de la orina. Notemos que consideramos
probabilidades a priori correspondientes a las proporciones en la muestra. Nos limitamos a construir la tabla de clasificaci
on. Suponemos matrices de covarianzas
iguales y probabilidades a priori dadas por las proporciones de cada clase en la
muestra.
library(foreign)
x <- read.spss(file = "../data/cristal.sav", to.data.frame = T)
x[x == -1] <- NA
cc <- complete.cases(x)
x <- x[cc, ]
attach(x)
Realizamos un an
alisis discriminante lineal.
z1 <- lda(GRUPO ~ CALCIO + CONDUC + GRAV + OSMO + PH + UREA, CV = TRUE)
Construimos la tabla de clasificaciones.
table(GRUPO, z1$class)
##
## GRUPO
ausencia de cristales presencia de cristales
##
ausencia de cristales
42
2
##
presencia de cristales
14
19
Nota de R 27 (Correo basura) Consideramos unos datos de correo electr
onico. El objetivo del an
alisis es decidir si el correo es basura o no bas
andonos en
informaci
on de dicho correo. Estos datos se pueden encontrar en D.J. Newman and
Merz [1998]. Los datos los podemos encontrar en http: // mlearn. ics. uci. edu/
databases/ spambase/ y en particular la descripci
on de estos datos la tenemos en
http: // mlearn. ics. uci. edu/ databases/ spambase/ spambase. DOCUMENTATION .
Realizamos un an
alisis discriminante linear y un an
alisis cuadr
atico. Vemos que
el lineal nos proporciona mejores resultados.
library(MASS)
x <- read.table(file = "../data/spambase_data", sep = ",")
attach(x)
xnam <- paste("V", 1:57, sep = "")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))
y <- x[, 58]
94
Realizamos el an
alisis discriminante lineal.
z <- lda(fmla, data = x, prior = c(1, 1)/2, CV = T)
La tabla de clasificaci
on es la siguiente.
table(V58, z$class)
##
## V58
0
1
##
0 2625 163
##
1 265 1548
Realizamos el an
alisis discriminante cuadr
atico y obtenemos la nueva tabla de
clasificaci
on.
z <- qda(fmla, data = x, prior = c(1, 1)/2, CV = T)
table(V58, z$class)
##
## V58
0
1
##
0 2086 695
##
1
86 1723
Vamos a realizar una valoraci
on de los resultados de clasificaci
on con el an
alisis
discriminante lineal utilizando remuestreo. Elegimos la muestra de entrenamiento
como una selecci
on aleatoria de los datos.
entrenamiento <- sample(nrow(x), 2000)
Vemos la distribuci
on del correo en la muestra de entrenamiento.
table(y[entrenamiento])
##
##
0
## 1207
1
793
Realizamos el an
alisis discriminante lineal.
z <- lda(fmla, data = x, prior = c(1, 1)/2, subset = entrenamiento)
Vemos la tabla de clasificaci
on sobre los datos de entrenamiento.
table(predict(z, x[entrenamiento, ])$class, y[entrenamiento])
##
##
##
##
0
0 1149
1
58
1
108
685
95
0
0 1486
1
95
1
162
858
1
780
0
0 1155
1
65
1
112
668
5.7.
0
0 1687
1 101
1
190
978
(5.17)
i=1
y
B=
g X
g
ni
X
X
(
xi x
)(
xi x
)0 =
ni (
xi x
)(
xi x
)0
i=1 j=1
(5.18)
i=1
Notemos que
Sp =
W
ng
96
(5.19)
Estas matrices reciben el nombre de matrices intra grupos y entre grupos respectivamente. Son las versiones matriciales de las sumas de cuadrados intra y entre
grupos habituales en an
alisis de la varianza.
Es claro que cuando m
as agrupados esten los datos dentro de los grupos y mas
separados esten para grupos distintos tendremos que la magnitud de W ha de ser
menor que la de B. Supongamos que reducimos las observaciones multivariantes xij
a datos univariantes mediante tomando zij = c0 xij . Las sumas de cuadrados intra
y entre vendran dadas por c0 W c y c0 Bc. El cociente Fc = c0 Bc/c0 W c nos compara
la variabilidad intra con la variabilidad entre. Fisher (1936) introdujo el analisis
discriminante lineal buscando el vector c tal que el cociente Fc sea el mayor posible.
Ese fue su objetivo inicial.
La matriz W es suma de matrices semidefinidas positivas por lo que es definida positiva y consideramos su descomposicion de Cholesky dada por W = T 0 T .
Tomamos b = T c. Se tiene
Fc =
b0 (T 0 )1 BT 1 b
b0 Ab
c0 Bc
=
= 0 = a0 Aa,
0
0
c Wc
bb
bb
(5.20)
(5.22)
0.0
0.4
0.8
plot(z)
0.0
0.4
0.8
Para los datos de las diabetes podemos tendremos dos variables discriminantes
can
onicas. Mostramos dos posibles representaciones gr
aficas.
plot(z)
98
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
control
control
diabetes manifiesta
control
control
control
control
diabetes
control
control
control
diabetesmanifiesta
manifiesta
control
control
control
control
control
control
control
control
control
diabetes manifiesta
manifiesta
controlcontrol
diabetes manifiestadiabetes
control
control
control
diabetes
manifiesta
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
diabetes manifiesta
control
diabetes
quimica
control
control
control
control
diabetes
manifiesta
diabetes
quimica
diabetes manifiesta
control
diabetes
manifiesta
control
control
control
control
control
control
control
diabetes
quimica
control
control
diabetes
manifiesta
diabetes
manifiesta
control
control
diabetes manifiesta
control
control
diabetes
quimicaquimicacontrol
control
control
control
diabetes
diabetes
manifiesta
diabetes
manifiesta
control
diabetes
quimica
control
diabetes
quimica
diabetes
quimica
control
controlcontrol
control
diabetesquimica
quimica
diabetes
diabetes
control
diabetesmanifiesta
manifiesta
diabetes
quimica
diabetes
quimica
diabetes manifiesta
diabetes manifiesta
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes manifiesta
control
control
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
manifiesta
diabetes quimica
manifiesta
diabetes manifiesta diabetes
diabetes
quimica
diabetes quimica
LD2
diabetes
manifiesta
diabetes
manifiesta
diabetes manifiesta
diabetes quimica
control
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes quimica
diabetes quimica
diabetes quimica
diabetes quimica
0
LD1
pairs(z)
99
2
4
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
diabetes
quimica
control
control
control
diabetes
quimica
control
diabetes
quimica
diabetes
quimica
control
diabetes
quimica
diabetes
quimica
control
diabetes
quimica
diabetes
quimica manifiesta
control
diabetes
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
manifiesta
diabetes
quimica
diabetes
manifiesta
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
manifiesta
diabetes
quimica
diabetes
manifiesta
diabetes
quimica
diabetes quimica
manifiesta
diabetesdiabetes
manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes
manifiesta
manifiesta
diabetes diabetes
manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
manifiesta
diabetesdiabetes
manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes
manifiesta
diabetes
manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
diabetes manifiesta
control
control
diabetes manifiesta
diabetes
manifiesta
control
diabetes manifiesta
control
control
control
control
diabetes
control
control
diabetesmanifiesta
manifiesta
control
diabetes manifiesta
control
control
control
control
control
control
control
diabetes manifiesta
diabetes
manifiesta
control
control
diabetes manifiesta
control
control
diabetes
manifiesta
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
control
diabetes
manifiesta
control
diabetes
quimica
control
control
control
control
diabetes
manifiesta
diabetes
quimica
diabetes
manifiesta
control
diabetes
manifiesta
control
control
control
control
control
control
control
diabetes
quimica
control
control
diabetes
diabetesmanifiesta
manifiesta
control
control
diabetes manifiesta
control
control
control
diabetes
quimica
control
control
diabetes
quimica
diabetes
manifiesta
diabetes
manifiesta
control
diabetes
quimica
diabetes
quimica
control
diabetes
quimica
control
control
control
control
diabetes
quimica
diabetes
manifiesta
diabetes
quimica
control
diabetes
manifiesta
diabetes
quimica
diabetes
quimica
diabetes
manifiesta
diabetes
manifiesta
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
quimica
diabetes
quimica
diabetes
quimica
diabetes manifiesta diabetes
control
control
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes
manifiesta
diabetes
quimica
diabetes
manifiesta
diabetes
manifiesta
diabetes
diabetes
quimica quimica
LD1
diabetes quimicacontrol
diabetes
quimica
diabetes
quimica
diabetes
quimica
diabetes quimica
diabetes
quimica
diabetes
quimica
diabetes quimica
5.8.
LD2
Algunos ejemplos
Nota de R 29 En la secci
on ?? tenemos una descripci
on de los mismos. Realizamos un an
alisis discriminante en donde a partir de las caractersticas morfol
ogicas
pretendemos saber si es una abeja reina o bien es una obrera.
library(MASS)
x <- read.table(file = "../data/wasp.dat", header = T)
attach(x)
Aplicamos un an
alisis discriminante lineal y mostramos los histogramas de la
variable discriminante can
onica.
z <- lda(caste ~ TL + WL + HH + HW + TH + TW + G1L + G2Wa, prior = c(1, 1)/2)
plot(z)
100
0.4
0.2
0.0
0.0
0.2
0.4
group Q
0
group W
Los histogramas muestran que los valores de la variable discriminante son claramente distintos en cada grupo. La tabla de clasificaci
on es la siguiente.
z <- lda(caste ~ TL + WL + HH + HW + TH + TW + G1L + G2Wa, prior = c(1, 1)/2, CV = TRUE)
table(caste, z$class)
##
## caste Q W
##
Q 49 1
##
W 1 49
Mostrando que los resultados de la clasificaci
on son realmente buenos.
Nota de R 30 (Datos wbca) En la secci
on ?? tenemos la descripci
on de los datos. B
asicamente tenemos personas enfermas de c
ancer y no enfermos y pretendemos clasificar en estos dos posibles grupos. Pretendemos clasificar a la paciente
como enferma o no de c
ancer utilizando el resto de las variables.
library(faraway)
library(MASS)
attach(wbca)
Realizamos para ello un an
alisis discriminante lineal y, como tenemos solamente
dos grupos, mostramos los histogramas de la variable discriminante can
onica en
cada uno de los grupos.
101
wbca.lda <- lda(Class ~ Adhes + BNucl + Chrom + Epith + Mitos + NNucl + Thick + UShap + USize
CV = T)
table(Class, wbca.lda$class)
##
## Class
0
1
##
0 219 19
##
1
7 436
Tenemos una muestra bastante grande. Elegimos una muestra de entrenamiento
para estimar las probabilidades a posteriori. Para ellos elegimos al azar 400 mujeres
de la muestra inicial. Mostramos la tabla de clasificaci
on.
0 1
0 36 53
1 65 91
102
Captulo 6
Regresi
on
El problema que se trata en este tema es basico. Estudiar relaciones entre una
variable que llamaremos variable respuesta y una (o mas de una) variable que llamaremos variables predictoras. Tambien se utilizan las denominaciones de variable
dependiente para la variable respuesta y variables independientes en lugar en predictoras.
Si denotamos a la variable respuesta por Y (al valor observado lo denotaremos
por y) y a la variable predictora por X nuestro problema es intentar conocer el valor
de Y cuando conocemos el valor de la variable X.
library(MASS)
attach(cats)
names(cats)
13
12
11
10
Hwt[Sex == "F"]
2.0
2.2
2.4
2.6
Bwt[Sex == "F"]
2.8
3.0
18
20
14
10
12
Hwt[Sex == "M"]
16
2.0
2.5
3.0
3.5
Bwt[Sex == "M"]
require(stats)
120
100
80
60
40
20
10
15
20
25
Speed (mph)
6.1.
Regresi
on lineal simple
(6.1)
En el modelo de regresi
on m
as simple con el que se trabaja se asume que la media
condicionada E[Y | x] es una funcion lineal de x, en otras palabras, se asume que
E[Y | x] = 0 + 1 x.
(6.2)
Las hip
otesis asumidas en 6.1 y 6.2, podemos expresarlas conjuntamente diciendo
que la variable respuesta Y se puede expresar como
Y = 0 + 1 x + ,
(6.3)
N (0, 2 ).
(6.4)
donde
En la formulaci
on de 6.3 expresamos el valor aleatorio de Y como suma de una
parte que sistem
aticamente depende de x (la componente sistematica del modelo)
y un termino aleatorio con distribucion normal, un termino de error o desajuste del
modelo. En esta variable normal con media cero y varianza constante 2 estamos
incluyendo todas las posibles causas que influyen el valor de Y y que no vienen
dadas por la variable predictora.
No consideramos un solo valor aleatorio de Y dado un valor fijo de x. Realmente,
tenemos n valores observados cuyos valores son independientes entre s pero no
tienen la misma distribuci
on. Hemos de pensar que cad a Yi tiene una variable
predictora distinta que influye en la distribucion de Yi . Tenemos pares (xi , Yi ) donde
la xi viene dada y consideramos la distribucion de Yi condicionada a xi , es decir,
Yi | xi .
Resumiendo, estamos asumiendo que Yi N (0 +1 xi , 2 ) y que los distintos Yi
son independientes entre si. Utilizando propiedades de la distribucion normal multivariante tenemos que estas hip
otesis las podemos expresar conjuntamente diciendo
que
Y Nn (X, 2 Inn ),
(6.5)
donde
Y1
Y = ...
Yn
1
..
X = .
1
x1
..
.
xn
Si consideramos que
1
..
=.
n
107
= 0
1
donde los i N (0, 2 ) e independientes entre si. Entonces el modelo dado en 6.5
lo podemos reescribir como
Y = X + ,
(6.6)
con Nn (0, 2 Inn ).
Este modelo probabilstico es conocido como el modelo de regresi
on lineal
simple. No lo estudiaremos en mas detalle porque nos vamos a ocupar de la situaci
on m
as general en que tenemos mas de una variable predictora. No es mas que
un caso particular y sin mucha dificultad adicional se puede estudiar el situacion
general de regresi
on lineal m
ultiple.
6.2.
Regresi
on lineal m
ultiple
(6.7)
0
1 x11 . . . x1,p1
1
Y1
1
..
..
.
.
.
..
..
Y = . X = .
= .. = ..
.
1 xn1 . . . xn,p1
n
Yn
p1
El modelo estoc
astico b
asico es el que sigue
Y = X + .
(6.8)
En este modelo a X le llamaremos la parte sistematica mientras que es la componente aleatoria del modelo. Estamos expresando los datos como la suma de una
parte sistem
atica m
as una parte aleatoria. La parte sistematica es la media del vector Y . Notemos que la dimension del espacio en que estamos trabajando es n, el
n
umero de observaciones. El vector de medias o parte sistematica del modelo tiene
dimensi
on p por lo que la parte no explicada, el residuo, tiene dimension n p.
6.3.
Estimaci
on de
C
omo estimamos los parametros ? Nuestros datos son (yi , xi1 , . . . , xi,p1 )
con i = 1, . . . , n. Nuestro objetivo es estimar los coeficientes de modo que X
este pr
oximo a y. En concreto vamos a minimizar
n
X
i=1
108
(6.9)
Residuo
Espacio
engendrado
por X
Valor ajustado
Figura 6.1: Expresamos la observacion y como suma ortogonal de una parte sistem
atica m
as un residuo.
Si desarrollamos la expresi
on anterior tendremos que
(y X)0 (y X) = y 0 y 2 0 X 0 y + + 0 X 0 X.
Diferenciando respecto de los distintos j e igualando a cero nos da el siguiente
sistema de ecuaciones normales:
X 0 X = X 0 y.
(6.10)
(6.11)
(6.12)
y = Hy = X .
(6.13)
Tambien tenemos los residuos, esto es, las diferencias entre los valores observados
originalmente y las predicciones que de ellos hacemos. Los residuos en terminos de
la matriz H vienen dados por
= y Hy = (I H)y.
(6.14)
n
X
(yi yi )2 ,
(6.15)
i=1
(6.16)
(yi y)2 =
i=1
n
X
(yi yi )2 +
i=1
n
X
(yi y)2 .
(6.18)
i=1
n
X
(yi y)2 .
(6.19)
(yi yi )2 .
(6.20)
i=1
n
X
i=1
n
X
(yi y)2 .
(6.21)
i=1
6.4.
Y1
1 x1
1
.. ..
0
..
.
.
. = .
. 1 + .
Yn
1 xn
n
Notemos que podemos hacer Yi = 0 + 1 x
+ 1 (xi x
) + i . Nuestra matriz de
dise
no sera
1
..
X = .
1
x1 x
..
.
xn x
con
n P
0
XX=
n
0
)2
i=1 (xi x
0
x
)2
i=1 i
110
(6.22)
6.5.
Verosimilitud
(6.23)
n
1
log(2) n log 2 (y X)0 (y X).
2
2
(6.24)
L(, ) =
y la logverosimilitud sera
l(, ) =
El estimador m
aximo verosmil de se obtiene maximizando cualquiera de las dos
funciones anteriores. Es obvio que el maximo respecto de se obtiene como el
valor que minimiza (y X)0 (y X), en definitiva, que los estimadores maximo
verosmiles no son m
as que los estimadores mnimo cuadraticos.
6.6.
Algunos ejemplos
Call:
lm(formula = circumference ~ age, data = Orange)
Coefficients:
(Intercept)
17.400
age
0.107
200
100
circumference
150
50
500
1000
1500
age
$names
[1] "coefficients"
[6] "assign"
[11] "terms"
"residuals"
"qr"
"model"
"effects"
"df.residual"
"rank"
"xlevels"
"fitted.values"
"call"
$class
[1] "lm"
Los valores ajustados o predicciones los obtenemos con
orange.lm$fitted.values
##
1
2
3
4
5
6
7
8
9
10
11
12
## 30.00 69.08 88.30 124.60 148.83 163.89 186.31 30.00 69.08 88.30 124.60 148.83
##
13
14
15
16
17
18
19
20
21
22
23
24
## 163.89 186.31 30.00 69.08 88.30 124.60 148.83 163.89 186.31 30.00 69.08 88.30
##
25
26
27
28
29
30
31
32
33
34
35
## 124.60 148.83 163.89 186.31 30.00 69.08 88.30 124.60 148.83 163.89 186.31
Y los residuos observados se obtiene con
112
orange.lm$residuals
##
1
2
3
4
5
6
7
8
##
0.001451 -11.076488 -1.295146 -9.597057 -28.833920 -21.888536 -41.310304
3.001451
##
9
10
11
12
13
14
15
16
## -0.076488 22.704854 31.402943 23.166080 39.111464 16.689696
0.001451 -18.076488
##
17
18
19
20
21
22
23
24
## -13.295146 -16.597057 -33.833920 -24.888536 -46.310304
2.001451 -7.076488 23.704854
##
25
26
27
28
29
30
31
32
## 42.402943 30.166080 45.111464 27.689696
0.001451 -20.076488 -7.295146
0.402943
##
33
34
35
## -6.833920 10.111464 -9.310304
Call:
lm(formula = precio ~ valterr + valmejor)
Coefficients:
(Intercept)
767.408
valterr
3.192
valmejor
0.478
113
6.7.
Distribuci
on muestral de
(6.26)
2 =
0
.
np
(6.28)
(6.29)
(6.30)
(6.31)
Call:
lm(formula = precio ~ valterr + valmejor)
Residuals:
Min
1Q
-153634 -10451
Median
-576
3Q
8690
Coefficients:
114
Max
356418
##
##
##
##
##
##
##
##
##
##
6.8.
Bondad de ajuste
)
i
i=1 i
2
(6.32)
Pn
Es habitual denominar a Pi=1 (yi yi )2 , suma de cuadrados del error mientras
n
yi y)2 se le llama suma de cuadrados de la
que a SS(Regresion) = i=1 (
regresi
on. Tenemos pues que
Pn
(
yi y)2
SS(Regresion)
R2 = Pni=1
.
=
2
SS(T otal)
(y
)
i
i=1 i
(6.33)
El ajuste que estamos realizando se supone que sera tanto mejor cuanto mas peque
na sea SS(Error). Tampoco sera natural que SS(Error) fuera nula pues sera
tanto como asumir que los distintos valores aleatorios son iguales a su media. Notemos que SS(T otal) es una cuantificacion de la variabilidad de los distintos yi sin
tener en cuenta las variables predictoras mientras que SS(Error) nos cuantifica la
variaci
on residual despues de utilizar las variables predictoras. Es de esperar que
un mejor ajuste vaya acompa
nado de un valor de SS(Error) peque
no en relacion
con SS(T otal). Esa es la idea del coeficiente de determinacion. Toma valores entre
0 y 1 y cuanto m
as cerca de 1 mejor es el ajuste.
Tiene un peque
no inconveniente y es que no tiene en cuenta el n
umero de variables predictoras que estamos utilizando para predecir la variable respuesta. Una
peque
na modificaci
on de R2 para incorporar esta informacion es el coeficiente de
determinaci
on ajustado que podemos denotar R2 -ajustado y se define como
Pn
(yi yi )2 /(n p)
,
R2 ajustado = 1 Pi=1
n
)2 /(n 1)
i=1 (yi y
donde suponemos que tenemos p 1 variables predictoras.
115
(6.34)
6.9.
Valoraci
on de las hip
otesis del modelo
Un modelo de regresi
on lineal m
ultiple supone, como hemos visto, varias hipotesis. Es necesario valorar lo razonables, lo asumibles que son estas hipotesis. Las
hip
otesis del modelo que vamos a valorar son las siguientes:
1. Tenemos errores independientes, con la misma varianza y con distribucion
normal? Esto es, nos preguntamos si es asumible la hipotesis Nn (0, 2 Inn ).
2. Asumimos que E[Yi | xi ] = 0 + 1 xi1 + . . . + p1 xi,p1 .
Los errores no son directamente observables. Observamos los residuos = y y
que no es lo mismo. Las propiedades de ambos vectores son distintas. En particular,
estamos asumiendo que var() = 2 Inn . Sin embargo, esta afirmacion no es cierta
para los residuos observados . Notemos que
y = X(X 0 X)1 X 0 y = Hy.
De modo que
= y y = (I H)y = (I H)X + (I H) = (I H).
La tercera igualdad anterior es consecuencia de que HX = X porque H es la
matriz de proyecci
on sobre el espacio engendrado por las columnas de X y X
est
a en este espacio por lo que la proyeccion es el propio punto. Notemos que I H
tambien es una matriz de proyeccion (sobre el espacio ortogonal al engendrado por
las columnas de X) de modo que (I H)2 = I H. Aplicando esta propiedad se
tiene que
var(
) = var(I H) = (I H) 2 ,
(6.35)
ya que var() = 2 Inn . Vemos pues que, aunque asumimos que los errores son
incorrelados y con la misma varianza, esto no es cierto para los residuos .
Homogeneidad de la varianza
La mera observaci
on de los residuos sin considerar su posible asociacion con
otra variable no nos proporciona informacion sobre si la varianza de los mismos
es constante. Hemos de considerarlos en relacion con otras variables. Es habitual
considerar un diagrama de puntos de los residuos como funcion de las predicciones
y. Cuando la varianza es constante debemos de observar los residuos dispersos de
un modo aleatorio respecto del eje de abscisas. Tambien podemos ver un comportamiento no aleatorio alrededor del eje de abscisas cuando la parte estructural del
modelo no es lineal, es decir, cuando no se verifica que EY = X.
Nota de R 36 Los datos que vamos a utilizar para valorar las hip
otesis del modelo
son los datos savings contenido en la librera faraway (?). Se pretende estudiar la
relaci
on que liga la fracci
on de ahorro con la proporci
on de poblaci
on menor de
15 a
nos, mayor de 75 y las variables dpi y ddpi. El siguiente diagrama de puntos
muestra en abscisas las predicciones y en ordenadas los residuos. No parece en
principio que no podamos asumir una varianza constante. Vemos tambien que nos
indica los tres pases con los residuos m
as extremos: Chile, Filipinas y Zambia.
library(faraway)
data(savings)
attach(savings)
Hacemos el ajuste lineal.
116
10
Residuals vs Fitted
Zambia
Philippines
Residuals
10
Chile
10
12
14
16
Fitted values
lm(sr ~ pop15 + pop75 + dpi + ddpi)
Cuando no tenemos una varianza constante una opcion es transformar las variables. Si y es la variable original y h(y) la transformada queremos determinar h de
modo que la transformada tenga varianza constante. Transformaciones habituales
que podemos valorar son la raz cuadrada o el logaritmo de la variable respuesta.
Que tipo de representaci
on cabe esperar cuando la varianza no es constante?
Veamos distintas representaciones de los residuos frente a los valores ajustados
correspondiendo a varianza constante, varianzas no constantes y situaciones en que
no hay linealidad.
Nota de R 37 (Hip
otesis del modelo de regresi
on) Ilustramos c
omo observaramos residuos cuya varianza es constante. En la siguiente figura tenemos 50
posibles residuos en donde la varianza es constante.
par(mfrow = c(2, 2))
for (i in 1:4) plot(1:50, rnorm(50))
117
20
30
40
10
rnorm(50)
rnorm(50)
50
10
20
40
50
1:50
1:50
30
10
50
1:50
40
30
20
rnorm(50)
1
0
rnorm(50)
10
20
30
40
50
1:50
10
20
30
40
50
50
100
10
20
30
40
50
30
40
20 40 60
50
60
20 0
(1:50) * rnorm(50)
50
0
50
100
(1:50) * rnorm(50)
20
10
1:50
1:50
100
50
(1:50) * rnorm(50)
20
20
60
(1:50) * rnorm(50)
100
60
10
20
1:50
30
40
50
1:50
10
20
10 15 20
30
40
10
20
20
10
20
50
30
40
10
50
1:50
15
sqrt((1:50)) * rnorm(50)
40
15
10
5
0
30
1:50
sqrt((1:50)) * rnorm(50)
50
1:50
15
sqrt((1:50)) * rnorm(50)
10
sqrt((1:50)) * rnorm(50)
10
10
20
30
40
50
1:50
10
20
30
40
10
20
10
20
30
40
50
40
50
3
2
1
1
0
1
1:50
30
1:50
1:50
50
1
0
4
3
2
10
20
30
40
50
1:50
Normalidad
La siguiente hip
otesis a valorar es la normalidad de los errores. La herramienta
gr
afica m
as habitual es el dibujo q-q o la representacion cuantil-cuantil. Ordenamos
i
) para
los residuos y representamos los residuos ordenados en funcion de 1 ( n+1
i = 1, . . . , n. Si los residuos tienen una distribucion normal entonces deben estar
alineados. El histograma no es muy adecuado para ver la normalidad de los residuos.
plot(savings.lm, which = 2)
121
Normal QQ
Zambia
Philippines
Standardized residuals
Chile
Theoretical Quantiles
lm(sr ~ pop15 + pop75 + dpi + ddpi)
En la siguiente figura aparece un dibujo q-q utilizando las funciones qqnorm que
construye el dibujo y qqline que a
nade una lnea uniendo el primer y tercer cuartil.
Como vemos es el mismo dibujo.
10
Normal QQ Plot
Residuos
Theoretical Quantiles
Hemos visto c
omo es una dibujo q-q cuando tenemos normalidad. Pero: y
que pasa cuando no tenemos normalidad. Esto es lo interesante saber que tenemos que buscar para detectar que los residuos no siguen una distribucion normal.
0.6
0.4
0.0
0.4
0.0
0.2
dlnorm(x)
0.3
0.2
0.1
dnorm(x)
0.6
0.0
0.05
0.2
0.4
dunif(x)
0.15
dcauchy(x)
0.25
0.8
1.0
0
x
En la figura que sigue tenemos nueve dibujos q-q realizados con datos simulados
con una distribuci
on normal.
1
0
1
Theoretical Quantiles
Theoretical Quantiles
Normal QQ Plot
Normal QQ Plot
1
2
Theoretical Quantiles
Sample Quantiles
2
0
Sample Quantiles
Sample Quantiles
Sample Quantiles
Normal QQ Plot
2
Normal QQ Plot
Theoretical Quantiles
La figura que sigue muestra el dibujo q-q con datos simulados correspondientes
a la distribuci
on lognormal.
Normal QQ Plot
Normal QQ Plot
Sample Quantiles
2
0
2
2
0
20
Normal QQ Plot
25
Normal QQ Plot
15
2
Theoretical Quantiles
10
5
0
Theoretical Quantiles
Sample Quantiles
5
4
2
Sample Quantiles
Sample Quantiles
10
Theoretical Quantiles
Theoretical Quantiles
La figura que sigue muestra el dibujo q-q con datos simulados correspondientes
a la distribuci
on de Cauchy.
Normal QQ Plot
Normal QQ Plot
40
30
20
Theoretical Quantiles
Theoretical Quantiles
Normal QQ Plot
Normal QQ Plot
0
20
10 5
Sample Quantiles
10 20 30 40
20
0
10
Sample Quantiles
10
Sample Quantiles
20
40
60
Sample Quantiles
Theoretical Quantiles
Theoretical Quantiles
La figura que sigue muestra el dibujo q-q con datos simulados correspondientes
a la distribuci
on de uniforme.
1.0
0.8
0.8
0.6
0.0
Theoretical Quantiles
0.4
Sample Quantiles
0.8
1.0
Normal QQ Plot
1.0
Normal QQ Plot
0.6
0.4
Theoretical Quantiles
Theoretical Quantiles
0.6
0.0
0.2
0.4
Sample Quantiles
0.8
0.4
0.6
0.2
0.0
0.2
Sample Quantiles
Normal QQ Plot
0.2
0.0
Sample Quantiles
1.0
Normal QQ Plot
Theoretical Quantiles
Australia
0.8636
Chile
Austria
0.6164
China
Belgium
2.2190
Colombia
128
Bolivia
-0.6983
Costa Rica
Brazil
3.5528
Denmark
Canada
-0.3169
Ecuador
##
-8.2422
##
Finland
##
-1.6811
##
Iceland
##
-6.2106
##
Luxembourg
##
-1.6708
##
Panama
##
-3.2942
## South Rhodesia
##
1.2914
## United Kingdom
##
-2.6924
##
Libya
##
-2.8295
2.5360
France
2.4755
India
0.5087
Malta
2.9749
Paraguay
-6.1258
Spain
-0.6712
United States
-1.1116
Malaysia
-2.9709
-1.4517
Germany
-0.1807
Ireland
3.3911
Norway
-0.8718
Peru
6.5394
Sweden
-4.2603
Venezuela
3.6325
5.1251
Greece
-3.1162
Italy
1.9268
Netherlands
0.4255
Philippines
6.6750
Switzerland
2.4868
Zambia
9.7509
5.4002
Guatamala
-3.3553
Japan
5.2815
New Zealand
2.2856
Portugal
-0.7684
Turkey
-2.6657
Jamaica
-3.0185
shapiro.test(residuals(savings.lm))
##
## Shapiro-Wilk normality test
##
## data: residuals(savings.lm)
## W = 0.987, p-value = 0.8524
Incorrelaci
on de los errores
Estamos asumiendo que los errores son incorrelados. La correlacion entre
los datos pueden venir de que han sido observados proximos bien en el tiempo bien
en el espacio. C
omo contrastar si los residuos son incorrelados?
Un test de la hip
otesis de incorrelacion es el test de Durbin-Watson que utiliza
el siguiente estadstico
Pn
(
i i1 )2
,
(6.36)
DW = i=2Pn 2
i
i=1
bajo la hip
otesis nula de incorrelacion la distribucion es una combinacion lineal de
distintas distribuciones 2 .
Nota de R 41 Vamos a aplicar el test de Durbin-Watson de correlaci
on serial.
library(lmtest)
Aplicamos el test de Durbin-Watson.
dwtest(savings.lm)
##
## Durbin-Watson test
##
## data: savings.lm
## DW = 1.934, p-value = 0.3897
## alternative hypothesis: true autocorrelation is greater than 0
129
-2.4056
Honduras
0.7100
Korea
-6.1070
Nicaragua
0.6464
South Africa
0.4832
Tunisia
-2.8179
Uruguay
-2.2638
Observaciones an
omalas y observaciones influyentes
Austria
0.12038
China
0.07796
France
0.13620
India
0.07145
Malta
0.07940
Paraguay
0.06937
Spain
0.07733
United States
0.33369
Malaysia
0.06523
Belgium
0.08748
Colombia
0.05730
Germany
0.08736
Ireland
0.21224
Norway
0.04793
Peru
0.06505
Sweden
0.12399
Venezuela
0.08628
Y las representamos.
plot(savings.lm, which = 5)
130
Bolivia
0.08947
Costa Rica
0.07547
Greece
0.09662
Italy
0.06651
Netherlands
0.09061
Philippines
0.06425
Switzerland
0.07359
Zambia
0.06433
Brazil
0.06956
Denmark
0.06272
Guatamala
0.06049
Japan
0.22331
New Zealand
0.05422
Portugal
0.09715
Turkey
0.03964
Jamaica
0.14076
Canada
0.15840
Ecuador
0.06373
Honduras
0.06008
Korea
0.06080
Nicaragua
0.05035
South Africa
0.06510
Tunisia
0.07457
Uruguay
0.09795
Residuals vs Leverage
Zambia
Japan
0.5
Standardized residuals
Libya
0.5
Cook's distance
0.0
0.1
0.2
0.3
0.4
0.5
Leverage
lm(sr ~ pop15 + pop75 + dpi + ddpi)
1 hi
Estos son los residuos estudentizados. Si el modelo que asumimos es correcto entonces la varianza de estos residuos es uno y son aproximadamente incorrelados. Notemos que la estudentizaci
on corrige las varianzas desiguales de los residuos cuando
las varianzas de los errores son iguales entre si. En otro caso esto no es cierto. Si
las varianzas de los errores no son iguales (tenemos heterocedasticidad) entonces la
estudentizaci
on no hace homogeneas las varianzas de los residuos.
Algunos autores (y programas) tienden a usar en lugar de los residuos originales,
los residuos estudentizados.
Una observaci
on an
omala es una observacion que no se ajusta a nuestro modelo. Hemos de protegernos frente a este tipo de puntos. Un test para observaciones
an
omalas es u
til si nos permite distinguir entre observaciones que son realmente
an
omala y aquellas que simplemente tienen un residuo grande aunque no excepcionalmente grande.
Para detectar este tipo de puntos, lo que hacemos es excluir el punto i-esimo y
2
ajustamos el modelo sin ese punto obteniendo los estimadores (i) y
(i)
. Tendremos
131
(6.38)
1/2
np1
i
= ri
.
n p ri2
(i) 1 hi
Puesto que cada uno de los ti sigue una distribucion conocida podemos contrastar si
tenemos una observaci
on an
omala. En principio el procedimiento sera simplemente
fijar un nivel de significaci
on y determinar el percentil 1 2 de una distribucion
t de Student con n p 1 grados de libertad. Si denotamos el percentil como
tnp1,1 2 entonces residuos que no esten en el intervalo [tnp1,1 2 , tnp1,1 2 ]
seran sospechosos. Esto no es adecuado. Porque estamos analizando n residuos
estudentizados. Con uno s
olo s que sera aplicable el razonamiento. Tenemos un
problema de muchos tests simultaneamente considerados. Si aplicamos la correccion
de Bonferroni tendramos que corregir el nivel de significacion y trabajar con
/n. Por tanto, consideramos como sospechosos aquellos residuos estandarizados
,t
].
que esten fuera del intervalo [tnp1,1 2n
np1,1 2n
Nota de R 43 (Residuos estudentizados) Calculamos para los datos savings
los residuos estudentizados con la funci
on rstudent. La pregunta que nos hacemos
es si alguno de estos residuos es muy grande o muy peque
no. Comparamos el m
odulo
.
de los residuos estandarizados con tnp1,1 2n
savings.rs <- rstudent(savings.lm)
Comparamos los residuos con el percentil correspondiente.
abs(savings.rs) > qt(1 - 0.05/(50 * 2), 44)
##
Australia
##
FALSE
##
Chile
##
FALSE
##
Finland
##
FALSE
##
Iceland
##
FALSE
##
Luxembourg
##
FALSE
##
Panama
##
FALSE
## South Rhodesia
Austria
FALSE
China
FALSE
France
FALSE
India
FALSE
Malta
FALSE
Paraguay
FALSE
Spain
Belgium
FALSE
Colombia
FALSE
Germany
FALSE
Ireland
FALSE
Norway
FALSE
Peru
FALSE
Sweden
132
Bolivia
FALSE
Costa Rica
FALSE
Greece
FALSE
Italy
FALSE
Netherlands
FALSE
Philippines
FALSE
Switzerland
Brazil
FALSE
Denmark
FALSE
Guatamala
FALSE
Japan
FALSE
New Zealand
FALSE
Portugal
FALSE
Turkey
Canada
FALSE
Ecuador
FALSE
Honduras
FALSE
Korea
FALSE
Nicaragua
FALSE
South Africa
FALSE
Tunisia
##
FALSE
## United Kingdom
##
FALSE
##
Libya
##
FALSE
FALSE
United States
FALSE
Malaysia
FALSE
FALSE
Venezuela
FALSE
FALSE
Zambia
FALSE
p 1 hi
Nota de R 44 Con los datos savings representamos las distancias de Cook y las
obtenemos utilizando la funci
on Cooks.distance. Vemos Lbia, Zambia y Jap
on son
observaciones que influyen mucho en el ajuste. Habra que valorar el ajuste con y
sin estas observaciones.
plot(savings.lm, which = 4)
Cook's distance
0.15
0.10
Japan
0.05
Zambia
0.00
Cook's distance
0.20
0.25
Libya
10
20
30
Obs. number
lm(sr ~ pop15 + pop75 + dpi + ddpi)
40
50
FALSE
Jamaica
FALSE
FALSE
Uruguay
FALSE
cooks.distance(savings.lm)
##
Australia
##
8.036e-04
##
Chile
##
3.781e-02
##
Finland
##
4.364e-03
##
Iceland
##
4.353e-02
##
Luxembourg
##
3.994e-03
##
Panama
##
6.334e-03
## South Rhodesia
##
5.267e-03
## United Kingdom
##
1.497e-02
##
Libya
##
2.681e-01
6.10.
Austria
8.176e-04
China
8.157e-03
France
1.547e-02
India
2.966e-04
Malta
1.147e-02
Paraguay
4.157e-02
Spain
5.659e-04
United States
1.284e-02
Malaysia
9.113e-03
Belgium
7.155e-03
Colombia
1.879e-03
Germany
4.737e-05
Ireland
5.440e-02
Norway
5.559e-04
Peru
4.401e-02
Sweden
4.056e-02
Venezuela
1.886e-02
Bolivia
7.279e-04
Costa Rica
3.208e-02
Greece
1.590e-02
Italy
3.919e-03
Netherlands
2.744e-04
Philippines
4.522e-02
Switzerland
7.335e-03
Zambia
9.663e-02
Brazil
1.403e-02
Denmark
2.880e-02
Guatamala
1.067e-02
Japan
1.428e-01
New Zealand
4.379e-03
Portugal
9.734e-04
Turkey
4.224e-03
Jamaica
2.403e-02
1
n
(2) 2 n
max(,)0 L(, )
max(,) L(, )
(6.40)
Canada
3.106e-04
Ecuador
5.819e-03
Honduras
4.742e-04
Korea
3.555e-02
Nicaragua
3.226e-04
South Africa
2.405e-04
Tunisia
9.562e-03
Uruguay
8.532e-03
y
SS(Error)
2np
2 (n p)
adem
as ambas cantidades son independientes. Por ello se verifica que
F =
0 (y X ))/(p
((y 1n y)0 (y 1n y) (y X )
1)
Fp1,np .
0 (y X )/(n
(y X )
p)
Como segundo caso tendramos la situacion en que contrastamos que un solo coeficiente vale cero, es decir, la hipotesis nula H0 : i = 0 frente a la alternativa
H1 : i 6= 0. Tenemos que bajo la hipotesis nula indicada
ti =
i
SE(i )
tnp
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Residuals:
Min
1Q Median
-8.242 -2.686 -0.249
3Q
2.428
Max
9.751
Coefficients:
Estimate Std. Error t
(Intercept) 28.566087
7.354516
pop15
-0.461193
0.144642
pop75
-1.691498
1.083599
dpi
-0.000337
0.000931
ddpi
0.409695
0.196197
--Signif. codes: 0 '***' 0.001 '**'
value Pr(>|t|)
3.88 0.00033 ***
-3.19 0.00260 **
-1.56 0.12553
-0.36 0.71917
2.09 0.04247 *
0.01 '*' 0.05 '.' 0.1 ' ' 1
(Intercept)
pop15
pop75
dpi
ddpi
2.5 %
97.5 %
13.753331 43.378842
-0.752518 -0.169869
-3.873978 0.490983
-0.002212 0.001538
0.014534 0.804856
Supongamos que consideramos un vector de predictores x0 y pretendemos predecir la correspondiente media de la variable respuesta. Esta media viene dada por
E[Y |x0 ] = x00 .
La estimaci
on de esta media es
x00 ,
que tiene varianza
= x0 (X 0 X)1 x0 2 .
var(x00 )
0
Esta varianza la estimamos mediante
= x0 (X 0 X)1 x0
vd
ar(x00 )
2.
0
Y el intervalo de confianza sera
x00 tnp,1 2
136
x00 (X 0 X)1 x0 .
Austria
11.454
China
9.364
France
10.165
India
8.491
Malta
12.505
Paraguay
8.146
Spain
12.441
United States
8.672
Malaysia
7.681
Belgium
10.951
Colombia
6.432
Germany
12.731
Ireland
7.949
Norway
11.122
Peru
6.161
Sweden
11.120
Venezuela
5.587
Bolivia
6.448
Costa Rica
5.655
Greece
13.786
Italy
12.353
Netherlands
14.224
Philippines
6.105
Switzerland
11.643
Zambia
8.809
Brazil
9.327
Denmark
11.450
Guatamala
6.365
Japan
15.819
New Zealand
8.384
Portugal
13.258
Turkey
7.796
Jamaica
10.739
137
Canada
9.107
Ecuador
5.996
Honduras
6.990
Korea
10.087
Nicaragua
6.654
South Africa
10.657
Tunisia
5.628
Uruguay
11.504
Australia
Austria
Belgium
Bolivia
Brazil
Canada
Chile
China
Colombia
Costa Rica
Denmark
Ecuador
Finland
France
Germany
Greece
Guatamala
Honduras
Iceland
India
Ireland
Italy
Japan
Korea
Luxembourg
Malta
Norway
Netherlands
New Zealand
Nicaragua
Panama
Paraguay
Peru
Philippines
Portugal
South Africa
South Rhodesia
Spain
Sweden
Switzerland
Turkey
Tunisia
United Kingdom
United States
Venezuela
Zambia
Jamaica
Uruguay
Libya
Malaysia
fit
10.566
11.454
10.951
6.448
9.327
9.107
8.842
9.364
6.432
5.655
11.450
5.996
12.921
10.165
12.731
13.786
6.365
6.990
7.481
8.491
7.949
12.353
15.819
10.087
12.021
12.505
11.122
14.224
8.384
6.654
7.734
8.146
6.161
6.105
13.258
10.657
12.009
12.441
11.120
11.643
7.796
5.628
10.502
8.672
5.587
8.809
10.739
11.504
11.720
7.681
lwr
8.573
8.796
8.686
4.157
7.307
6.059
7.363
7.225
4.598
3.551
9.532
4.062
10.597
7.338
10.467
11.405
4.482
5.113
5.447
6.444
4.420
10.378
12.199
8.198
9.770
10.347
9.445
11.919
6.601
4.935
6.222
6.128
4.207
4.164
10.871
8.703
8.937
10.311
8.423
9.565
6.271
3.536
7.888
4.247
3.338
6.866
7.865
9.107
6.136
5.725
upr
12.559
14.111
13.216
8.739
11.347
12.155
10.321
11.502
8.265
7.759
13.368
7.929
15.245
12.991
14.994
16.167
8.249
8.867
9.514
10.539
11.477
14.328
19.438
11.975
14.271
14.663
12.799
16.530
10.168
8.372
9.246
10.163
8.114
8.046
15.646
12.611
15.080
14.571
13.817
13.721
9.321
7.719
13.117
13.096
7.837
10.752
13.612
13.901
17.303
9.637
138
Australia
Austria
Belgium
Bolivia
Brazil
Canada
Chile
China
Colombia
Costa Rica
Denmark
Ecuador
Finland
France
Germany
Greece
Guatamala
Honduras
Iceland
India
Ireland
Italy
Japan
Korea
Luxembourg
Malta
Norway
Netherlands
New Zealand
Nicaragua
Panama
Paraguay
Peru
Philippines
Portugal
South Africa
South Rhodesia
Spain
Sweden
Switzerland
Turkey
Tunisia
United Kingdom
United States
Venezuela
Zambia
fit
10.566
11.454
10.951
6.448
9.327
9.107
8.842
9.364
6.432
5.655
11.450
5.996
12.921
10.165
12.731
13.786
6.365
6.990
7.481
8.491
7.949
12.353
15.819
10.087
12.021
12.505
11.122
14.224
8.384
6.654
7.734
8.146
6.161
6.105
13.258
10.657
12.009
12.441
11.120
11.643
7.796
5.628
10.502
8.672
5.587
8.809
lwr
2.65239
3.34674
2.96408
-1.54594
1.40632
0.86361
1.04174
1.41206
-1.44364
-2.28779
3.55427
-1.90361
4.91740
2.00061
4.74420
5.76572
-1.52194
-0.89571
-0.44375
0.56345
-0.48378
4.44367
7.34744
2.19862
4.03802
4.54786
3.28141
6.22601
0.52059
-1.19581
-0.07263
0.22559
-1.74359
-1.79621
5.23607
2.75248
3.75673
4.49157
3.00037
3.70738
-0.01362
-2.31147
2.40955
-0.17340
-2.39507
0.90760
upr
18.48
19.56
18.94
14.44
17.25
17.35
16.64
17.32
14.31
13.60
19.35
13.89
20.92
18.33
20.72
21.81
14.25
14.88
15.40
16.42
16.38
20.26
24.29
17.98
20.00
20.46
18.96
22.22
16.25
14.50
15.54
16.07
14.06
14.01
21.28
18.56
20.26
20.39
19.24
19.58
15.60
13.57
18.60
17.52
13.57
16.71
139
##
##
##
##
Jamaica
Uruguay
Libya
Malaysia
6.11.
10.739 2.55827
11.504 3.47853
11.720 2.24140
7.681 -0.22396
18.92
19.53
21.20
15.59
Selecci
on de variables
6.11.1.
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Call:
lm(formula = Life.Exp ~ ., data = statedata)
Residuals:
Min
1Q Median
-1.4890 -0.5123 -0.0275
3Q
0.5700
Max
1.4945
Coefficients:
Estimate Std. Error t
(Intercept) 7.09e+01
1.75e+00
Population
5.18e-05
2.92e-05
Income
-2.18e-05
2.44e-04
Illiteracy
3.38e-02
3.66e-01
Murder
-3.01e-01
4.66e-02
HS.Grad
4.89e-02
2.33e-02
Frost
-5.74e-03
3.14e-03
Area
-7.38e-08
1.67e-06
--Signif. codes: 0 '***' 0.001 '**'
value Pr(>|t|)
40.59 < 2e-16 ***
1.77
0.083 .
-0.09
0.929
0.09
0.927
-6.46 8.7e-08 ***
2.10
0.042 *
-1.82
0.075 .
-0.04
0.965
0.01 '*' 0.05 '.' 0.1 ' ' 1
Call:
lm(formula = Life.Exp ~ Population + Income + Illiteracy + Murder +
HS.Grad + Frost, data = statedata)
Residuals:
Min
1Q Median
-1.4905 -0.5253 -0.0255
3Q
0.5716
Max
1.5037
Coefficients:
Estimate Std. Error t
(Intercept) 7.10e+01
1.39e+00
Population
5.19e-05
2.88e-05
Income
-2.44e-05
2.34e-04
Illiteracy
2.85e-02
3.42e-01
Murder
-3.02e-01
4.33e-02
HS.Grad
4.85e-02
2.07e-02
Frost
-5.78e-03
2.97e-03
--Signif. codes: 0 '***' 0.001 '**'
value Pr(>|t|)
51.17 < 2e-16 ***
1.80
0.079 .
-0.10
0.917
0.08
0.934
-6.96 1.5e-08 ***
2.35
0.024 *
-1.94
0.058 .
0.01 '*' 0.05 '.' 0.1 ' ' 1
141
Call:
lm(formula = Life.Exp ~ Population + Income + Murder + HS.Grad +
Frost, data = statedata)
Residuals:
Min
1Q Median
-1.4892 -0.5122 -0.0329
3Q
0.5645
Max
1.5166
Coefficients:
Estimate Std. Error t
(Intercept) 7.11e+01
1.03e+00
Population
5.11e-05
2.71e-05
Income
-2.48e-05
2.32e-04
Murder
-3.00e-01
3.70e-02
HS.Grad
4.78e-02
1.86e-02
Frost
-5.91e-03
2.47e-03
--Signif. codes: 0 '***' 0.001 '**'
value Pr(>|t|)
69.07 < 2e-16 ***
1.89
0.066 .
-0.11
0.915
-8.10 2.9e-10 ***
2.57
0.014 *
-2.39
0.021 *
0.01 '*' 0.05 '.' 0.1 ' ' 1
Call:
lm(formula = Life.Exp ~ Population + Murder + HS.Grad + Frost,
data = statedata)
Residuals:
Min
1Q Median
-1.471 -0.535 -0.037
3Q
0.576
Max
1.507
Coefficients:
Estimate Std. Error t
(Intercept) 7.10e+01
9.53e-01
Population
5.01e-05
2.51e-05
Murder
-3.00e-01
3.66e-02
HS.Grad
4.66e-02
1.48e-02
Frost
-5.94e-03
2.42e-03
--Signif. codes: 0 '***' 0.001 '**'
value Pr(>|t|)
74.54 < 2e-16 ***
2.00
0.052 .
-8.20 1.8e-10 ***
3.14
0.003 **
-2.46
0.018 *
0.01 '*' 0.05 '.' 0.1 ' ' 1
Call:
lm(formula = Life.Exp ~ Murder + HS.Grad + Frost, data = statedata)
Residuals:
Min
1Q Median
-1.502 -0.539 0.101
3Q
0.592
Max
1.227
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 71.03638
0.98326
72.25
<2e-16 ***
Murder
-0.28307
0.03673
-7.71
8e-10 ***
HS.Grad
0.04995
0.01520
3.29
0.002 **
Frost
-0.00691
0.00245
-2.82
0.007 **
--Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.743 on 46 degrees of freedom
Multiple R-squared: 0.713,Adjusted R-squared: 0.694
F-statistic:
38 on 3 and 46 DF, p-value: 1.63e-12
6.11.2.
Start: AIC=-22.18
Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +
Frost + Area
- Area
- Income
- Illiteracy
Df Sum of Sq RSS
AIC
1
0.00 23.3 -24.2
1
0.00 23.3 -24.2
1
0.00 23.3 -24.2
143
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
<none>
- Population
- Frost
- HS.Grad
- Murder
1
1
1
1
1.75
1.85
2.44
23.14
23.3
25.0
25.1
25.7
46.4
-22.2
-20.6
-20.4
-19.2
10.3
Step: AIC=-24.18
Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +
Frost
- Illiteracy
- Income
<none>
- Population
- Frost
- HS.Grad
- Murder
Df Sum of Sq RSS
AIC
1
0.00 23.3 -26.2
1
0.01 23.3 -26.2
23.3 -24.2
1
1.76 25.1 -22.5
1
2.05 25.3 -22.0
1
2.98 26.3 -20.2
1
26.27 49.6 11.6
Step: AIC=-26.17
Life.Exp ~ Population + Income + Murder + HS.Grad + Frost
- Income
<none>
- Population
- Frost
- HS.Grad
- Murder
Df Sum of Sq RSS
1
0.0 23.3
23.3
1
1.9 25.2
1
3.0 26.3
1
3.5 26.8
1
34.7 58.0
AIC
-28.2
-26.2
-24.3
-22.1
-21.2
17.5
Step: AIC=-28.16
Life.Exp ~ Population + Murder + HS.Grad + Frost
Df Sum of Sq
<none>
- Population
- Frost
- HS.Grad
- Murder
1
1
1
1
2.1
3.1
5.1
34.8
RSS
23.3
25.4
26.4
28.4
58.1
AIC
-28.2
-25.9
-23.9
-20.2
15.5
Call:
lm(formula = Life.Exp ~ Population + Murder + HS.Grad + Frost,
data = statedata)
Coefficients:
(Intercept)
Population
7.10e+01
5.01e-05
Murder
-3.00e-01
HS.Grad
4.66e-02
Frost
-5.94e-03
stepAIC(g)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Start: AIC=-22.18
Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +
Frost + Area
- Area
- Income
- Illiteracy
<none>
- Population
- Frost
- HS.Grad
- Murder
Df Sum of Sq RSS
AIC
1
0.00 23.3 -24.2
1
0.00 23.3 -24.2
1
0.00 23.3 -24.2
23.3 -22.2
1
1.75 25.0 -20.6
1
1.85 25.1 -20.4
1
2.44 25.7 -19.2
1
23.14 46.4 10.3
Step: AIC=-24.18
Life.Exp ~ Population + Income + Illiteracy + Murder + HS.Grad +
Frost
- Illiteracy
- Income
<none>
- Population
- Frost
- HS.Grad
- Murder
Df Sum of Sq RSS
AIC
1
0.00 23.3 -26.2
1
0.01 23.3 -26.2
23.3 -24.2
1
1.76 25.1 -22.5
1
2.05 25.3 -22.0
1
2.98 26.3 -20.2
1
26.27 49.6 11.6
Step: AIC=-26.17
Life.Exp ~ Population + Income + Murder + HS.Grad + Frost
- Income
<none>
- Population
- Frost
- HS.Grad
- Murder
Df Sum of Sq RSS
1
0.0 23.3
23.3
1
1.9 25.2
1
3.0 26.3
1
3.5 26.8
1
34.7 58.0
AIC
-28.2
-26.2
-24.3
-22.1
-21.2
17.5
Step: AIC=-28.16
Life.Exp ~ Population + Murder + HS.Grad + Frost
Df Sum of Sq
<none>
- Population
- Frost
- HS.Grad
- Murder
1
1
1
1
2.1
3.1
5.1
34.8
RSS
23.3
25.4
26.4
28.4
58.1
AIC
-28.2
-25.9
-23.9
-20.2
15.5
Call:
lm(formula = Life.Exp ~ Population + Murder + HS.Grad + Frost,
data = statedata)
145
## Coefficients:
## (Intercept)
Population
##
7.10e+01
5.01e-05
Murder
-3.00e-01
HS.Grad
4.66e-02
Frost
-5.94e-03
6.12.
Algunos ejemplos
Call:
lm(formula = fmla, data = x)
Residuals:
Min
1Q Median
-1.3791 -0.1317 -0.0159
3Q
0.1112
Max
0.8043
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.34118
0.02691
49.83 < 2e-16 ***
V1I
-0.09249
0.00945
-9.78 < 2e-16 ***
V1M
0.00893
0.00769
1.16
0.2461
V2
0.53305
0.16700
3.19
0.0014 **
V3
1.42358
0.20560
6.92 5.1e-12 ***
V4
1.20663
0.14181
8.51 < 2e-16 ***
V5
0.60825
0.06696
9.08 < 2e-16 ***
V6
-1.65705
0.07545 -21.96 < 2e-16 ***
V7
-0.83550
0.11942
-7.00 3.1e-12 ***
V8
0.60681
0.10382
5.84 5.5e-09 ***
--146
##
##
##
##
##
Signif. codes:
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
x <- x[-2052, ]
attach(x)
xnam <- paste("V", 1:8, sep = "")
(fmla <- as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))
## y ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8
y <- log(x[, 9])
y.fit <- lm(fmla, data = x)
summary(y.fit)
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Call:
lm(formula = fmla, data = x)
Residuals:
Min
1Q Median
-1.3473 -0.1308 -0.0165
3Q
0.1104
Max
0.8001
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.30893
0.02699
48.51 < 2e-16 ***
V1I
-0.08984
0.00938
-9.58 < 2e-16 ***
V1M
0.00823
0.00763
1.08
0.2811
V2
0.47852
0.16580
2.89
0.0039 **
V3
1.25015
0.20504
6.10 1.2e-09 ***
V4
2.37198
0.19937
11.90 < 2e-16 ***
V5
0.59652
0.06644
8.98 < 2e-16 ***
V6
-1.62479
0.07495 -21.68 < 2e-16 ***
V7
-0.89038
0.11866
-7.50 7.6e-14 ***
V8
0.51045
0.10366
4.92 8.8e-07 ***
--Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.201 on 4166 degrees of freedom
Multiple R-squared: 0.605,Adjusted R-squared: 0.605
F-statistic: 710 on 9 and 4166 DF, p-value: <2e-16
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Call:
lm(formula = fmla, data = x)
Residuals:
Min
1Q Median
-1.3473 -0.1308 -0.0165
3Q
0.1104
Max
0.8001
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.30893
0.02699
48.51 < 2e-16 ***
V1I
-0.08984
0.00938
-9.58 < 2e-16 ***
V1M
0.00823
0.00763
1.08
0.2811
V2
0.47852
0.16580
2.89
0.0039 **
V3
1.25015
0.20504
6.10 1.2e-09 ***
V4
2.37198
0.19937
11.90 < 2e-16 ***
V5
0.59652
0.06644
8.98 < 2e-16 ***
V6
-1.62479
0.07495 -21.68 < 2e-16 ***
V7
-0.89038
0.11866
-7.50 7.6e-14 ***
V8
0.51045
0.10366
4.92 8.8e-07 ***
--Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.201 on 4166 degrees of freedom
Multiple R-squared: 0.605,Adjusted R-squared: 0.605
F-statistic: 710 on 9 and 4166 DF, p-value: <2e-16
Call:
lm(formula = agua ~ temperatura + produccion + dias + personas)
Residuals:
Min
1Q Median
-445.0 -131.5
2.6
3Q
109.0
Max
368.5
Coefficients:
Estimate Std. Error t value Pr(>|t|)
148
##
##
##
##
##
##
##
##
##
##
##
Call:
lm(formula = agua ~ temperatura + poly(produccion, 3) + dias +
personas)
Residuals:
Min
1Q Median
-435.9 -103.8
29.4
3Q
123.9
Max
388.4
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)
8734.09
2393.47
3.65
0.0045 **
temperatura
14.52
6.52
2.23
0.0502 .
poly(produccion, 3)1 2742.29
851.98
3.22
0.0092 **
poly(produccion, 3)2
208.89
337.56
0.62
0.5499
poly(produccion, 3)3 -108.68
357.64
-0.30
0.7675
dias
-138.47
66.88
-2.07
0.0652 .
personas
-18.69
9.87
-1.89
0.0875 .
--Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 266 on 10 degrees of freedom
Multiple R-squared: 0.779,Adjusted R-squared: 0.647
F-statistic: 5.88 on 6 and 10 DF, p-value: 0.00736
plot(a.lm, which = 1)
149
400
Residuals vs Fitted
200
15
Residuals
200
400
14
3000
3500
4000
Fitted values
lm(agua ~ temperatura + produccion + dias + personas)
plot(a.lm, which = 2)
150
Normal QQ
Standardized residuals
17
14
Theoretical Quantiles
lm(agua ~ temperatura + produccion + dias + personas)
plot(a.lm, which = 3)
151
1.4
ScaleLocation
14
1.2
6
17
0.8
0.6
0.4
Standardized residuals
1.0
0.2
0.0
3000
3500
4000
Fitted values
lm(agua ~ temperatura + produccion + dias + personas)
plot(a.lm, which = 4)
152
Cook's distance
0.15
0.10
16
0.00
0.05
Cook's distance
0.20
10
15
Obs. number
lm(agua ~ temperatura + produccion + dias + personas)
plot(a.lm, which = 5)
153
Residuals vs Leverage
1
0.5
Standardized residuals
16
0.5
Cook's distance
0.0
0.1
0.2
0.3
0.4
0.5
Leverage
lm(agua ~ temperatura + produccion + dias + personas)
plot(a.lm, which = 6)
154
0.6
0.5
16
0.10
Cook's distance
0.15
0.20
0.05
0.00
0.1
0.2
0.3
0.4
0
0.5
0.6
Leverage hii
lm(agua ~ temperatura + produccion + dias + personas)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fit
3205
2750
2657
3228
3214
3529
3538
3138
3116
3283
3469
3148
2913
3367
3627
4362
3617
lwr
2521
2131
2036
2601
2563
2940
2945
2556
2526
2664
2825
2501
2309
2803
3050
3691
3026
upr
3890
3370
3278
3854
3864
4119
4132
3720
3706
3903
4113
3795
3517
3931
4203
5034
4208
155
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fit
3205
2750
2657
3228
3214
3529
3538
3138
3116
3283
3469
3148
2913
3367
3627
4362
3617
lwr
2788
2451
2355
2915
2854
3299
3297
2927
2884
2984
3122
2795
2648
3212
3432
3966
3383
upr
3623
3050
2959
3540
3573
3760
3779
3349
3348
3583
3816
3501
3179
3522
3821
4758
3852
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
Call:
lm(formula = Crime ~ M + So + Ed + Po1 + Po2 + LF + M.F + Pop +
NW + U1 + U2 + GDP + Ineq + Prob + Time)
Residuals:
Min
1Q Median
-395.7 -98.1
-6.7
3Q
113.0
Max
512.7
Coefficients:
Estimate Std. Error t
(Intercept) -5984.288
1628.318
M
8.783
4.171
So
-3.803
148.755
Ed
18.832
6.209
Po1
19.280
10.611
Po2
-10.942
11.748
LF
-0.664
1.470
M.F
1.741
2.035
Pop
-0.733
1.290
NW
0.420
0.648
U1
-5.827
4.210
U2
16.780
8.234
GDP
0.962
1.037
Ineq
7.067
2.272
Prob
-4855.266
2272.375
Time
-3.479
7.165
--Signif. codes: 0 '***' 0.001 '**'
value Pr(>|t|)
-3.68 0.00089 ***
2.11 0.04344 *
-0.03 0.97977
3.03 0.00486 **
1.82 0.07889 .
-0.93 0.35883
-0.45 0.65465
0.86 0.39900
-0.57 0.57385
0.65 0.52128
-1.38 0.17624
2.04 0.05016 .
0.93 0.36075
3.11 0.00398 **
-2.14 0.04063 *
-0.49 0.63071
0.01 '*' 0.05 '.' 0.1 ' ' 1
Call:
lm(formula = Crime ~ M + Ed + Po1 + U2 + Ineq + Prob)
Residuals:
Min
1Q Median
-470.7 -78.4 -19.7
3Q
133.1
Max
556.2
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -5040.50
899.84
-5.60 1.7e-06 ***
M
10.50
3.33
3.15
0.0031 **
Ed
19.65
4.48
4.39 8.1e-05 ***
Po1
11.50
1.38
8.36 2.6e-10 ***
U2
8.94
4.09
2.18
0.0348 *
Ineq
6.77
1.39
4.85 1.9e-05 ***
Prob
-3801.84
1528.10
-2.49
0.0171 *
157
##
##
##
##
##
##
--Signif. codes:
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(crime.lm, crime.lm2)
##
##
##
##
##
##
##
##
158
Captulo 7
De c
omo usar R en un
tiempo razonable (no f
acil,
no)
En este captulo se incluyen algunos consejos practicos para trabajar con R. Las
posibilidades son enormes. Sin embargo, de tantas que tiene lo mas probable es que el
usuario ocasional no llegue a conocer ninguna de ellas. Antes lo habra abandonado.
Y con raz
on. Si llevas a
nos utilizandolo con unas pocas lneas de codigo haces lo
que con programas basados en men
u te cuesta horas (y cuando lo vuelves a repetir
te vuelve a costar horas porque tu aprendizaje no te ahorra tiempo futuro lo que en
R no as). Pero lo de a
nos usando algo es una utopa que solo se pueden permitir
unos cuantos profesores universitarios sin nada mejor que hacer y muchos horas que
llenar de su importante tiempo.
Cuando usamos un programa informatico hay dos problemas fundamentales que,
dependiendo de la persona, uno puede ser mucho mayor que el otro. Un problema
es el manejo del dichoso programa. Como se ha dise
nado el interfaz? Donde han
puesto tal o cual opci
on de la tecnica? En fin, no vale la pena seguir. Se asume que un
buen men
u es la clave de un buen programa (sobre todo, para un usuario inexperto).
En definitiva, se trata de eliminar cualquier tipo de aprendizaje (inicial o posterior)
para que sea de uso inmediato. Algunas personas (entre las que me encuentro)
piensan que eso no est
a tan claro. Se acaba pagando el pato. Lo que no pierdes (no
me atreve a hablar de ganar) al principio lo pierdes mas tarde. Programas como R
basados en el uso de un lenguaje sencillo permiten un aprendizaje rapido y profundo.
Aprendes Estadstica al mismo tiempo que aprendes a manejar el programa. Y,
desde un punto de vista docente, es una razon importante para utilizarlo.
En este captulo he ido incluyendo distintas cuestiones basicas para el uso del
programa. Desde el c
omo conseguirlo o instalarlo hasta como trabajar con el. Mucho
de lo que sigue se basa en mi propia experiencia. De hecho, muchos estudiantes a
los que sugieres formas de trabajo, utilizan otros trucos que les resultan mas u
tiles.
Mi edad (y cerraz
on mental) me impiden cada vez mas adaptarme a nuevas ideas.
Es importante darse cuenta de que es un programa abierto y que, facilmente, lo
puedes integrar con otras herramientas informaticas. La idea es: elige el editor que
quieras. Genera las figuras en formatos distintos y utiliza el procesador de textos
que se quiera. En fin, de esto vamos a tratar.
159
7.1.
Instalaci
on y c
omo trabajar con R
La direcci
on b
asica es http://cran.r-project.org. All se tienen tanto las
fuentes como versiones compiladas para Windows, Mac y Linux.
7.1.1.
R y Windows
a) Traer la distribuci
on base de cran.
b) El programa se instala simplemente ejecutandolo.
c) Una vez instalado en el men
u principal teneis una herramienta que permite seleccionar el espejo desde traer los paquetes adicionales comodamente.
7.1.2.
R y Linux
Es mi opci
on personal de trabajo. La recomiendo definitivamente. Por Linux y
porque el trabajo con R es muy comodo. 1
Instalaci
on 1. Para Linux hay distintas versiones compiladas que puedes encontrar en cran.
2. No es complicado compilar R a partir de las fuentes. Hay que tener la
precauci
on de tener gfortran.
3. Cuando instalamos R en Linux hemos de instalar previamente la librera
BLAS.
Edici
on con Emacs y ESS
En Linux sin duda la mejor opcion de trabajo
es utilizar Emacs con el paquete Emacs Speaks Statistics (ESS) 2 .
C
omo trabajamos con Emacs y ESS?
1.
2.
3.
4.
7.2.
C
omo instalar un paquete?
160
7.3.
C
omo fijar el directorio de trabajo?
7.4.
Para denotar una variable utilizamos siempre una expresion breve y simple. Sin
embargo, es conveniente que la variable tenga una etiqueta explicativa del significado
de la variable. Dicha etiqueta ha de ser clara y no muy larga.
7.4.1.
C
omo etiquetar una variable?
7.5.
Elaboraci
on de un informe a partir del c
odigo
R
7.5.1.
Sweave
7.6.
R y Octave/Matlab
161
162
Bibliografa
H. Abdi and L. J. Williams. Principal component analysis. Wiley Interdisciplinary Reviews: Computational Statistics, 2(4):433459, 2010. URL /home/gag/
BIBLIOGRAFIA/REPRINTS/AbdiWilliams10.pdf.
C.L. Blake D.J. Newman, S. Hettich and C.J. Merz. UCI repository of machine learning databases, 1998. URL http://www.ics.uci.edu/$\sim$mlearn/
MLRepository.html.
E.R. Dougherty. Probability and Statistics for the Engineering, Computing and
Physical Sciences. Prentice Hall International Editions, 1990.
R.A. Fisher. The analysis of covariance method for the relation between a part and
the whole. Biometrics, 3:6568, 1947.
L. Kaufman and P.J. Rousseeuw. Finding Groups in Data. An Introduction to
Cluster Analysis. Wiley, 1990.
C.R. Rao. Linear Statistical Inference and Its Applications. Wiley, 1967.
J. Verzani. Using R for Introductory Statistics. Chapman & Hall / CRC, 2005.
163