Estadística con múltiples variables e introducción al lenguaje R

De testwiki
Ir a la navegación Ir a la búsqueda

Algunos Conceptos Básicos de Estadística

Introducción

En este capítulo se presentarán algunos conceptos de estadística básica de una variable que serán necesarios para el desarrollo de métodos en varias variables. Se presentarán algunos conceptos de inferencia estadística, junto con algunas distribuciones elementales. Suponemos que el lector ha tenido algún contacto con los conceptos de estadística en una variable como parte de algún curso a nivel universitario.

Variables Aleatorias

Los modelos matemáticos se dividen en tres clases generales: (1) Puramente deterministas, (2) estáticos o deterministas con algunos componentes aleatorios sencillos, y (3) estocásticos. Cualquier observación de un modelo determinista es estrictamente una función de sus parámetros y variables tales como el tiempo, el espacio, o energías o estímulos varios. Los modelos puramente deterministas son típicos de la física clásica, donde por ejemplo, la distancia recorrida por un cuerpo en caída libre es una función de su altura y velocidad inicial. Si se ignoran efectos transitorios como la turbulencia atmosférica, error observacional entre otros, el desplazamiento se puede calcular exactamente dados un intervalo de tiempo y la constante gravitacional.

En el segundo tipo de modelo, cada observación es una función de un componente estrictamente determinista y un término aleatorio atribuible a errores en las medidas o a las variaciones en el muestreo de las observaciones o de las variables de entrada. Los modelos examinados aquí son principalmente de este tipo con la restricción de que la componente aleatoria será simplemente agregada a la parte determinista.

Los modelos estocásticos se construyen a partir de eventos o componentes fundamentalmente aleatorios para explicar fenómenos dinámicos o evolutivos: pueden ser tan simples como una secuencia de lanzamientos de una moneda al aire o tan complejos como los procesos de nacimiento y muerte que describen la dinámica de una población biológica.

Definamos ahora con más precisión que significa el concepto de variación aleatoria o los componentes aleatorios en los modelos tipo 2 y 3 mencionados anteriormente. Empezamos definiendo una variable aleatoria discreta o una que pueda contener un número contable de valores.

Supóngase que un experimento sólo puede resultar en uno y sólo uno de k resultados llamados E1,...,Ek. Estos resultados son mutuamente exclusivos, en el sentido de que la ocurrencia de uno niega la existencia de cualquier otro. A cada evento se le asigna un valor numérico pi entre cero y uno. Este valor numérico se le conoce como la probabilidad P(Ei) de ese evento. Entonces pi es la probabilidad de que ocurra el evento Ei en una corrida del experimento. Dentro del marco del experimento se le asigna la probabilidad de cero a los eventos imposibles y la probabilidad de uno a los eventos que ocurrirán con entera certidumbre. De modo que, por exclusividad mutua de los eventos, en una corrida del experimento

P(EiEj)=0P(EiEj)=pi+pj donde el símbolo de intersección  denota el evento Ei

y Ej y el símbolo de unión indica el evento Ei o Ej.

Usando la propiedad aditiva de las probabilidades de eventos mutuamente exclusivos la probabilidad total del conjunto de eventos es

P(E1E2Ek)=p1++pk=1

Ahora se le asigna el valor numérico xi al i-ésimo resultado, donde, por conveniencia, los resultados se ordenan ascendentemente según sus valores xi. Se define entonces la variable aleatoria discreta X como la cantidad que toma el valor xi con probabilidad de pi en cada corrida del experimento. Por ejemplo, si el experimento consiste en lanzamientos de una moneda, el resultado "cara" puede tener una cierta probabilidad p1 y el resultado "cruz" puede tener una probabilidad p2. Esta variable aleatoria puede ser descrita entonces por una función de probabilidad f(xi) la cual especifica las probabilidades con las que la variable aleatoria X adquiere los valores de cara o cruz.

X f(xi)
cara p1
cruz p2

Se hace notar que siempre la suma de todas las probabilidades debe ser igual a uno y que implícitamente se le ha asignado una probabilidad de cero a eventos irrelevantes tales como la moneda cayendo al canto.

Las variables aleatorias que se verán más adelante tomarán valores sobre alguna región continua en lugar de hacerlo sobre un conjunto de eventos discretos y se les llamará variables aleatorias continuas, variantes continuas o simplemente variantes. Todos estos términos son sinónimos. La variable aleatoria continua X definida sobre el dominio de los números reales se caracteriza por su función de distribución

F(x)=P(Xx)<x<

la cual proporciona la probabilidad de que X sea menor o igual que algun valor de x en su dominio. Ya que X es continua, P(X=x)=0.

Si F(x) es una función absolutamente continua, la versión continua de la función discreta de probabilidad es la función de densidad

f(x)=dF(x)dx

Al mismo tiempo, por la propiedad de continuidad absoluta

F(x)=xf(u)du

y de esta definición se genera el término equivalente función acumulativa de distribución de F(x). Nótese que éstas definiciones son perfectamente generales: si la variable aleatoria se encuentra definida en algún intervalo de la recta de los números reales, fuera de ese intervalo f(x) es igual a cero, y F(x) es igual a cero y a uno a la izquierda y a la derecha del intervalo, respectivamente.

Cuando se consideran con respecto a su función de densidad f(x), los valores en el intervalo se definen como la población o el universo de la variable aleatoria X.

Las propiedades de una variable aleatoria se visualizan comúnmente en términos de su función de densidad. Los términos exponencial o rectangular se refieren a estas representaciones. La figura muestra las funciones de densidad de tres variables conocidas. Las funciones de distribución de las variables exponenciales y normales se obtienen integrando directamente. La función de distribución normal sólo se puede evaluar por integración numérica.

Las funciones de la figura involucran parametros que determinan sus posiciones y sus formas. Los parámetros 12(a+b) de la densidad rectangular y μ de la función normal son parámetros de ubicación porque sus valores especifican las posiciones de las densidades en el eje real. El intervalo ba de la variable rectangular, el parámetro exponencial β, y el parámetro σ de la densidad normal, son parámetros de escala porque cambios en sus valores equivalen a cambios en las unidades de las variables. Los incrementos en los valores de estos parámetros implican un mayor extendimiento de la función de densidad y por lo tanto más variación en la variable aleatoria. En general, si la densidad f(x;α,β) se puede expresar como

f(xαβ)

entonces α es un parámetro de ubicación y β es un parámetro de escala. Se hace notar que todas las funciones de densidad de esta forma contienen el factor 1/β asociado con el elemento diferencial dx.

Las variables aleatorias y sus densidades tienen una interpretación física: considérese la función de densidad f(x) de la variable aleatoria X como la función que define la densidad de una barra sólida que se encuentra posicionada en el eje de las x. El k-ésimo momento alrededor del origen es

μk'=xkf(x)dx

El primer momento es la media o el valor esperado

E(X)=xf(x)dx

de la variable aleatoria y corresponde al concepto físico del centro de gravedad de la vara. El símbolo E denota la operación de calcular el valor esperado, y se conoce como el operador de esperanza. Si c y k son cantidades no aleatorias, entonces podemos aseverar las siguientes propiedades de las esperanzas:

E(c)=cE(cX)=cE(X)E(k+cX)=k+cE(X)

Como ejemplo, considérese la función de densidad rectangular de la figura

Figura 1 - Funciones de Densidad Rectangular y Exponencial

. Por definición:

E(X)=1baabxdx=1ba12x2|ab=12(b+a)

Se puede intuir que el valor medio es el punto medio de los límites de la función de densidad, y si se desea, se puede reparametrizar la función de densidad en términos de la media como parámetro de ubicación y el intervalo w=ba como el parámetro de escala. Entonces, la nueva densidad será:

h(x)={0,<x<E(X)12w1w,E(X)12wxE(X)+12w0,E(X)+12w<x<

La varianza de una variable aleatoria es el valor esperado de las desviaciones cuadradas alrededor de la media, conocido también como el segundo momento central. Se denota la varianza de X como

var(X)

o también como σx2

Por definición

var(X)=[xE(X)]2f(x)dx=x2f(x)dx[E(X)]2=E(X2)[E(X)]2

y el simbolo var aplicado a cualquier variable aleatoria denotará el cálculo de la varianza. Si c y k son constantes, la varianza posee las siguientes propiedades:

var(c)=0var(cX)=c2var(X)var(X+c)=var(X)

La primera propiedad simplemente afirma que una variable no aleatoria tiene cero varianza. La naturaleza cuadrática de la varianza se encuentra reflejada en la segunda propiedad ya que un cambio de escala

c

altera la varianza en

c2

. El tercer resultado proviene de la definición y afirma que la varianza no se ve afectada al cambiar el origen en el eje de las

X

. Se puede demostrar que las varianzas de las funciones de densidad rectangular, exponencial, y normal

Figura 2 - Funciones de Densidad Rectangular, Exponencial, y Gaussiana

son

112(ba)2

,

β2

, y

σ2

respectivamente.

En muchas ocasiones es deseable tener una medida de dispersión que posea las mismas unidades de la variable. La desviación estándar de X es la raiz cuadrada positiva de la varianza:

σx=+var(X)

Hacemos notar que los parámetros naturales de la densidad normal en la Figura 2 son la media y la desviación estándar.

Variables Independientes

En las primeras partes de este capítulo nos referimos vagamente a las variables aleatorias "independientes". Ahora proporcionaremos una definición precisa de la independencia de variables. Como se verá en el Capitulo 3, se puede extender el concepto de distribución y de funciones de densidad a múltiples variables, y si se puede expresar la función de distribución conjunta de X1,,Xp como

F(x1,,xp)=xpx1f(u1,,up)du1dup

donde f(u1,,up) es la densidad conjunta, entonces las variables se dice que son independientes si y solo si

F(x1,,xp)=F1(x1)Fp(xp)

donde Fi(xi) es la función de distribución de la variable sencilla Xi. Alternativamente, la independencia es válida si y sólo si la factorización de

f(x1,,xp)=f1(x1)fp(xp)

de la densidad conjunta en el producto de las funciones individuales de densidad es válida.

El momento de productos

E(X1k1Xpkp)=x1k1xpkpf(x1,,xp)dx1dxp

de las variables X1,,Xp se factoriza como el producto

E(X1k1)E(Xpkp)

de los k momentos individuales si las variables son independientes. De este resultado se puede concluír que la varianza de la suma de variables aleatorias independientes es simplemente la suma de las varianzas individuales: var(X1++Xp)=var(X1)++var(Xp).

Variables Aleatorias Normales (Gaussianas)

En esta sección se describirán algunas propiedades de una sola variable aleatoria normal como preparación para los resultados y técnicas que se basarán en la distribución normal multivariable. Recuérdese que la función de densidad normal es

f(x)=12πσexp[12(xμσ)2]<x<

y que su función de distribución se encuentra dada por la integral

P(x)=12πσxexp[12(xμσ)2]dx=12π(xμ)/σexp(12u2)du=Φ(xμσ)

donde Φ(z) denota la función de distribución normal estándar con media igual a cero y varianza igual a uno. Se denotará la distribución de una variable normal por medio del llamado símbolo de Wilks: N(μ,σ2); la distribución estandar será indicada por N(0,1).

Los valores de Φ(z) se pueden encontrar fácilmente en cualquier tabla de funciones estadísticas. Por otro lado, el porcentaje 100α de la distribución normal unitaria se define como el valor zα tal que

α=P(Z>zα)=1Φ(zα)

Estas relaciones entre porcentajes y sus probabilidades se ilustran en la figura 3

Fig 3-Relaciones entre funciones de densidad y probabilidades

para la densidad normal y la función de distribución.

Ahora, permítasenos ofrecer la justificación donde mucha de la metodología estadística se basa para justificar la suposición de una población normal. Existe el llamado teorema del límite central el cual afirma que las variables aleatorias que son la suma de muchos efectos independientes tienden a encontrarse normalmente distribuídas a medida que el número de efectos va creciendo. Formalmente:

Si las variables aleatorias X1,,XN se encuentran distribuídas independientemente de acuerdo a alguna función común de distribución con media E(Xi)=μ y varianza finita var(Xi)=σ2, entonces a medida que el número de variantes N aumenta sin cotas, la variante
Z=i=1NXiNμNσ2
converge en su distribución a una variante normal con media cero y varianza igual a uno.

Se puede encontrar una demostración de ésta versión del teorema del límite central en cualquier texto de probabilidad o estadística matemática. Una consecuencia inmediata del teorema es que la función N(X¯μ) de la media de las muestras de una secuencia de variables aleatorias independientes

X¯=1N(Xi++XN)

cuya distribución común tiene media μ y varianza σ2 tiende a distribuírse como una variante de tipo N(0,σ2) a medida que N se vuelve más grande. Una y otra vez estaremos invocando una propiedad muy importante de la distribución normal: Si X1,,Xn son variantes independientes con distribuciones N(μ1,σ12),,N(μn,σn2) entonces la combinación lineal

Y=a1X1++anXn

también se encuentra normalmente distribuída con media i=1naiμi y varianza i=1nai2σi2. Veremos más adelante que este resultado se puede extender a una combinación lineal de variantes normales dependientes.

Nota: Muchas de las siguientes funciones hacen uso de la función gamma (Γ(x)). En el recuadro al final de esta sección se hace una breve presentación de esta función y sus propiedades.

La distribución ji cuadrada

Muchas distribuciones se pueden derivar a partir de diferentes transformaciones de un conjunto de variantes normalmente distribuídas. Una de las más importantes es la de la variante ji cuadrada. Si las variantes X1,,Xn son independientes y se encuentran normalmente distribuídas con media cero y varianza igual a uno, entonces

χ2=X12++Xn2

tiene la función de densidad

f(χ2)=2n/2Γ(n/2)(χ2)(n2)/2exp(12χ2)  0χ2<

y se dice que es una variante ji-cuadrada con n grados de libertad. Debido a que comenzamos con variantes normales estśndar, la densidad no contiene parámetros de ubicación o de escala sino sólo el parámetro n. Aún más, si las Xi se encuentran independientemente distribuídas como variantes N(μi,σi2), entonces la cantidad

i=1n(Xiμi)2σi2

tiene una distribucion ji-cuadrada con n grados de libertad, ya que cada término cuadrado en la suma ha sido normalizado con su media y su varianza. En el apéndice mostraremos una pequeña rutina en lenguaje R para obtener una tabla de los valores de la distribución ji-cuadrada con varios grados de libertad. Expresaremos el porcentaje 100α de la distribución ji-cuadrada con n grados de libertad como:

χα;n2

donde α=P(χ2>χα;n2).

La distribución t

La variable aleatoria t con n grados de libertad se define como el cociente

t=zχ2/n

de una variante normal estándar z y la raíz cuadrada de una variante ji cuadrada independiente dividida esta por sus n grados de libertad. La variable t es adimensional y su función de densidad

f(t)=Γ[(n+1)/2]πn Γ(n/2)1(1+t2/n)(n+1)/2<t<

depende solamente del parámetro de grados de libertad n. Veremos más adelante como generar valores de una distribución t con n grados de libertad usando el lenguaje R.

Se expresara el porcentaje 100α como tα;n o

α=P(t>tα;n)

La distribución F

El cociente

F=χ12/mχ22/n

de variantes ji-cuadradas independientes divididas por sus respectivos grados de libertad, tiene la distribución F o cociente de varianzas con función de densidad

f(F)=Γ[(m+n)/2)]Γ(m/2)Γ(n/2)(mn)m/2F(m2)/2(1+mnF)(m+n)/2 0F<

Se denotará el porcentaje superior 100α de la distribución F con m,n grados de libertad por medio de Fα;m,n:

α=P(F>Fα;m,n)

De la definición de la variante F se deduce que los puntos porcentuales inferiores se pueden obtener de los recíprocos de los valores superiores con los grados de libertad invertidos:

F1α;m,n=1Fα;m,n
Una Nota Breve Sobre la Funcion Γ(n): La función Γ(n) se define como una extensión de la función factorial a los números complejos y reales. La relación con la función factorial es:
Γ(n)=(n1)!
La función gamma se puede definir como una integral definida en R[z]>0 (La forma integral de Euler):
Γ(z)0tz1etdt
o también
Γ(z)=0et2t2z1dt.

Muestras Aleatorias y Estimación

Hasta este punto sólo se ha hablado de las variables aleatorias en función de su origen. Este origen son poblaciones abstractas las cuales se encuentran especificadas por su distribución o función de densidad. De vez en cuando estas funciones se les encuentra subyaciendo en algún fenómeno aleatorio, y entonces se puede crear una descripción del fenómeno a partir de su modelo matemático. Por lo general, lo que sucede realmente es que no se conocen ni la forma matemática de la distribuición ni sus parámetros. Entonces es necesario ir más alla de la teoría de la probabilidad y llegar al dominio de la inferencia estadística para obtener estimaciones de F(x) o de sus parámetros a partir de muestras finitas de valores de la variable aleatoria. En esta sección se considerará un enfoque heurístico [1] el cual lleva a obtener estimaciones con algunas propiedades requeridas.

Empecemos suponiendo que los valores de la variable aleatoria continua X pueden ser observados y registrados. Aún cuando este requisito pudiera parecer obvio, no siempre es posible observar directamente la variable de interés. Pueden interferir varios factores tales como limitaciones del equipo de medición, o el fenómeno bajo observación no expresa la variable en forma directamente medible. De cualquier modo, supondremos, para simplificar las cosas, que nuestros datos son observaciones de una población continua. Supondremos también que la expresión matemática de la función de densidad f(x;θ1,,θk) de X se sabe a partir de algunas suposiciones anteriores aunque no se sepan los valores de los parámetros θi.

Definamos ahora el espacio de parámetros de una densidad. Supongamos que la densidad depende de un sólo parámetro real θ, como en el caso de una exponencial descendente. Entonces el espacio de parámetros de θ es la porción del eje de los reales que contiene todos los valores permitidos de θ. En el caso de la exponencial descendente, el espacio de parámetros sería la parte positiva del eje de los reales, ya que los parámetros negativos anularían la propiedad de densidad, y un parámetro igual a cero convierte a la función en una constante. En el caso de una distribución normal con varianza conocida el espacio sería toda la recta de los reales. Extendiendo este razonamiento, el espacio de parámetros para una densidad de k parámetros sería alguna región del espacio euclideano en k dimensiones. Por ejemplo, el de una distribución normal sería la mitad superior del plano cartesiano con ejes (μ,σ2) (Fig.4).

Fig. 4 - Ejes del Espacio de Parámetros

Finalmente, se deben definir las unidades experimentales o unidades muestrales sobre las cuales se observaran los valores de X. Las unidades disponibles deben contener una coleccion homogénea con respecto a todas las características que puedan afectar los valores de la variable. Por ejemplo, si la variable aleatoria de interés es el nivel de triglicéridos en mujeres mexicanas adolescentes, entonces las unidades muestrales no deben incluír hombres, mujeres adultas, o niños de cualquier sexo. Las unidades muestrales deben ser independientes unas de las otras y no deben poseer cualidades comunes que puedan crear valores dependientes de X. Debido a que existe una abundante literatura sobre el tema de mediciones y muestreos no se abundará mas sobre el tema.

Supóngase ahora que se han seleccionado N unidades aleatoriamente. Sus valores observados de X se denotaran como x1,,xN. El primer problema es estimar los parametros θi a traves de una función apropiada de las observaciones. Tales estimaciones serán denotadas por un parámetro con capucha: θi^. Estas cantidades serán llamadas estimaciones puntuales, ya que son valores asignados de θ, a diferencia de los intervalos de estimación que se verán en la siguiente seccio}ón.

El problema de la estimación de parámetros no es trivial y lleva a una serie de consideraciones y cuestionamientos que hay que tomar en cuenta para la solucion del problema de estimación. Estas consideraciones se examinan a continuación:

  • Estimadores no sesgados. El valor esperado del estimador debe ser igual al parametro. E(θ^)=θ.
  • Consistencia. A medida que aumenta el tamaño de la muestra, θ^ debe converger a θ con mayor probabilidad.
  • Varianza minima. Muchas veces el estimador se escoge como aquel que posea la menor varianza de todos los estimadores no sesgados. Si no existe un estimador de varianza mínima para todos los tamaños de la muestra, es posible seleccionar entre diferentes estimadores a través del cociente de sus varianzas asintóticas. El estimador que tenga la mínima varianza relativa se le conoce como estimador eficiente.
  • Suficiencia. Se dice que un estimador θ^ es suficiente si contiene toda la información en las observaciones para estimar θ. Esto es, el conocimiento directo de los valores x1,,xN no proporcionará más información que la que contiene θ^. En términos matemáticos, la distribución conjunta de las xi para un valor fijo de θ^ no depende de θ.

Algunas Observaciones Sobre el Sesgo:

El sesgo es la pesadilla de un estadístico. Es fácil de crear y muy díficil de domar. En ocasiones es hasta imposible de controlar. 
La definición estadística de sesgo es la sobreestima o subestima sistemática del verdadero valor. En términos un poco más claros, quiere decir que los resultados siempre estarán 
"movidos" hacia un lado en una cierta cantidad. Por ejemplo, la balanza donde me peso en la oficina del médico, siempre reporta un peso que es dos kilogramos más de lo correcto 
(en serio). Este desplazamiento consistente de dos kilogramos adicionales representa una sobreestima del peso real.
Lo más importante que hay que recordar con respecto al sesgo, es que hay que prevenirlo, o al menos minimizarlo. El sesgo es como la maleza en un jardín. Una vez que se propaga, 
es muy difícil eliminarla. Por eso es mejor eliminarla desde un principio.

Ahora bien, en cada análisis los criterios mencionados arriba deben ser evaluados con respecto al costo de obtener las muestras, la velocidad de procesamiento de los datos, y las consecuencias que puedan resultar de sesgos pequeños o varianzas grandes sobre el resultado de los experimentos. Como se verá más adelante, algunas veces es posible reducir el sesgo a traves de un escalamiento del estimador o una redefinición. En muestras pequeñas la pérdida de eficiencia en algunos estimadores puede ser compensada por su facilidad de cómputo.

Vamos a examinar ahora un método para generar estimaciones conocido como el "método de máxima posibilidad". Este procedimiento es heurístico pero se puede demostrar que los estimadores obtenidos poseen las propiedades deseadas. Empezamos definiendo la función de posibilidad de la muestra aleatoria de observaciones como la densidad conjunta de las variantes de las unidades muestrales evaluadas en xi,,xN:

L(θ1,,θk)=i=1Nf(xi;θ1,,θk)

La función de posibilidad es una medida relativa de la posibilidad de la muestra en particular xi,,xN. El método de máxima posibilidad demanda que los estimadores de θi sean seleccionados de tal manera que maximizen la función para una muestra en particular. Si la función de posibilidad tiene un máximo relativo, esto se puede lograr derivando la función y resolviendo las ecuaciones correspondientes. El valor cero de la derivada es sólo una condición necesaria para un máximo relativo y las condiciones suficientes dadas por las derivadas parciales de segundo orden deben verificarse también. Debido a que en muchas de las posibilidades que se encuentran en la inferencia estadística contienen términos exponenciales, se usara el logaritmo natural de la función de posibilidad:

l(θi,,θk)=lnL(θ1,,θk)

Entonces, si la función de posibilidad tiene un máximo relativo, las estimaciones de θi se pueden encontrar resolviendo el sistema de k ecuaciones simultáneas

l(θ1,,θk)θj=0;  j=1,,k

para encontrar el valor de los estimadores θ1^,,θk^ Si las ecuaciones poseen raíces múltiples, será necesario escoger aquella que nos conduzca la máxima posibilidad.

Veamos dos ejemplos que describen los pasos a tomar para encontrar los estimadores de máxima posibilidad.

Ejemplo

Vamos a determinar los estimadores de máxima posibilidad de a y b para la densidad rectangular. La función de posibilidad de la muestra x1,,xN, es

L(a,b)=1(ba)N

Es evidente que a no puede ser menor que la observación más pequeña, y que b no puede ser mayor que la observación más grande. Si se denotan las observaciones ordenadas como x(1)x(N),

ax(1)x(N)b

La función de posibilidad adquiere su valor máximo cuando (ba) adquiere su valor m+inimo lo que es consistente con el segundo grupo de desigualdades, y las estimaciones que minimizan el intervalo son

a^=x(1)b^=x(N)

Ejemplo: La función de posibilidad de la muestra x1,,xN de N variables aleatorias normales independientes es

L(μ,σ2)=1(2π)N/2(σ2)N/2exp[12σ2i=1N(xiμ)2]

tomando el logaritmo

l(μ,σ2)=N2ln(2π)N2lnσ212σ2i=1N(xiμ)2

Las derivadas parciales con respecto a μ y σ2 son

l(μ,σ2)μ=1σ2i=1N(xiμ)
l(μ,σ2)σ2=N2σ2+12σ4i=1N(xiμ)2

Igualando a cero y cancelando factores, queda el siguiente sistema de ecuaciones simultáneas

i=1NxiNμ=0
i=1N(xiμ)2Nσ2=0

Despejar el estimador de μ primero, y luego usar ese valor para obtener la solución del estimador de σ2:

μ^=1Ni=1Nxi=x¯
σ^2=1Ni=1N(xix¯)2
=1N[1Ni=1Nxi21N(xi)2]

Estas estimaciones son intuitivamente plausibles, ya que la media de la población se estima a través de la media de la muestra x¯, y la estimación de la varianza es el promedio de la desviación cuadrada de la media.

Determinemos ahora si μ^ y σ^2 son estimadores insesgados. Reemplacemos las observaciones por las variables aleatorias X y tomemos las esperanzas:

E(μ^) =1Ni=1NE(Xi) =1Ni=1Nμ=μ

Esto significa que la media muestral es un estimador insesgado de μ. El calcular la esperanza de σ^2 involucra un poco más de cómputo:

E(σ^2)
=1NE[1Ni=1NXi21N(Xi)2]
=1N[NE(Xi2)1NE(i=1Nj=1NXiXj)]
=1N[NE(Xi2)E(Xi2)1NE(XiXj)]
=1N{(N1)E(Xi2)1NN(N1)[E(Xi)]2}
=N1Nσ2

Entonces σ^2 no es un estimador insesgado de la varianza. Sin embargo, si reemplazamos el divisor N en la fórmula original por N1, se eliminará el sesgo y se obtendrá la conocida formula de la varianza de la muestra

s2=1N1[i=1Nxi21N(xi)2].

Por lo tanto, los estimadores de máxima posibilidad no son necesariamente insesgados, aunque a veces es posible corregir el sesgo multiplicándolos por un factor apropiado. Tales estimadores por lo general no tienen varianza mínima. Sin embargo, se puede demostrar que todos los estimadores de posibilidad máxima son consistentes y que sus distribuciones asintóticas son normales con parametros conocidos.

Pruebas de Hipótesis para los Parámetros de Poblaciones Normales

Pruebas Estadísticas de Hipótesis.

La inferencia estadística puede dividirse en dos áreas generales: 1) La estimación de funciones de distribución, los parámetros de tales funciones cuando se conoce su formulación matemática, o los parámetros de modelos creados alrededor de variables aleatorias; 2) El problema de probar la validez de hipótesis sobre las funciones de distribución y sus parámetros o los componentes de modelos matemáticos. En las sección anterior se estudió brevemente un aspecto de la estimación usando el principio de posibilidad máxima. Ahora se resumirán algunos principios esenciales de las pruebas de hipótesis, y posteriormente veremos como estas pruebas se pueden invertir para proporcionar intervalos de estimación de parámetros.

Quizás un ejemplo sencillo ayudará a comprender el problema de las pruebas de hipótesis en términos de las regiones del espacio de parámetros. Se sabe por experiencias pasadas que el promedio de calificaciones de los estudiantes de primer semestre en cierta universidad canadiense tienden a hallarse normalmente distribuído con media igual a 2.43 y varianza 0.04 (en algunos países las calificaciones van de 0 a 4 con incrementos decimales). Sin embargo, en este ultimo año escolar, los requisitos de entrada se hicieron más estrictos, y se presentó la hipótesis de que la calificiacion media de la población estudiantil entrante será más alta y la varianza más pequeña. Estas afirmaciones sobre los parámetros poblacionales se pueden resumir de la siguiente manera:

Hipótesis original: μ=2.43 σ2=0.04
Hipotesis alternativa: μ>2.43 σ2<0.04

'

Le llamaremos a la descripción original de la población como la 'hipótesis nula; ésta se denota normalmente como H0. La hipótesis alternativa será denotada como H1. Se supondrá también que la población se encuentra normalmente distribuída, pero por lo general se asume por omisión. H0 se refiere al punto (2.43, 0.04) en el espacio de parámetros y se le conoce como una hipótesis sencilla. La hipótesis alternativa se refiere a la región sombreada de la figura 5; y ya que ese conjunto contiene mas de un punto, H1 se conoce como una hipótesis compuesta. Un conjunto importante de hipótesis compuestas se forma por aquellos enunciados donde los valores de uno o más parámetros son completamente desconocidos. Por ejemplo, si la variable aleatoria X se encuentra normalmente distribuída con varianza desconocida, las hipótesis

H0:μ=μ0

y

H1:μ=μ1>μ0

que sólo abarcan la media, se interpretarían como líneas verticales en el espacio de la figura 4 cortando al eje de las μ en μ0 y en μ1. Habría entonces que desarrollar pruebas estadísticas para tal hipótesis de tal forma que no se afectaran por el valor desconocido de σ2.

Fig. 5

A través del desarrollo de la Estadística, el objetivo de la teoría de inferencias estadísticas ha sido el desarrollar pruebas para la validez de estas hipótesis basadas en observaciones muestrales. Para el caso mas general, sea X una variable aleatoria continua con los números reales como su dominio, y su función de densidad depende de los parámetros θ1,,θk. El espacio muestral W de todos los resultados posibles de N observaciones en X ser el espacio N-dimensional euclideano. Una muestra particular de observaciones se expresará en forma de vector como [x1,,xN] y denotará un punto en el espacio muestral. Sean ω1 y ω2 dos regiones disjuntas en el espacio de parámetros Ω, y se proponen las siguientes hipótesis sobre los parámetros de la distribución de X.

H0:[θ1,,θk]se encuentra contenida en ω1
H1:[θ1,,θk]se encuentra contenida en ω2

Basándonos en las observaciones muestrales deseamos decidir en alguna forma "óptima" cuál de las dos hipótesis es la más viable. Debido a que ciertos conjuntos de observaciones nos llevarían a favorecer H0 sobre H1 y otros conjuntos apoyarían la alternativa, la regla de decisión debe tener la siguiente forma:

Aceptar H0 si [x1,,xN]cae en Ww
Aceptar H1 si [x1,,xN]cae en w

donde w es una parte en particular del espacio muestral llamada región crítica o región de rechazo de H0. Si el verdadero estado de la naturaleza se encuentra descrito por H0 o H1, el tomador de decisiones puede incurrir en dos tipos de error al aplicar la regla de decisión. Un error del primer tipo, o error Tipo I, consiste en declarar H1 como verdadera cuando en realidad H0 es la correcta. Un error del segundo tipo, o error Tipo II se comete cuando se toma H0 como verdadera cuando es H1 la que describe el verdadero estado de la naturaleza. Resumimos los resultados de las acciones anteriores en la siguiente tabla:

Estado de la naturaleza
Decisión H0 verdadera H1 verdadera
Se acepta H0 Correcto Error Tipo II
Se acepta H1 Error Tipo I Correcto

Las probabilidades de los errores de Tipo I y de Tipo II proporcionan medidas de la eficacia de la regla de decisión. La probabilidad α de un error de Tipo I es la probabilidad de que las observaciones muestrales se encuentren en la región crítica w cuando H0 es verdadera, o lo mismo que

α=P([x1,,xN]w|H0 es verdadera)

donde el símbolo denota la inclusión en el conjunto w y la barra vertical indica que el enunciado de probabilidad esta condicionado a la certeza de la hipótesis nula. El símbolo α se conoce como el tamaño de la prueba. La probabilidad de un error del Tipo II es

β=P([x1,,xN]Ww|H1 es verdadera)

El complemento 1β de la probabilidad del segundo error se conoce como la potencia de la prueba o la regla de decisión. Si la potencia se calcula para un continuo de valores de los parámetros, las probabilidades resultantes constituyen la función de potencia.

Si el tamaño de la muestra es fijo, los cambios en la forma de la región crítica que reduzcan α también aumentarán β. Al mismo tiempo, un aumento de α resultará en una reducción de β. El enfoque clásico de las pruebas de hipótesis requiere una prueba con α fijo cuya región de rechazo se elige de tal manera que minimize β, o que maximize la potencia. Si ambas hipótesis son sencillas, esto es, tienen la forma

θ1=θ10 θ1=θ11
H0: H1:
θk=θk0 θk=θk1

entonces el lema de Neyman-Pearson afirma que la prueba más poderosa con tamaño α tendrá una región crítica definida por la siguiente regla de decisión:

Aceptar H0 si  λ=f(x1;θ10,,θk0)f(xN;θ10,,θk0)f(x1;θ11,,θk1)f(xN;θ11,,θk1)>c

y

Aceptar H1 si  λ<c

donde c es una constante tal que

P(λ<c)=α

El lema define la región crítica como aquel conjunto de puntos en el espacio de muestras para el cual el cociente de posibilidad λ es menor que c.

Nótese que el lema de Neyman-Pearson requiere que ambas hipótesis sean simples, esto es, que las regiones ω1 y ω2 del espacio de parámetros sean puntos. Las pruebas de hipótesis compuestas que involucren varios parámetros pueden ser construídas usando el poderoso criterio generalizado del cociente de posibilidad:

λ=L(ω^)L(Ω^)

donde

L(Ω^)=f(x1;θ^10,,θ^k0)f(xN;θ^10,,θ^k0)

es la función de posibilidad maximizada bajo la suposición de que

H0:[θ1,,θk]ω

es cierta, y que L(Ω^) es la posibilidad maximizada con θ1,,θk la cual se permite tomar valores a través del todo el espacio de parámetros Ω. Aceptamos H0 si λ>c y si no, se acepta la alternativa

H1:[θ1,,θk]Ωω

La constante c se escoge de tal forma que P(λ<c|H0 es verdadera)α. Tal como en el caso de las hipótesis compuestas, cuando el verdadero tamaño de la prueba es realmente menor o igual a α, entonces decimos que la prueba es de nivel α. Se puede demostrar que si H0 es verdadera, la variante

χ2=2lnλ

tiende a encontrarse distribuída en forma ji-cuadrada a medida que aumenta el tamaño de la muestra con un número de grados de libertad igual a la diferencia de dimensiones entre el espacio de parámetros Ω y el subespacio de la hipótesis nula ω, o lo que es mismo, el número de parámetros determinados por H0.

Pruebas de la Media de una Variante Normal con Varianza Conocida

Sea x1,,xN una muestra de observaciones independientes de la variable aleatoria con distribución N(μ,σ2). La varianza σ2 es conocida aunque μ no. Basándonos sobre las observaciones muestrales deseamos probar la hipótesis

H0:μ=μ0

de que la media poblacional tiene un cierto valor determinado μ0 contra la hipótesis alternativa:

H1:μ=μ1>μ0

que la media es de un valor mayor μ1. Usando el lema de Neyman-Pearson la prueba mas poderosa de tamaño α se basa en la estadística de prueba:

z=(x¯μ0)Nσ

cuya region crítica es

z>zα

donde zα es el punto que divide el 100α% superior del resto de la distribucion normal unitaria N(0,1). En términos de la media de las observaciones originales debemos rechazar H0 en favor de H1 si

x¯>μ0+σNzα

y si no, entonces aceptar la hipótesis nula. Si la hipotesis alternativa hubiera sido

H1:μ=μ1<μ0

entonces la misma estadística de prueba hubiera sido empleada, aunque la región crítica hubiera sido

z<zα

o, equivalentemente

x¯<μ0σNzα

Las pruebas anteriores y las hipótesis alternativas H1,H'1 se conocen como hipótesis unilaterales, debido a que se indica claramente la dirección del cambio de μ0 a μ1. En la medida en que es posible hacer tales predicciones tomando en cuenta el contexto o por previas investigaciones, la potencia de las pruebas será considerablemente mayor que la de las pruebas bilaterales las cuales tienen la hipótesis alternativa:

H1':μ=μ1μ0

lo cual permite mayores o menores valores alternativos de la media. La estadística de prueba sigue siendo , pero la región de rechazo para una prueba de tamaño α es de

|z|>zα/2

donde zα/2 es el punto que divide el 50α% superior del resto de la distribución normal unitaria. Equivalentemente, se rechaza H0 si

x¯>μ0+σNzα/2óx¯<μ0σNzα/2

son satisfechas.

Las curvas de potencia para las pruebas contra las tres alternativas pueden ser construídas a partir de tablas de la distribución normal, y ya que pueden ser encontradas en muchos textos de estadística, se dejará como ejercicio para la práctica del lenguaje R. En la práctica uno selecciona un valor apropiado de α y una o más probabilidades β que sean tolerables. El tamaño de la muestra N se escoge entonces para lograr que la β mínima sea consistente con las limitaciones del presupuesto o el laboratorio.

Finalmente, se hace notar que la función de densidad normal es un miembro de la familia exponencial mencionada anteriormente en esta sección, y por lo tanto las pruebas de hipótesis compuestas tales como

H0:μ=μ0H1:μ>μ0

o

H0:μ<μ0H1:μ>μ0

son las más poderosas uniformemente.

Pruebas de Medias Cuando se Desconoce la Varianza

En muchas aplicaciones, tanto científicas, tecnológicas, financieras o de otro tipo, no es común que se conozca la varianza de la población por adelantado. Se logró un avance importante en la inferencia estadística cuando W.S. Gosset (en un artículo publicado bajo el seudónimo de "Student") obtuvo la distribución de la estadística de prueba para hipótesis compuestas sobre la media de una distribución normal con varianza desconocida. El criterio generalizado del cociente de posibilidades para probar la hipótesis contra la hipótesis alternativa basándose en N observaciones independientes x1,,xN con media x¯ y varianza s2 lleva a la estadística de prueba

t=(x¯μ0)Ns

Si H0 es verdadera, t tiene la distribución Student-Fisher con N1 grados de libertad y rechazamos la hipótesis nula en una prueba con tamaño α si

t>tα;N1

donde tα;N1 es el punto que separa el 100α% superior de la distribución t definida en la sección anterior. De la misma forma, si la hipótesis alternativa hubiera sido H1', la región de rechazo estaria definida por

t<tα;N1

y para la alternativa bilateral, \ref{H1biprime} la hipótesis nula será rechazada si

|t|>tα/2;N1

La potencia de las pruebas que involucran la estadística t se puede calcular de la rutina Pearson-Hartley con ν1=1 y ν2=N1 grados de libertad y parametro de descentralidad

ϕ=|μμ0|σ(N2)1/2

Entonces se puede determinar, dado un α fijo, un tamanño de muestra que garantizará una probabilidad de potencia por encima de un mínimo especificado.

Ahora considérese que dos muestras independientes se han tomado de poblaciones normalmente distribuídas con una varianza común de σ2 pero con medias posiblemente distintas μ1 y μ2. Denótense las observaciones de las muestras como x1,,xN1,y1,,yN2. Entonces el criterio generalizado del cociente de posibilidades para la prueba de hipótesis

H0:μ1=μ2

de medias poblacionales iguales contra la alternativa

H1:μ1>μ2 

lleva a la estadística de prueba

t=x¯y¯i=1N1(xix¯)2+i=1N2(yiy¯)2N1+N22(1N1+1N2)

Para una prueba con tamaño α se rechaza H0 en favor de H1 si

t>tα;N1+N22

Las regiones de rechazo para las otras hipótesis alternativas H'1:μ1<μ2 y H'1:μ1μ2 son similares a \ref{Trej1} y a \ref{Trej2} de las pruebas con una sola muestra.

Intervalos de Confianza para Medias.

La investigadora que ha llevado a cabo un experimento costoso o complejo, rara vez se siente satisfecha al escuchar que sus observaciones han rechazado tal o cual hipótesis. Si los hallazgos muestran que el nuevo medicamento o el nuevo tratamiento tiene algún efecto significativo mas allá del efecto placebo o de las normas anteriores, la investigadora y la comunidad científica no solo preferirían saber la mejor estimación de la magnitud del efecto sino también un intervalo de valores razonables del parámetro de interés. Tales aseveraciones de los posibles valores se conocen como intervalos de confianza o, a diferencia de las estimaciones puntuales de la Sección 1.4, estimaciones de intervalo.

Supóngase que una muestra aleatoria de N observaciones ha sido tomada de alguna población con densidad continua f(x;θ). El intervalo de confianza del 100(1α)% para θ es aquel conjunto de valores

t1<θ<t2

cuyos límites fueron calculados a partir de los puntos porcentuales de la función de distribución de la estimación θ^ de θ tal que

P(t1θt2)=1α

donde α generalmente toma el valor 0.05 o alguna probabilidad más pequeña. 1α se conoce como el coeficiente de confianza del intervalo. Es esencial que el enunciado de probabilidad sea interpretado como "la probabilidad de que el intervalo con extremos t1,t2 contenga a θ es de 1α" ya que en este contexto el parámetro no es una variable aleatoria. También hacemos notar que existe un número infinito de intervalos de confianza que satisfacen \ref{ConfiNt}; en muchos casos se eligirán t1 y t2 de tal manera que la longitud de t2t1 sea la más corta.

Los intervalos de confianza para la media de una población normal o la diferencia de las medias de dos poblaciones normales se puede deducir de las anteriores pruebas de hipótesis. Si se han tomado N observaciones independientes con media x¯ de la variante N(μ,σ2) con varianza conocida, H0:μ=μ0 se rechaza en favor de

H1:μ=μ1>μ0

usando la prueba de tamaño α1 cuando el valor de μ0 está dado por

μ0=x¯σNzα1

De la misma forma, el valor más grande de μ0 para el cual, usando una prueba con tamaño αα1, H0 es rechazada en favor de H'1 cuando H'1:μ=μ1<μ0, entonces ese valor de μ0 será

μ0=x¯+σNzαα1

Donde zα1y zαα1 son los porcentajes superiores 100α1 y 100(αα1) de la distribución normal unitaria. Entonces el intervalo de confianza del 100(1α) por ciento para μ es

x¯σNzα1μx¯+σNzαα1

y su longitud es de (σ/N)(zα1+zαα1). Pero se puede demostrar que la longitud mínima se obtiene cuando

zα1=zαα1 

o si

α1=12α. 

Entonces el intervalo más corto con coeficiente 1α tiene la forma simétrica

x¯σNzα/2μx¯+σNzα/2

De la misma forma, si σ2 no es conocida, el intervalo de confianza del 100(1α) por ciento para μ está dado por

x¯sNtα/2;N1μx¯+sNtα/2;N1

donde s es la desviación estándar de la muestra, y tα/2;N1 es el 50α% superior de la distribución t con N1 grados de libertad.

Muchas veces es necesario obtener un intervalo de confianza para la diferencia de medias de dos poblaciones normales con una varianza común aunque desconocida. Las observaciones de la primera población quizá fueron obtenidas como control para aquellas en la segunda muestra que fueron obtenidas bajo un nuevo tratamiento o condición experimental. Bajo las suposiciones de normalidad y varianza común, el intervalo de confianza del 100(1α) por ciento para el cambio atribuible a la condición experimental es

x¯y¯sx¯y¯tα/2;N1+N22μ1μ2x¯y¯+sx¯y¯tα/2;N1+N22

donde x¯ y y¯ son las medias de la primera y segunda muestras compuestas de N1 y N2 observaciones y

sx¯y¯=(xix¯)2+(yiy¯)2N1+N2+2(1N1+1N2)

es la estimación muestral de la desviación estándar de la diferencia de medias.

Pruebas e Intervalos de Confianza para la Varianza

Las pruebas multivariables y declaraciones de confianza de los siguientes capitulos generalmente se van a aplicar a las medias y a otros parámetros de ubicación. Sin embargo, para efectos de integridad, veremos brevemente algunas hipótesis e intervalos de estimación de la varianza de una población normalmente distribuída. Si las observaciones x1,,xN constituyen una muestra aleatoria de N(μ,σ2), entonces la cantidad

(N1)s2σ2=i=1N(xix¯)2σ2 

se encuentra distribuida como una variante ji-cuadrada con N1 grados de libertad. El criterio generalizado del cociente de posibilidad para la prueba de la hipótesis

H0:σ2=σ02 

contra la hipótesis alternativa

H1:σ2>σ02 

especifica que la región de rechazo para una prueba de tamaño α es

(N1)s2σ02>χα;N12 

donde χα;N12 es el 100α porciento superior de la distribución ji-cuadrada con N1 grados de libertad. De la misma forma, las regiones de rechazo para probar la hipótesis nula contra las alternativas H'1:σ2<σ02 y H'1:σ2σ02 sería

(N1)s2σ02<χ1α;N12 

y

(N1)s2σ02<χ1α;N12o(N1)s2σ02>χα2;N12 

respectivamente, donde en el segundo caso α1+α2=α. Estrictamente hablando, α1 y α2 deben elegirse de tal forma que la prueba sea insesgada, esto es, su función de potencia no debe ser menor que su tamaño α, pero para muchas aplicaciones con muestras grandes es válido partir α en dos partes iguales. Los intervalos de confianza para σ2 se pueden obtener directamente de la región de rechazo \ref{RejChi} como se demostrará más adelante.

Si las muestras independientes de N1 y N2 observaciones se han tomado aleatoriamente de las poblaciones N(μ1,σ12) y N(μ2,σ22), entonces la hipótesis

H0:σ2=σ02 

se puede probar contra la hipótesis alternativa

H1:σ2>σ02 

por medio de la estadística

F=s12s22 

Si la hipótesis nula es verdadera, la estadística tiene una distribución F con N11,N21 grados de libertad. La región de rechazo para una prueba de tamano α es

F>Fα;N11,N21 

Por otro lado, H0 se puede probar contra la otra hipótesis alternativa H'1:σ12<σ22 por medio de la estadística

F=s22s12 

cuya region crítica es

F>Fα1;N11,N21  o  F<1Fα2;N11,N21 

donde la repartición α1=α2=12α será suficiente.

Pruebas de Igualdad de Medias: Análisis de Varianza

Presentaremos ahora el ejemplo más sencillo del modelo lineal general que es la base del diseño experimental estadístico. La teoría de estimación y pruebas de hipótesis en modelos lineales de una sola variable ha sido discutida ampliamente en la literatura y mientras que no se presentará aquí en su totalidad, algunas partes del tema son de particular importancia para el trasfondo teórico de esta sección y servirán como una introducción al tratamiento de modelos multivariables en el capítulo correspondiente

Supóngase que se sabe que cierto compuesto bioquímico es absorbido por el cerebro aunque existe cierta evidencia que la cantidad de la sustancia por gramo de tejido cerebral parece diferir entre las cinco cepas de ratones usados en un laboratorio. Se supondrá que las cantidades relativas extraídas de los ratones sacrificados se encuentran normalmente distribuídas con la misma varianza σ2 en cada cepa. Sea μj la media poblacional para la j-ésima cepa. Es posible entonces construir una prueba de

H0:μ1==μ5 

contra la hipótesis alternativa de que algunas medias son distintas usando el criterio generalizado del cociente de posibilidad. Aun mas, si H0 es rechazada, se pueden obtener métodos para llevar a cabo pruebas simultáneas sobre las diferencias entre las medias con una probabilidad fija de error Tipo I para todas las comparaciones.

En el caso general de k cepas, tratamientos, categorías de diagnóstico, o condiciones experimentales empezamos postulando que la i-ésima observación del j-ésimo tratamiento (tratamiento es el nombre que en general se le da a la característica que distingue a los k grupos) se puede expresar por medio del modelo matemático

xij=μ+τj+eij  i=1,,Nj,j=1,,k. 

donde

μ=parámetro de ubicación común a todas las observacionesτj=efecto del j-ésimo tratamientoeij=variable aleatoria normalmente distribuída con media igual a cero y varianzaσ2

Los términos variantes eij se encuentran distribuídos independientemente unos de otros. El modelo se dice que es lineal o aditivo, ya que la aplicación del j-ésimo tratamiento aumenta μ en la cantidad τj, y la perturbación aleatoria también agrega o sustrae algo de los parámetros. Hacemos notar que, en una versión sencilla del ejemplo inicial, μjμ+τj. La hipótesis de los efectos equivalentes del tratamiento se puede expresar como

H0:τ1==τk 

y se tomará como la alternativa a H0 el modelo general \ref{GenModel} para las observaciones.

Este modelo se dice que tiene efectos fijos, ya que los μj son parámetros y cualquier inferencia a partir de las observaciones sólo se puede hacer con respecto a los k tratamientos en el estudio. Si los tratamientos constituyen una muestra aleatoria de una población mayor (técnicos de laboratorio, experimentos realizados en distintos dias, etc.) entonces los efectos del tratamiento serían una variable aleatoria en sí mismos y se tendría que tomar un enfoque distinto para llevar a cabo el análisis. Esta distinción entre los modelos fijos y aleatorios de análisis de varianza fue hecha por primera vez por Eisenhart (1947) y ha sido desarrollada extensamente por otros autores en el area de diseño de experimentos. Más adelante se usaran técnicas multivariables para el análisis exacto del modelo mixto para un número fijo de tratamientos aplicados repetidamente a cada miembro de una muestra aleatoria de unidades experimentales.

Las observaciones se pueden ordenar como se muestra en la siguiente tabla

x11 x1k
xN11 xNkk

Denótese el total de las observaciones para el j-ësimo tratamiento como

Tj=i=1Njxij 

y se denotará la media de ese tratamiento como x¯j=Tj/Nj. La suma de todas las observaciones será denotada por

G=T1++Tk 

el número total de unidades experimentales por

N=N1++Nk 

y la media general por x¯=G/N. Expresamos entonces la suma total de los cuadrados

S=j=1ki=1Nj(xijx¯)2=j=1ki=1Njxij2G2N

como la suma dos componentes independientes

S=SST+SSE

donde

SST=j=1kNj(TjNjx¯)2=j=1kTj2NjG2N

y

SSE=j=1ki=1Nj(xijx¯j)2=j=1ki=1Njxij2j=1kTj2Nj
Fuente Suma de cuadrados Grados de Libertad Cuadrado Medio
Tratamiento SST k1 SSTk1
Intra-tratamiento SSE Nk SSENk
Total S N1

Estos componentes se pueden resumir en la tabla de análisis de varianza mostrada en la tabla de arriba. La estadística para la prueba del cociente de posibilidad de H0 es

F=Nkk1SSESST 

y, cuando H0 es verdadera, SST/(k1)σ2, SSE/(Nk)σ2 son variantes independientes con distribucion ji-cuadrada con k1 y Nk grados de libertad, respectivamente. Entonces la estadística de prueba tiene una distribución F con k1 y Nk grados de libertad. Rechazamos H0 con una prueba de nivel α si

F>Fα;k1,Nk 

La función de potencia para esta prueba de análisis de varianza se puede calcular a partir de la distribución F no central Pearson-Hartley. Los grados de libertad son ν1=k1 y ν2=Nk, y el parámetro de no centralidad que mide la desviación de la hipótesis nula \ref{H0detau} de las medias poblacionales de los tratamientos es

ϕ=j=1kNj(τjNjτjN)2σk 

o, como en el caso de muestras con tratamientos equivalentes que lo que generalmente se encuentra en problemas de diseño experimental

ϕ=Njj=1kτj2σk 

En esta última expresión, el término de corrección ha desaparecido de la habitual restricción τ1++τk=0 que se impone sobre los efectos del tratamiento. El parámetro ϕ y las gráficas de Pearson-Hartley se usan normalmente para seleccionar tamaños de muestras.

Comparaciones de Tratamientos Múltiples.

Un análisis de varianza que ha resultado en el rechazo de la hipótesis de efectos equivalentes del tratamiento no indica cuáles de esos efectos pueden ser iguales o cuales son diferentes. Este es el problema de comparaciones múltiples, o inferencias simultáneas sobre los miembros de alguna familia de hipótesis. La pruebas se construyen de tal forma que la probabilidad de error Tipo I para toda la familia será a lo mucho α. Dos métodos serán necesarios en los siguientes capítulos, y los presentaremos a continuación en el contexto del análisis de varianza de una vía.

La primera técnica se debe a Scheffé. Defínase un contraste de parámetros llamado τj del modelo de una vía como cualquier función lineal

j=1kcjτj 

cuyos coeficientes tienen la propiedad de

j=1kcj=0 

Por lo tanto τ1τ2 y 3τ1+(τ2+τ3+τ4) son contrastes mientras que τ2(τ3+τ4) no lo son. En el caso particular del modelo de análisis de varianza de una vía, Scheffé ha demostrado que los intervalos simultáneos de confianza con coeficiente conjunto 1α para todos los contrastes τj tienen la forma

cjx¯js(k1)Fα;k1,Nkcj2Njcjτjcjx¯j+s(k1)Fα;k1,Nkcj2Nj 

donde todas las sumas son sobre los k tratamientos. cjx¯j es la estimación muestral del contraste cjτj y

s=SSENk 

Nótese que s2+cj2Nj es la estimación de la varianza del contraste estimado. Aceptamos la hipótesis nula

H0:j=1kcjτj=0 

al nivel α si el intervalo simultáneo de confianza para ese contraste incluye el valor cero. Si, por otro lado

cjx¯j>s(k1)Fα;k1,Nkcj2Nj 

o

cjx¯j<s(k1)Fα;k1,Nkcj2Nj 

rechazamos H0 en favor de la hipótesis alternativa unilateral H1:cjτj>0 o H'1:cjτj<0. El nivel conjunto de todas las pruebas es de α.

La segunda técnica de comparación múltiple se conoce como el método de Bonferroni ya que se encuentra basada en una desigualdad con ese nombre. Para este procedimiento empezamos enfocándonos en una familia de m declaraciones de intervalos de confianza H1,,Hm de los parámetros del modelo lineal. La probabilidad de que Hi sea una declaración verdadera (esto es, que Hi contenga el valor de la i-ésima función paramétrica) es igual a P(Hi) y la probabilidad de que todas las declaraciones sean correctas simultáneamente es de P(H1Hm), donde la notación de intersección HiHj denota el evento donde ambos Hi y Hj son verdaderos. Esta probabilidad es el coeficiente simultáneo de confianza para la familia completa de intervalos, y nos gustaría que al menos fuera igual a algún valor especificado 1α, donde α será conocida como la proporción de error para la familia de declaraciones. El cálculo de la probabilidad conjunta muchas veces es difícil para problemas prácticos y su valor depende de algunos "parámetros de molestia" que miden las intercorrelaciones de las declaraciones Hi. En lugar de calcular esta probabiliad, debemos contentarnos con la siguiente cota inferior:

P(H1Hm)1i=1mP(H¯i). 

donde P(H¯i)=1P(Hi) es la probabilidad de que la i-ésima declaración individual no sea verdadera. La cota es un ejemplo sencillo de las desigualdades de Bonferroni. Para un conjunto de m intervalos de confianza simultáneos, por lo general se le asigna a cada declaración una proporción de error de α, de tal manera que el coeficiente para toda la familia es de al menos 1α.

Los intervalos de confianza de Bonferroni sobre m contrastes dados

ψi=j=1kcijτji=1,,m 

de los parámetros del modelo lineal de una vía son

j=1kcijx¯jtα/(2m);Nksj=1kcij2NjΨij=1kcijx¯j+tα/(2m);Nksj=1kcij2Nj 

La regla de decisión para probar H0:Ψi=0 es equivalente a aquella para el metodo de Scheffe: si (\ref{Bonf01}) no incluye el valor cero, se rechaza H0. Para todas las comparaciones apareadas de los tratamientos, m=12k(k1), mientras que para comparaciones sucesivas (suponiendo que hubo algun ordenamiento a priori), m=k1. Si m es pequeña los intervalos de Bonferroni pueden ser en promedio mas estrechos que los de la técnica de Scheffé, aun cuando el verdadero coeficiente de confianza de la familia es mayor que su valor nominal 1α. Para valores de m muy grandes, los intervalos de Bonferroni son imprácticamente grandes.

Ejemplo 3: En una evaluación preliminar de tres medicamentos antidepresivos, las condiciones del experimento decretaron que cada sujeto participante podía recibir solo un medicamento. Dieciocho pacientes con diagnósticos similares fueron calificados en su nivel de angustia usando una escala de cero a siete y se tomaron tres grupos de seis aleatoriamente. A cada grupo se le administró uno de los tres medicamentos, y despues de tres días los pacientes fueron calificados de nuevo usando la misma escala. Estos fueron los cambios en los niveles de angustia:

A B C
4 0 1
5 2 0
3 1 0
3 2 1
4 2 2
2 2 2
Media 3.5 1.5 1.0

Las sumas pertinentes son

T1=21T2=9T3=6G=36j=13i=16xij2=106

La suma de cuadrados debida a los medicamentos es

SST=16(212+92+62)36218=21

y la suma total de cuadrados es S=10672=34. Los valores se resumen en la tabla de análisis de varianza:

Fuente Suma de cuadrados Grados de libertad Media cuadrada F
Medicamentos 21 2 10.5 12.1
Entre Medicamentos 12 15 0.867
Total 34 17

Ya que F0.01;2,15=6.36 concluímos que la hip[otesis de efectos equivalentes del medicamento no es válida al nivel del uno por ciento. Consultando las tablas de la distribución F observamos que la F excede el valor crítico para α=0.001

Ahora usaremos el procedimiento de comparaciones múltiples de Scheffé para determinar cuáles medicamentos son los distintos. Se elige un coeficiente simultáneo de confianza de 0.99 y asi:

(k1)F0.01;2.15=3.567

Primero compárense los medicamentos B y C calculando el intervalo de confianza para τ2τ3. Aqui c1=0,c2=1,c3=1 y la desviación estándar estimada de la población x2¯x3¯ es de

0.867(16+16)=0.5376

El intervalo de confianza es 1.42τ1τ22.42 y ya que esto cubre el valor cero con facilidad, podemos concluír que la hipótesis de efectos equivalentes de los medicamentos B y C no puede ser rechazada al nivel 0.01 de confianza.

De la misma forma, el intervalo simultáneo de confianza para el efecto de la diferencia entre A y B es

0.08τ1τ23.92

y es posible aceptar la hipótesis alternativa

H1:τ1>τ2

al nivel 0.01. También será interesante determinar si el medicamento A es distinto del efecto promedio de los medicamentos B y C. Aqui c1=1, c2=12, c3=12 y la desviación estándar estimada de ese contraste es

0.867(16+16+124)=0.4653

La estimación del contraste es de 2.25, y el intervalo de confianza es de

0.59τ112(τ2+τ3)3.91

El medicamento A parece ser distinto de los demas medicamentos restantes que acabaron siendo esencialmente los mismos.

Los intervalos de confianza de Bonferroni para los contrastes apareados con coeficiente de confianza del 0.99 son

0.13 τ1τ2 3.87
-1.37 τ2τ3 2.37
0.63 τ1τ3 4.37

Introducción al lenguaje R

¿Qué es R?

El sistema R para cómputos estadísticos es un ambiente para análisis de datos y gráficos. El origen de R es el lenguaje S el cual fue desarrollado por John Chambers y sus colegas en los laboratorios Bell por la década de los 1960s. El lenguaje S fue diseñado y desarrollado como un lenguaje de programación para análisis de datos pero es, en su implementación presente, un lenguaje completo de programación con todas las características.

La distribución básica de R es mantenida por un pequeño grupo de estadísticos, quienes forman el grupo central de desarrollo. Asimismo, un inmenso grupo de voluntarios le agregan al paquete una gran cantidad de funciones que aumentan enormemente su utilidad. La fuente principal de información sobre el sistema R se encuentra localizada en el siguiente URL:

http://www.R-project.org

Todos los recursos de R se encuentran en esta página: el sistema mismo, los paquetes accesorios, los manuales y la documentación.

La intención de este capítulo es presentar informalmente los conceptos básicos y las técnicas de manipulación de datos del lenguaje R para los principiantes. No entraremos en muchos detalles técnicos. Más bien, nos concentraremos en ejemplos prácticos para que el lector pueda empezar a resolver problemas de inmediato.

Instalación del lenguaje

El sistema R consiste de dos partes principales: el sistema base y la colección de paquetes accesorios que han sido contribuídos por los usuarios. El lenguaje se encuentra implementado en el sistema base. Las implementaciones de los procedimientos estadísticos y gráficos están separados del sistema base y se encuentran organizados en forma de "paquetes". Un paquete es una colección de funciones, ejemplos y documentación. La función de un paquete muchas veces se concentra en un método estadístico en particular. Ambos el sistema base y la paquetería se distribuyen a traves del "Comprehensive R Archive Network" (CRAN), el cual se encuentra en

http://CRAN.R-project.org

El Sistema Base y Primeros Pasos

El sistema base se encuentra disponible en forma de código fuente y en forma binaria para varios sistemas Unix, Linux, Windows y Mac OS X. Para el analista de datos, será suficiente bajar la distribución binaria e instalarla localmente. Los usuarios de Windows pueden seguir el enlace:

http://CRAN.R-project.org/bin/windows/base/release.htm

bajar el archivo ejecutable, correrlo localmente en su máquina, y seguir las instrucciones proporcionadas por el instalador automático. Dependiendo del sistema operativo, R puede ejecutarse ya sea escribiendo "R" en una terminal (Unix, Linux), o haciendo doble click en el logotipo del sistema (ver figura). %TODO: Poner logo del sistema R Para verificar que el sistema fue instalado correctamente, teclear el siguiente mando en una terminal de mandos (no incluír el signo de pesos ya que representa el apronte del sistema operativo):

 $ R --version

Aparecerá entonces en la pantalla un corto mensaje y el apronte del sistema R '>' que será algo parecido a lo siguiente:

R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-redhat-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

>

Lo más probable es que la versión varíe un poco como también la plataforma, dependiente ésta de donde se ejecute el programa. Este mensaje nos indica que estamos corriendo la versión 2.14 del sistema R. Si el mensaje no aparece en la pantalla, hubo algún error y no se realizó la instalación correctamente. Consulte a su administrador de sistemas.

Se puede cambiar la apariencia del apronte del sistema R con el siguiente mando:

 > options(prompt = "R> ")

Usaremos de ahora en adelante el apronte R> para mostrar los ejemplos de código a través de este libro. Un símbolo + al principio de la línea indica la continuación de un mando después de un regreso de carro.

Básicamente, el sistema R evalúa los mandos proporcionados en el apronte y regresa los resultados de los cálculos. El fin de un mando se indica con la tecla de regreso (Return). Casi todos los textos de introducción a R empiezan con un ejemplo usando al sistema como una calculadora:

 R> x <- sqrt(25) + 2

Este mando simple le pide al interpretador que evalúe la raíz cuadrada de 25 y le agregue 2. El resultado se lo asigna a un objeto de R que tiene el nombre de variable x. El operador de asignación <- afianza el valor a su lado derecho con el nombre de la variable a su lado izquierdo. El valor del objeto x puede ser inspeccionado escribiendo

 R> x
   [1] 7

esto llama implícitamente al método print

 R> print(x)
   [1] 7

Paquetería

La distribución base incluye un conjunto de paquetes de alta prioridad como gráficos, estadísticas básicas, y algunos paquetes estándar tales como modelos lineales, regresiones, y análisis de varianza. Los paquetes que no se encuentren incluídos en la distribución base se pueden instalar directamente desde el apronte de R. Suponiendo que el usuario se encuentra conectado al Internet, un paquete se puede instalar proporcionando el nombre del paquete a la función install.packages. Por ejemplo, si se requiriera la estimación robusta de matrices de covarianza a través de estimadores tipo "sandwich", el paquete sandwich se puede bajar e instalar a través de:

 R> install.packages("sandwich")

Las funciones del paquete se encontrarán disponibles después de afianzar el paquete por medio de

 R> library("sandwich")

Se puede obtener una lista completa de los paquetes disponibles en

http://CRAN.R-project.org/web/packages/

Nótese que los paquetes bajados a sistemas en Windows estarán precompilados antes de bajarse e instalarse. Esto, a diferencia de los paquetes en Unix/Linux donde los paquetes se compilan localmente antes de instalarse.

Ayuda y Documentación

Existen tres formas de documentación para el sistema R: la ayuda en línea que viene con la distribución base, manuales electrónicos, y documentación en forma de libros y publicaciones.

La ayuda en línea consiste en una colección de páginas tipo manual de Unix (man) las cuales describen las funciones y los datos que se incluyen con R. Una página de manual se muestra cuando llamamos a la función help:

 R> help("mean")

o, de forma más corta:

 R> ?mean

Cada página electrónica del manual consiste de una descripción general, la lista de argumentos que requiere la función junto con una descripción de cada argumento, información sobre el valor que regresa la función, y, a veces, referencias, enlaces, y ejemplos ejecutables. La función help.search es útil para buscar dentro de las páginas manuales. Por ejemplo, se puede obtener una panorámica de los temas documentados en un paquete por medio de

 R> help(package="sandwich")

Este mando nos ayuda a obtener un resumen de las funciones del paquete sandwich.

Muchas veces un paquete viene con documentación adicional que describe las funciones del paquete y muestra ejemplos del uso del mismo. Tal documento se conoce como viñeta. Por ejemplo, la viñeta del paquete sandwich se puede abrir usando

 R> vignette("sandwich", package="sandwich")

Se puede encontrar una extensa colección de documentación en

http://CRAN.r-project.org/manuals.html

Otras funciones útiles son find y apropos. La función find nos dice en que paquete se encuentra alguna función:

> find("lowess")
[1] "package:stats"

mientras que apropos regresa con una matriz conteniendo los nombres de todos los objetos que se encuentran en la búsqueda:

  > apropos("lm")
 [1] ".__C__anova.glm"      ".__C__anova.glm.null" ".__C__glm"
 [4] ".__C__glm.null"       ".__C__lm"             ".__C__mlm"
 [7] ".__C__optionalMethod" "anova.glm"            "anova.glmlist"
[10] "anova.lm"             "anova.lmlist"         "anova.mlm"
[13] "anovalist.lm"         "colMeans"             "contr.helmert"
[16] "getAllMethods"        "glm"                  "glm.control"
[19] "glm.convert"          "glm.fit"              "glm.fit.null"
[22] "glm.nb"               "glmmPQL"              "hatvalues.lm"
[25] "KalmanForecast"       "KalmanLike"           "KalmanRun"
[28] "KalmanSmooth"         "kappa.lm"             "lm"

Ejemplos Preparados y Demostraciones

Si se desea ver el ejemplo preparado, solo hay que usar la función example usando como argumento el nombre de la función que se desea. En este ejemplo, usaremos la función de modelos lineales, o lm en esta instancia:

 R> example(lm)

El sistema presentará los resultados y gráficos incluídos en el ejemplo donde se ilustra la función lm.

Para acceder a las demostraciones de algunos paquetes el usuario puede ejecutar los siguientes mandos:

 R> demo(persp)
 R> demo(Hershey)
 R> demo(graphics)
 R> demo(plotmath)

Objetos en R

El paquete básico de R incluye algunos conjuntos de datos que se pueden usar para efectos de prueba, calibración o meramente didácticos. Si se desea echar un vistazo a todos los grupos de datos que ofrece R basta teclear

 R> data()

y el sistema desplegará una lista de todos los diferentes conjuntos de datos incluídos.

Para ayudar a explicar las técnicas de manipulación de datos, usaremos un grupo llamado HairEyeColor que consiste en una distribución del color de cabello, color de ojos y género en 592 estudiantes provenientes de los diferentes grupos de un curso de estadística en una universidad. Para mayor informacion sobre la naturaleza de los datos, se puede teclear

 R> ?HairEyeColor

y se desplegará la información requerida. En forma resumida, este paquete de datos consiste en los resultados de una muestra de 592 estudiantes de quienes se tomaron los datos antes mencionados. Estos datos serán útiles para ilustrar algunas técnicas para el análisis de tablas de contingencia, tales como la prueba ji-cuadrada, algunos modelos lineales y rutinas de graficado usando R.

Empezamos con dos mandos básicos: imprimir los datos, y analizar su estructura. Para ahorrar espacio, solamente mostraremos aquí los resultados parciales de ejecutar los mandos. Pediremos al lector que siga la lección en su propia computadora para facilitar el aprendizaje. Se teclea primero

 R> print(HairEyeColor)

y se despliega el siguiente resultado

  , , Sex = Male

       Eye
Hair    Brown Blue Hazel Green
  Black    32   11    10     3
  Brown    53   50    25    15
  Red      10   10     7     7
  Blond     3   30     5     8

, , Sex = Female

       Eye
Hair    Brown Blue Hazel Green
  Black    36    9     5     2
  Brown    66   34    29    14
  Red      16    7     7     7
  Blond     4   64     5     8

El sistema nos está mostrando como están distribuídos los colores de ojos y cabello según el género del estudiante. A continuación se teclea

 R> str(HairEyeColor)

y el sistema despliega

   table [1:4, 1:4, 1:2] 32 53 10 3 11 50 10 30 10 25 ...
 - attr(*, "dimnames")=List of 3
  ..$ Hair: chr [1:4] "Black" "Brown" "Red" "Blond"
  ..$ Eye : chr [1:4] "Brown" "Blue" "Hazel" "Green"
  ..$ Sex : chr [1:2] "Male" "Female"

Este mando presenta la estructura interna de un objeto R. En este caso nos está informando que la estructura del conjunto de datos "HairEyeColor" es una tabla de tres dimensiones: 4×4×2. Si se desea visualizar este concepto sería como imaginar dos tablas de cuatro filas con cuatro columnas cada una. Cada una de estas dimensiones tiene un atributo al cual se le asigna un nombre. Como podemos ver en el resultado los nombre de los atributos son "Hair", "Eye", y "Sex". Los atributos son los nombres de tres distintos arreglos de caracteres. Por ejemplo, el atributo "Hair" es el nombre del arreglo de cuatro elementos que contiene los nombres de los distintos colores de cabello. Al imprimir la estructura del objeto "HairEyeColor" el sistema nos indica como están ordenados los atributos de la tabla.

Marcos de Datos (Data Frames)

Veamos ahora la otra estructura interna que R usa para almacenar datos. Escribamos el siguiente mando:

 R> str(USArrests)

El sistema responde con:

  'data.frame':   50 obs. of  4 variables:
 $ Murder  : num  13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
 $ Assault : int  236 263 294 190 276 204 110 238 335 211 ...
 $ UrbanPop: int  58 48 80 50 91 78 77 72 80 60 ...
 $ Rape    : num  21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...

R nos está mostrando la estructura del conjunto de datos "USArrests" el cual es el número de arrestos por cada 100,000 habitantes por los crímenes de robo, homicidio y violación correspondientes a cada uno de los 50 estados de la Unión Americana en 1973. Se proporciona también el porcentaje de la población que vive en áreas urbanas. Estos datos se encuentran estructurados en la forma de un data frame o "marco de datos". [2] Los objetos tipo dataframe son los objetos más importantes dentro de R. Estos objetos representan a los datos en la forma de una tabla común. Cada fila se encuentra asociada con una sola observación y cada columna representa una variable. Las dimensiones de esta tabla se pueden extraer usando la función dim:

  R> dim(USArrests)
  [1] 50  4

indicando así que el dataframe asociado al conjunto de datos "USArrests" es una tabla con 50 filas y 4 variables. Se pueden obtener también las dimensiones de la tabla usando los mandos nrow y ncolumn:

  R> nrow(USArrests)
  [1] 50
  R> ncol(USArrests)
  [1] 4

Los nombres de las variables que describen las observaciones, esto es, los nombres de las columnas del dataframe se extraen usando

  R> names(USArrests)
[1] "Murder"   "Assault"  "UrbanPop" "Rape"

Los corchetes siempre indican un subconjunto de un objeto mayor, en este caso una sola variable extraída de la tabla completa. Debido a que los dataframes tienen dos dimensiones, siendo éstas las observaciones y las variables, se requiere la coma para especificar que se desea un subconjunto de la segunda dimensión, esto es, de las variables. Por ejemplo las observaciones correspondientes a los homicidios se encuentran representadas en un vector de longitud

  R> length(USArrests[,"Murder"])
  [1] 50

Un vector es la estructura más elemental para manejar datos en R y consiste en un conjunto de elementos sencillos, los cuales son todos de la misma clase. Por ejemplo, un vector simple de los números del uno al cinco se puede construír con cualquiera de los tres siguientes mandos:

R> 1:3
[1] 1 2 3

R> c(1,2,3)
[1] 1 2 3

R> seq(from=1, to=3, by=1)
[1] 1 2 3

En el caso del conjunto de datos "USArrests", los datos se encuentran almacenados en cuatro vectores. Por ejemplo, donde se encuentran los homicidios, es un vector numérico:

  R> class(USArrests[,"Murder"])
  [1] "numeric"

El tamaño del vector donde se encuentran almacenados

  R> length(USArrests[,"Murder"])
  [1] 50

Y el primer elemento del vector es

  R> USArrests[,"Murder"][1]
  [1] 13.2

Las mediciones a nivel nominal o categorías se encuentran representadas por variables de tipo factor tales como la categoría a la cual pertenece un cierto tratamiento. Por ejemplo, el conjunto de datos "InsectSprays" representa el conteo de plagas en ciertas unidades agrícolas experimentales las cuales fueron tratadas con diferentes insecticidas nombrados aquí como "A", "B", "C", "D", "E" y "F". Veamos la estructura de este conjunto de datos:

  R> str(InsectSprays)
'data.frame':   72 obs. of  2 variables:
 $ count: num  10 7 20 14 14 12 10 23 17 20 ...
 $ spray: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ...

Los objectos de tipo factor y los de tipo character difieren en la forma en la que son almacenados internamente. Cada elemento de un vector de clase character se almacena como una variable character mientras que un objeto de tipo factor es almacenado como una variable entera indicando el nivel del factor. En otras palabras, el nombre de la categoría usada se convierte en un número entero que va del 1 al número de posibles valores de la categoría. En el caso de los insecticidas, el valor numérico de la variable spray corre del 1 al 6.

  R> nlevels(InsectSprays[,"spray"])
  [1] 6
  R> levels(InsectSprays[,"spray"])
  [1] "A" "B" "C" "D" "E" "F"

Como ejemplo de una estadística sencilla, se puede obtener un conteo de la frecuencia de los niveles de cada variable tipo factor a partir de

  R> table(InsectSprays[,"spray"])

 A  B  C  D  E  F
12 12 12 12 12 12
  1. [Heurística: Técnicas empíricas usadas para resolver problemas, para el aprendizaje y el descubrimiento. Cuando no es posible realizar una búsqueda exhaustiva, se usan métodos heurísticos para encontrar una solucion satisfactoria.]
  2. [Voy a dejar por un lado el purismo del idioma castellano y me estaré refiriendo, cuando sea necesario, al marco de datos como "dataframe".]

Importación y Exportación de Datos

En la sección anterior vimos como leer datos en línea y usar los paquetes de datos incluídos con el lenguaje. Ahora veremos formas más relevantes de como importar datos al sistema R. Los formatos más frecuentes que se encuentran en la práctica son las hojas de trabajo de Microsoft Excel, archivos de texto, y conexiones con bases de datos relacionales usando SQL. El importar datos directamente de una base de datos tal como Oracle o Microsoft SQL Server implica el conocimiento de SQL y por lo tanto dejaremos el tema para un capítulo posterior. Por lo pronto nos abocaremos a las hojas de trabajo y a archivos de texto. Los archivos de texto pueden venir en dos formas: campo fijo (donde cada elemento ocupa un lugar fijo de espacios) o campo variable delimitado por un carácter. Estos últimos por lo general vienen delimitados por una coma, un espacio, un tabulador, o un par de comillas. Supongamos que tenemos un archivo de texto el cual contiene información que queremos procesar. El archivo lleva el nombre de users.csv y es un archivo que contiene los datos de un grupo de usuarios. El archivo sólo contiene un identificador numérico, la edad del usuario, género, profesión, y el código postal de su domicilio. Los elementos se encuentran separados por comas y los datos de tipo texto se encuentran delimitados por comillas. Mostramos algunos renglones del archivo para obtener una idea de su estructura:

880,13,"M","student","83702"
881,39,"M","marketing","43017"
882,35,"M","engineer","40503"
883,49,"M","librarian","50266"
884,44,"M","engineer","55337"

Usaremos entonces la función read.table para leer el archivo:

R> users <- read.table("users.csv", header=TRUE, sep=",")

El argumento header=TRUE indica que la primera línea del archivo users.csv debe interpretarse como los nombres de las variables a leerse. Las columnas se encuentran separadas por una coma (sep=",") y los datos se almacenarán en el dataframe users. Se puede usar también la función read.csv para leer archivos separados por comas pero la función read.table es un poco más general y es mejor que nos acostumbremos a usarla. La función read.table trata de adivinar cuál es la clase de cada variable al leer el archivo. Veamos como fue estructurado dentro de R:

  R> str(users)
'data.frame':   943 obs. of  5 variables:
 $ UserID    : int  1 2 3 4 5 6 7 8 9 10 ...
 $ Age       : int  24 53 23 24 33 42 57 36 29 53 ...
 $ Gender    : Factor w/ 2 levels "F","M": 2 1 2 2 1 2 2 2 2 2 ...
 $ Occupation: Factor w/ 21 levels "administrator",..: 20 14 21 20 14 7 1 1 19 10 ...
 $ Zipcode   : Factor w/ 795 levels "00000","01002",..: 623 690 271 332 134 759 652 49 2 643 ...

Podemos observar que cada observación (cada línea del archivo) está compuesta por cinco variables: dos de clase int (enteros) y tres variables de tipo factor cada una con distinto número de niveles.

La exportación de datos desde R se hace de forma similar. Se construye un archivo delimitado con comas para que pueda ser leído por Microsoft Excel a partir de un objeto tipo dataframe a través de:

  R> write.table(users, file="USERS.csv", sep=",", col.names=NA)

Si se desea guardar los datos para que solo sean procesados por R, cualquier objeto en R se puede salvar en un archivo binario externo a través de:

  R> save(users, file="USERS.rda")

donde la extensión .rda es estándar. Si deseamos cargar los objetos de un archivo tipo rda a R.

 R> load("USERS.rda")

Manejo Básico de Datos

Los ejemplos mostrados en la sección anterior muestran la importancia de usar los dataframes para el manejo y almacenamiento de datos tabulares en R. Internamente, un dataframe es una lista de vectores con una longitud común n, donde n es el número de filas en la tabla. Cada uno de estos vectores representa las medidas de una variable y hemos vista que se puede acceder tal variable por medio de su nombre. Por ejemplo, los tipos de profesiones en el juego de datos users.csv:

  R> occ <- users[,"Occupation"]
  R> occ[1]
  [1] technician

El vector occ es de clase Factor con 21 niveles y tiene una longitud de 943 elementos. Se puede extraer un subconjunto de los elementos del vector occ usando el operador []. Por ejemplo, para extraer los elementos 125 al 128, usamos el siguiente operador:

  R> occ[125:128]
  [1] lawyer    lawyer    none      marketing
  21 Levels: administrator artist doctor educator engineer ... writer

R nos recuerda que la variable que estamos leyendo es de tipo Factor y que posee 21 niveles que van desde "administrator" a "writer". Nota: El llamarles "niveles" a los posibles valores que puede tomar la variable Occupation no implica que exista una jerarquía entre ellos. Es simplemente un asunto de nomenclatura.

Una característica interesante de los índices en R es el uso de índices negativos. El uso de éstos indica todos los elementos que no son parte del vector indicado por los corchetes. Por ejemplo, si queremos indicar los primeros cinco elementos del vector occ' lo podemos hacer de la siguiente forma usando índices negativos:

  R> occ[-(6:943)]
  [1] technician other      writer     technician other

Y en forma convencional con índices positivos:

  R> occ[1:5]
  [1] technician other      writer     technician other

Se puede imprimir una tabla de los primeros tres registros (filas) del juego de datos usando el hecho de que los dataframes manejan el concepto de filas y columnas. Entonces, separamos los subconjuntos correspondientes a las filas y a las columnas por medio de una coma. Por ejemplo:

  R> users[1:3, c("UserID", "Age", "Gender", "Occupation", "Zipcode")]
    UserID Age Gender Occupation Zipcode
  1      1  24      M technician   85711
  2      2  53      F      other   94043
  3      3  23      M     writer   32067

Con esta instrucción, le estamos diciendo a R que imprima los tres primeros registros (filas) de los datos con las columnas indicadas. Al mismo tiempo, si quisiéramos extraer una sola variable del dataframe usaríamos:

  R> occ <- users$Occupation
  R> occ[1:5]
  [1] technician other      writer     technician other
  21 Levels: administrator artist doctor educator engineer ... writer

La instrucción mostrada arriba es equivalente a la instrucción

  R> occ <- users[,"Occupation"]

Ejemplo: Nos interesa saber cuáles son los datos correspondientes a cinco usuarios de mínima edad. Primero, ordenaremos las edades de menor a mayor, usando los índices correspondientes del vector Age para usarlos como índices en el vector users.

  R> ages <- order(users$Age)
  R> users[ages[1:3], c("UserID", "Age", "Gender", "Occupation", "Zipcode")]
    UserID Age Gender Occupation Zipcode
30      30   7      M    student   55436
471    471  10      M    student   77459
142    142  13      M      other   48118
609    609  13      F    student   55106
289    289  11      M       none   94619

La función order ordena el vector Age de menor a mayor y regresa los índices del vector en este nuevo orden. Usamos entonces estos índices para extraer los cinco elementos de users que poseen las cinco mínimas edades.

Otra forma de extraer datos es usar un vector lógico que adquiere el valor TRUE cuando selecciona el elemento deseado y FALSE cuando no. Por ejemplo, para obtener los datos de aquellos usuarios menores de 15 años, expresaríamos:

  R>  users[users$Age<15,  c("UserID", "Age", "Gender", "Occupation", "Zipcode")]
      UserID Age Gender Occupation Zipcode
30      30   7      M    student   55436
142    142  13      M      other   48118
206    206  14      F    student   53115
289    289  11      M       none   94619
471    471  10      M    student   77459
609    609  13      F    student   55106
628    628  13      M       none   94306
674    674  13      F    student   55337
813    813  14      F    student   02136
880    880  13      M    student   83702
887    887  14      F    student   27249
 R>

donde la expresion users$Age <15 indica un vector lógico de longitud 943 donde

R> table(users$Age<15)

FALSE  TRUE
  932    11

los elementos son falsos(FALSE) or verdaderos (TRUE).

Si tuviéramos datos faltantes, éstos estarían indicados por medio de un símbolo especial: NA indicando así que esa medición no se encuentra disponible. Si queremos saber cuáles elementos faltan en alguna columna usamos la siguiente función

 R> na_occ <- is.na(users$Occupation)
 R> table(na_occ)
na_occ
FALSE
  943

La función regresó con un vector lógico de 943 elementos todos ellos igual a FALSE. Lo que quiere decir que no hay elementos faltantes en la columna Occupation.

El tomar subconjuntos de los dataframes usando expresiones lógicas nos puede ahorrar mucho tecleado. La función subset toma un dataframe como su primer argumento, y una expresión lógica como el segundo. Por ejemplo, podemos seleccionar un subconjunto de todos los usuarios mayores de 40 años por medio de

 R> mayores50 <- subset(users, Age> 50)
 R> dim(mayores50)
[1] 105   5

El vector mayores50 es un vector de 105 filas con 5 columnas. Nótese que no es necesario especificar en el primer argumento la variable Age bajo consideración.

Cálculos con Datos

Algunas Estadísticas Sencillas

Dos funciones son muy útiles para extraer información general sobre los objetos en R: str y summary. La primera es para obtener información sobre el tipo y cantidad de los objetos que se encuentran almacenados en el dataframe; y la segunda es para obtener estadísticas de sumarización del conjunto de datos.

  R> summary(users)
     UserID           Age        Gender          Occupation     Zipcode
 Min.   :  1.0   Min.   : 7.00   F:273   student      :196   55414  :  9
 1st Qu.:236.5   1st Qu.:25.00   M:670   other        :105   55105  :  6
 Median :472.0   Median :31.00           educator     : 95   10003  :  5
 Mean   :472.0   Mean   :34.05           administrator: 79   20009  :  5
 3rd Qu.:707.5   3rd Qu.:43.00           engineer     : 67   55337  :  5
 Max.   :943.0   Max.   :73.00           programmer   : 66   27514  :  4
                                         (Other)      :335   (Other):909

Podemos ver que para la variable numérica Age, la función arrojó los valores extremos, el primer y tercer cuartil, la mediana y la media. Para el caso de las variables nominales Gender, Occupation, y Zipcode, la función calculó el número correspondiente a los niveles de la variable. Esto es, la variable Gender tiene 273 valores de F, y 670 de M. En el caso de las variables Occupation y Zipcode, la función proporciona los 6 valores más frecuentes.

Programando con R

En las secciones anteriores hemos estado haciendo todos nuestros cálculos con las funciones internas de R. Sin embargo, el verdadero poder de R proviene de la expresividad de este lenguaje en forma de funciones que se usan para las tareas de análisis. Estudiaremos dos ejemplos pequeños a continuación.

Digamos que queremos agregar una medida robusta de variabilidad a las medidas de ubicación calculadas en la sección anterior. Aparte de la media y la mediana, queremos calcular el intervalo intercuartil. Esto es, la diferencia entre el tercer y el primer cuartil. Haciendo una búsqueda rápida del manual en línea (usando help("interquartile")) obtenemos el resultado de IQR, pero en lugar de usar directamente esta función, usaremos la función quartile para calcular cuantiles.

Una función en R no es más que un objeto, y todos los objetos se crean de la misma manera. Esto es, tenemos que asignarle un objeto de tipo function a una variable. Un objeto function consiste de una lista de argumentos, valores por omisión, y un cuerpo que define los cálculos. El cuerpo empieza y termina con llaves {} y, por supuesto, se entiende que el cuerpo consiste de código en R

Regresando a nuestro ejemplo, le llamaremos a nuestra función iqr. La función iqr deberá operar sobre vectores numéricos, por lo que tendrá como argumento de entrada un vector x. Este vector numérico le será pasado a la función quantile para calcular los cuartiles en la muestra. La diferencia requerida entre el tercer y el primer cuartil se calculará usando diff. La definición de nuestra función se presenta a continuación:

R> iqr <- function(x) {
       q <- quantile(x, prob = c(0.25, 0.75), names = FALSE)
	return(diff(q))
}

Una prueba usando datos simulados provenientes de una distribución normal estándar muestra que nuestra función sí opera como debido. Si la comparamos con la función IQR mostramos que el resultado es el correcto

R> xdata <- rnorm(100)
R> iqr(xdata)
[1] 0.9977416
R> IQR(xdata)
[1] 0.9977416

Sin embargo, cuando el vector numérico contiene valores faltantes, la función falla como se muestra en el siguiente ejemplo:

R> xdata[1] <- NA
R> iqr(xdata)
Error in quantile.default(x, prob = c(0.25, 0.75), names = FALSE) :
  missing values and NaN's not allowed if 'na.rm' is FALSE

Para hacer la función un poco más flexible, sería conveniente agregar todos los argumentos de quantile a la lista de argumentos de iqr. Si lo hacemos por simple copia podría llevar a inconsistencias y errores como, por ejemplo, cuando la lista de argumentos de quantile cambia. En lugar de eso, usamos el argumento de puntos, el cual sirve de comodín para cualquier argumento de la función

R> iqr <- function(x, ...) {
+   q <- quantile(x, prob = c(0.25, 0.75), names=FALSE,
+                 ...)
+   return(diff(q))
+ }
R> iqr(xdata, na.rm=TRUE)
[1] 1.019106
R> IQR(xdata, na.rm=TRUE)
[1] 1.019106

El argumento na.rm=TRUE detecta si existen valores faltantes (NA) en el vector de entrada y los extrae para efectos del cálculo. El vector de entrada no es alterado al salir de la función.

Gráficas Sencillas

El grado de oblicuidad (skewness) de una distribución se puede obtener construyendo histogramas usando la función hist (Existen alternativas un poco más sofisticadas pero se verán en capítulos posteriores). Por ejemplo, el código para crear la figura 6 primero divide la región de graficando horizontalmente en dos partes igualmente espaciadas (layout) y luego grafica el histograma de las edades en la parte superior y el histograma del logaritmo de la edad en el segundo renglón. Este último parece ser un poco más

simétrico.

Histogramas de edades

Las relaciones bivariantes de dos variables continuas se grafican generalmente como una gráfica de puntos. En R, las relaciones de regresión se especifican a través de fórmulas modelo los cuales, en el caso de dos variables, pueden tomar una forma parecida a

  R> fm <- ingresos ~ ventas
  R> class(fm)
   [1] "formula"

donde la variable dependiente es la izquierda y la independiente la derecha (ventas). El tilde separa las partes izquierda y derecha. Esta fórmula se puede pasar como argumento a una función modelo como parte de un cálculo más complicado.

Supongamos que ahora deseamos las distribuciones de las edades pero separadas por género. Esto es, queremos las distribuciones de las edades masculinas y las femeninas por separado. El código R para obtener una gráfica de cajas de las edades es:

R> tmp <- subset(users, Gender %in% c("M", "F"))
R> plot(Age ~ Gender, data = tmp, ylab="Edades", xlab="Genero", varwidth=TRUE)

Podemos observar el resultado en la figura 7

Gráfica de cajas (Boxplots) por edades

.

Organizando un Análisis

Aún cuando es posible realizar un análisis estadístico tecleando todos los mandos directamente en el apronte de R, es mucho más cómodo tener un archivo de texto por separado que contenga todos los pasos necesarios para llevar a cabo el análisis requerido. El archivo, que podemos llamar análisis.R, se puede correr dentro del ambiente de R usando el mando source:

  R> source("analisis.R", echo = TRUE)

Si ponemos todos los mandos juntos necesarios para un análisis, podemos reproducir el análisis a voluntad con mayor número de datos o con distintos datos según la necesidad.

Algebra Matricial

Introducción

En un capítulo posterior veremos que una variable aleatoria multidimensional es simplemente un conjunto ordenado [X1,,Xp] de variantes sencillas. Cuando decimos "ordenado" queremos decir que la variante que describe la i-ésima faceta de cada unidad muestreada de la población siempre aparecerá en la i-ésima posición de la secuencia. El número de variantes p en el arreglo será constante a través del problema o el análisis que se esté llevando a cabo. Por ejemplo, supóngase que los componentes de la variante son los pesos al nacer de los ratones hembra de una cierta cepa y los demás componentes son los pesos a los 10, 20 y 30 días de nacidas. Los pesos entonces son descritos por una variable aleatoria [X1,X2,X3,X4] con alguna distribución en el espacio de 4 dimensiones. Si esos pesos fueron registrados con una muestra de N ratones, las observaciones se pueden resumir por medio del arreglo

[x11x14xN1xN4]

donde las filas corresponden a los distintos ratones. Tales arreglos rectangulares y lineales de números se conocen como matrices y vectores respectivamente, y las reglas para su manipulación se conocen como álgebra lineal. Esta álgebra es el lenguaje virtual del análisis multivariable, especialmente en la parte más común e importante la cuál se encuentra basada en la distribución normal multidimensional. Incluso, se puede afirmar que las técnicas de análisis multivariable no hubieran podido ser desarrolladas sin la facilidad, la conveniencia y la elegancia de las matrices.

En este capítulo se resumirán algunas propiedades, operaciones y teoremas del álgebra matricial necesarias para el material que se avecina. Si se desea profundizar en el tema, se proporcionarán referencias para consulta y aprendizaje.

Algunas Definiciones

Supongamos que tenemos a nuestra disposición una serie de elementos que se comportan de acuerdo a un conjunto de axiomas, por ejemplo, los números reales o complejos. Definimos una matriz

A=[a11a1car1arc]

como un arreglo rectangular ordenado de los elementos. El término general de la matriz se expresará como aij donde el primer subíndice se refiere a la i-ésima fila y el segundo subíndice se refiere a la j-ésima columna. Las dimensiones de una matriz son importantes, de modo que una matriz con r filas y c columnas será referida como una matriz de r×c dimensiones.

Para diferenciarlos de las matrices, les llamaremos a los números y variables unidimensionales que manejamos habitualmente, escalares. Un escalar es considerado como una matriz de 1×1. En las primeras secciones de este capítulo supondremos que los elementos de las matrices son escalares reales. Posteriormente trataremos con matrices cuyos elementos son matrices de dimensiones más pequeñas.

Un vector es una matriz con una sola fila o columna. Normalmente, expresaremos el vector columna de n componentes como

x=[x1xn]

De la misma forma, el vector fila lo expresaremos como

x=[x1,,xn]

y consiste de una sola fila de n elementos. Cada vector especifica las coordenadas de un punto en el espacio euclideano n-dimensional y la conexión con el concepto físico o analítico de un vector es aparente si se considera ese punto como el término de un segmento de recta que empieza en el origen de los ejes coordenados.

El apóstrofe que acompaña al símbolo del vector fila indica que x es la transpuesta del vector columna x. En general, si A es cualquier matriz de r×c dimensiones, la transpuesta de A es la matriz A de c×r dimensiones formada al intercambiar las filas y las columnas:

A=[a11a1car1arc]=[a11ar1a1cacr]

Si una matriz es cuadrada e igual a su transpuesta, se dice que es simétrica. Entonces aij=aji para todos los pares de i y j. Por ejemplo

A=[301012124]

es simétrica, mientras que

B=[2312]

no lo es. Por brevedad, se omitirán con frecuencia los elementos inferiores duplicados. Los elementos aii de una matriz cuadrada ocupan lo que se conoce como las posiciones de la diagonal principal. La suma de estos elementos diagonales se conoce como la traza de A, y se denotará por

trA=i=1naii

Ciertas matrices son particularmente importantes. La matriz identidad

I=[1001]

es una matriz cuadrada con unos en la diagonal principal y ceros en las posiciones restantes. La matriz diagonal de p×p

D(ai)=[a100ap]

tiene los elementos a1,,ap en las posiciones de la diagonal principal y ceros en las posiciones restantes. Algunos de los elementos ai pueden ser cero. De aquí en adelante el término diag(A) = D(aii) denotará la matriz diagonal formada por la matriz cuadrada A. Una matriz triangular de p×p tiene el patrón

[t11t12t1p0t22t2p00tpp]

La matriz nula de r×c

[0000]

tiene un cero en cada una de sus posiciones. A veces necesitaremos el vector

j=[1,,1]

y la matriz

E=[1111]

la cual tiene la unidad en cada posición.

Operaciones Elementales con Matrices y Vectores

Las operaciones aritméticas escalares de suma, resta y multiplicación se pueden llevar a cabo si se siguen ciertas reglas. La división matricial es un poco más complicada y se dejará para una sección posterior. Igualdad. Dos matrices de r×c A y B se dice que son iguales si y sólo si

aij=bij

Suma. La suma de dos matrices de iguales dimensiones es la matriz de la suma de los elementos correspondientes. Si

A=[a11a1car1arc]B=[b11b1cbr1brc]

entonces

A+B=[a11+b11a1c+b1car1+br1arc+brc]

Una matriz se puede sustraer de otra con iguales dimensiones formando la matriz de diferencias de los elementos individuales. Entonces

𝐀+𝐁=𝐁+𝐀𝐀+(𝐁+𝐂)=(𝐀+𝐁)+𝐂𝐀(𝐁𝐂)=𝐀𝐁+𝐂

Si las dimensiones de las matrices no son iguales, sus sumas o diferencias se encuentran indefinidas.

Multiplicación por un Escalar. La matriz A se multiplica por el escalar c multiplicando cada elemento de A por c:

cA=[ca11ca1kcar1cark]

Multiplicación de Matrices. Para que el producto de dos matrices AB esté definido es necesario que número de columnas de A sea igual al número de filas de B. Se dice entonces que las dimensiones de éstas matrices son conformables. Si A tiene dimensiones de p×r, y B tiene dimensiones de r×q, entonces el ij-ésimo elemento del producto C=AB se calcula como

cij=k=1raikbkj

Esta es la suma de los productos de los elementos correspondientes a la i-ésima fila de A y la j-ésima columna de B. Las dimensiones de AB son p×q. Por ejemplo, si

𝐀=[123101]𝐁=[654111020]

entonces

𝐀𝐁=[1(6)+2(1)+3(0)1(5)+2(1)+3(2)1(4)+2(1)+3(0)1(6)+0(1)+1(0)1(5)+0(1)+1(2)1(4)+0(1)+1(0)]

El producto BA se encuentra indefinido, ya que las dos filas de A no se conforman a las tres columnas de B.

Las leyes distributivas y asociativas se aplican a la multiplicación de matrices:

𝐀(𝐁+𝐂)=𝐀𝐁+𝐀𝐂𝐀(𝐁𝐂)=𝐀𝐁(𝐂)

Sin embargo, la ley conmutativa no se puede aplicar a la multiplicación matricial ya que en general, no es cierto que AB = BA. Por esto, el orden de la multiplicación es crucial y nos referiremos a la premultiplicación por A en el producto AB o la posmultiplicación por B en el producto AB. Por ejemplo, sea

𝐀=[1223]𝐁=[3111]

Entonces

𝐀𝐁=[1131]𝐁𝐀=[1311]

Ni los productos son iguales ni se conserva la simetría de las matrices originales en la multiplicación.

La multiplicación de una matriz por una matriz identidad conformable deja a la matriz inmutada. La premultiplicación de una matriz por la matriz diagonal con elementos d1,,dr posee el efecto de multiplicar cada elemento en la i-ésima fila por di:

𝐃(di)𝐀=[d1a11d1a1cdrar1drarc]

La posmultiplicación por una matrix diagonal similar de c×c multiplica cada elemento en la j-ésima columna por dj.

Una matriz puede considerarse como una transformación lineal de los vectores en un espacio a vectores en otro espacio. Si x tiene m componentes y y tiene n componentes, es posible expresar una transformación del sistema de coordenadas en m dimensiones de los elementos de x al espacio n-dimensional de y en forma matricial como

[y1yn]=[a11a1man1anm][x1xm]=𝐀𝐱

La transformación a un tercer conjunto de variables especificado por el vector z de p componentes puede representarse como

𝐳=𝐁𝐲=𝐁𝐀𝐱

y así el producto de dos o más matrices se puede considerar como la matriz del resultado de una serie de transformaciones lineales.


Ejemplo: Muchas veces es necesario en estudios e investigaciones el convertir varias mediciones recabadas de los sujetos a una escala con un origen e unidades comunes. Si xij es la medición del i-ésimo individuo en ji-ésima característica, y x¯j y sj son la media y la desviación estándar de la muestra respectivamente, una transformación común que puede usarse es la medida z: zij=zijx¯jsj Las transformaciones observadas se pueden calcular con facilidad a través de algunas operaciones matriciales sencillas. Si expresamos las mediciones originales como una matriz de N×p

X=[x11x1pxN1xNp]

y formamos la matriz diagonal

D=[1s1001sp]

a partir de las desviaciones estándard de la muestra. Si introducimos la matriz de N×N

E=[1111]

con un uno en cada posición, entonces la matriz Z de N×p dimensiones correspondiente a las mediciones normalizadas se puede calcular como

Z=(I1NE)XD

El resultado de posmultiplicar E por X es obtener la suma de cada columna de la matriz de datos.

Productos Internos Vectoriales. El producto interno de dos vectores con el mismo número de elementos se define como la suma de los productos de los elementos correspondientes:

xy=[x1,,xp][y1yp]

Ya que el producto interno es escalar, entonces xy=yx. El producto interno de x consigo mismo es la suma de los cuadrados de los elementos de x.

Los productos internos tienen importantes interpretaciones geométricas. El producto interno de x consigo mismo se conoce como la longitud cuadrada de x, ya que es el cuadrado de la distancia desde el origen al punto especificado por los elementos de x en el sistema de coordenadas en p dimensiones. En general, la distancia entre los puntos con coordenadas dadas por x y y es

d=[i=1p(xiyi)2]12

El coseno θ del ángulo entre los vectores x y y es

cosθ=xy(xx)12(yy)12

Esta división de vectores entre sus respectivas longitudes se conoce como normalización y es fácil ver que a medida que los vectores normalizados van coincidiendo, su producto interno tiende a la unidad. Al mismo tiempo, aquellos vectores que se encuentran perpendiculares tienen un producto interno igual a cero.

Ejemplo. En el espacio tridimensional, los vectores

x=[1,0,0]y=[0,1,0]z=[0,0,1]

se pueden interpretar como si fueran los ejes coordenados. El vector

e=[1,1,1]

hace un ángulo de 3/3 con x,y y z y caracteriza la línea equiangular en el espacio tridimensional. Las cantidades 3/3 se conocen como los cosenos direccionales} de la línea. Similarmente, los vectores

u=[1,1,0]v=[1,1,0]

forman un ángulo de 90 grados en el plano xy del espacio. Los vectores u y v forman cada uno un ángulo de 45 grados con x, y sus ángulos con y son 45 y -45 grados, respectivamente.

Transpuesta de un Producto Matricial. Si la matriz A es conformable para posmultiplicación por otra matriz B, se puede verificar fácilmente que la transpuesta de su producto es igual al producto de sus transpuestas tomadas en el orden inverso:

(AB)=BA

En general, si A1,,Ak son conformables,

(A1,Ak)=AkA1

Estas propiedades van a ser muy necesarias en capítulos posteriores.

El Determinante de una Matriz Cuadrada

Con toda matriz cuadrada se encuentra asociada una cantidad escalar llamada el determinante. Un determinante generalizado para una matriz A tiene el valor

detA|A|=i=1kaijCij

donde se supone que no hay suma sobre el índice j y donde Cij es el cofactor de aij definido por

Cij(1)i+jMij

y Mij es el 𝑚𝑒𝑛𝑜𝑟de la matriz A formado al eliminar la fila i y la columna j de A. Este proceso se conocido como la expansión Laplaciana por menores o también conocido como Desarrollo Laplaciano. Un determinante también puede ser calculado expresando todas las permutaciones de (1,,n) tomando cada permutación como los subíndices de las letras a,b, y sumando con los signos dados por ϵp=(1)i(p) donde i(p) es el número de inversiones de la permutación en la permutación p, y ϵn1n2 es el símbolo de permutación. Por ejemplo, para n=3, las permutaciones y el número de inversiones que contienen son 123 (0 inversiones), 132 (1 inversion), 213(1), 231(2), 312(2), y 321 (3), de modo que el determinante de una matriz de 3×3 es

|a1a2a3b1b2b3c1c2c3|=a1b2c3a1b3c2a2b1c3+a2b3c1+a3b1c2a3b2c1.

Para determinantes mayores de 3×3 calcularlos a mano es oneroso y existen métodos numéricos comprobados que los calculan. Mostraremos más adelante en el capítulo dedicado a programación en R como calcular determinantes.

Ciertas propiedades de los determinantes nos serán útiles en los capítulos subsiguientes:

  1. El determinante de una matriz diagonal es simplemente el producto de los elementos de la diagonal. Igualmente, el determinante de una matriz triangular es el producto de los elementos diagonales.
  2. Si los elementos de una sola fila o columna de la matriz \textbf{A} de n×n son multiplicados por el escalar c, el determinante de la nueva matriz es igual a c|A|. Si cada elemento es multiplicado por c, entonces |cA|=cn|A.
  3. Si dos filas o columnas de una matriz cuadrada son intercambiadas, entonces el signo del determinante se invierte.
  4. Si dos columnas o dos filas de la matriz son iguales, entonces el determinante debe ser cero. Por lo tanto, las filas o columnas proporcionales de una matriz indican un determinante igual a cero.
  5. El determinante de una matriz no cambia agregando un múltiplo de alguna columna a otra columna. Lo mismo vale para las filas.
  6. Si todos los elementos de una fila o una columna son iguales a cero, entonces el determinante es cero.
  7. Si A y B son matrices de n×n, el determinante de AB es igual al producto de los determinantes individuales.
  8. La suma de los productos de los elementos de una fila en una matriz cuadrada con los cofactores correspondientes de una fila distinta es igual a cero. Lo mismo se aplica a las columnas.

La Matriz Inversa

Ahora ya podemos definir la operación matricial correspondiente a la división escalar. La inversa de la matriz cuadrada A es la matriz única A1 con elementos tales que

AA1=A1A=I

Es posible que A1 no exista, en la misma forma que no es posible dividir entre cero con escalares. Entonces se dice que A es 𝑠𝑖𝑛𝑔𝑢𝑙𝑎𝑟. Las matrices cuyas inversas existen se conocen como 𝑛𝑜𝑠𝑖𝑛𝑔𝑢𝑙𝑎𝑟𝑒𝑠.

Los elementos de A1 pueden ser calculadas a partir de dos resultados de la sección anterior. Se forma la matriz de cofactores Cij:

C=[C11C1nCn1Cnn]

conocida como la 𝑎𝑑𝑗𝑢𝑛𝑡𝑎 de A Entonces el producto interno de la i-ésima fila de C y la h-ésima fila de A es igual a |A| si i=j y es igual a cero si ih. Si tomamos la transpuesta de C y dividimos cada elemento entre |A|, tendremos entonces la inversa deseada:

A1=[1|A|C111|A|Cn11|A|C1n1|A|Cnn]

Es evidente de esta última expresión que la matriz inversa existe si y sólo si el determinante de A es distinto de cero. El cálculo de A1 por medio de cofactores es muy ineficiente para muchas aplicaciones prácticas y se considerarán otros métodos en la siguiente sección.

Se usarán con frecuencia las siguientes propiedades de las inversas:

  1. La inversa de una matriz simétrica también es simétrica.
  2. La inversa de la transpuesta de A es la transpuesta de A1.
  3. La inversa del producto de varias matrices cuadradas en igual al producto de las inversas en el orden contrario: (ABC)1=C1B1A1
  4. Si c es un escalar distinto de cero, (cA)1=1/cA1.

Ejemplo: La inversa de

A=[2000040000320012]

es

A1=[1200001400001212001434]

El Rango de una Matriz

Dos vectores de p componentes se dice que son linealmente dependientes si los elementos de un vector son proporcionales a los del segundo. Por lo tanto, los vectores fila x=[1,0,1]y=[4,0,4] son linealmente dependientes, mientras que u=[2,1,0,7]v=[6,2,0,0] son linealmente independientes. Un conjunto de k vectores equidimensionales se conoce como linealmente independiente si no es posible expresar cualquier vector del conjunto como alguna combinación lineal de los vectores restantes. Esto es, los vectores x1,,xk forman un conjunto linealmente independiente si no existen escalares c1,,ck tales que para algun vector xi en el conjunto se da que cixi=c1x1++ci1xi1+ci+1xi+1++ckxk. Los vectores x=[1,1,2]y=[2,0,1]z=[0,2,5] constituyen un conjunto linealmente dependiente ya que z=2xy, mientras que los vectores unitarios t=[1,0,0]u=[0,1,0]v=[0,0,1] son linealmente independientes.

Ejemplo: Supóngase que una cierta prueba de habilidades cognoscitivas consiste de seis subescalas. Las tres primeras miden ciertas habilidades verbales, y las calificaciones se suman para obtener lo que se llama la medida verbal. Las otras tres reflejan ciertas habilidades motrices y espaciales y el total se conoce como la medida de desempeño. Finalmente, la suma de las seis pruebas se usa como una medida general de habilidad cognoscitiva. La prueba le ha sido proporcionada a un cierto número de individuos y se ha propuesto que las nueve medidas se usen para tratar de relacionar la inteligencia con otras medidas obtenidas de los individuos. Sin embargo, si cada muestra de observaciones sobre una medida se considera como un vector de N componentes, se puede ver de inmediato que sólo seis de los vectores son linealmente independientes y que no se ha obtenido información nueva alguna de las tres medidas derivadas. Se verá más adelante que el incluír éstas composiciones lineales pueden impedir algunos tipos de análisis estadísticos.

Formalicemos ahora el grado de independencia lineal en un conjunto de vectores como el rango de una matriz formada por los vectores. Supóngase por el momente que el número k de vectores no excede la dimensionalidad p de los vectores. Entonces el rango de

X=[xxk]

es el número de vectores fila linealmente independientes de la matriz. El rango puede variar desde cero para una matriz nula, hasta k para una matriz de rango completo. Si, por otro lado, el número de filas de X es mayor que el número de columnas, el rango de \textbf{X} será el número de columnas linealmente independientes. En cualquiera de los casos, se puede mostrar que el rango de una matriz es un número único, sin importar si viene del cálculo con las filas o las columnas. Tenemos entonces las siguiente propiedad: La matriz A tiene un rango igual a r si contiene al menos un menor distinto de cero de r×r dimensiones y ningún menor distinto de cero con dimensionalidad mayor que r.

Ejemplo: La matriz

[1234369124321137118642]

tiene un rango de dos, ya que se puede mostrar que la segunda fila es igual a tres veces la primera, la fila cuatro es igual a la diferencia de las filas dos y tres, y la fila cinco es igual a dos veces la fila tres. Las únicas filas linealmente independientes son la uno y la tres, y se dice que forman una base de los cinco vectores fila.

El rango tiene estas importantes propiedades:

  1. El rango de A es igual al rango de A. Esto viene de la equivalencia de las definiciones de rango para filas y columnas.
  2. El rango de AA es igual al de A. Similarmente, el rango de AA es equivalente al rango de A.
  3. El rango de A no cambia si se pre- o posmultiplica A por una matriz no singular.

Operaciones Elementales de Filas y Columnas

El rango de una matriz no cambia al realizar las siguientes operaciones elementales de filas y columnas:

  1. Intercambio de dos filas o dos columnas.
  2. La multiplicación de todos los elementos de una fila o una columna por una constante escalar.
  3. La suma de una fila o columna cuyos elementos han sido multiplicados por una constante escalar a otra fila o columna.

Estas transformaciones se pueden representar por matrices no singulares. Las operaciones de fila se llevan a cabo por premultiplicación de la matriz dada por la matriz de la operación elemental, mientras que las operaciones de columna se llevan a cabo por posmultiplicación. Por la propiedad 3 del párrafo anterior tales transformaciones no singulares dejan al rango invariante. Eligiendo la secuencia apropiada de operaciones de fila o columna se puede reducir la matriz a una forma que consiste solamente de columnas o filas linealmente independientes, y así se determina su rango.

Ejemplo: Las matrices

E1=[010100001]E2=[c00010001]E3=[100d10001]

se pueden usar para llevar a cabo transformaciones elementales sobre las primeras dos filas de

A=[512332]

dando así

E1A=[235132]E2A=[5cc2332]E3A=[515d2d+332]

Usemos ahora las operaciones elementales de fila para calcular el rango de la matriz

[102321125306]

Nótese que la última fila es igual a la primera fila multiplicada por 3. La fila tres es igual a la fila dos mas dos veces la fila uno. Operaciones sucesivas de fila apropiadas reducen A en la siguiente forma:

[102321125000][102321000000]

Ya que las filas restantes son linealmente independientes, se concluye que A es de rango igual a dos.

Ambas operaciones de fila y columna se pueden aplicar simultáneamente a cualquier matriz de m×n para reducirla a su forma canónica

F=[10001000]

la cual contiene un uno en las primeras r posiciones diagonales y cero en todas las demás. Esto quiere decir que para cada matriz A existen matrices elementales de transformación de filas y columnas llamadas R1,Rp,C1,,Cq tales que

RpR1AC1Cq=PAQ=F

es la forma canónica de A. Pero si A es cuadrada y de rango completo n, entonces las operaciones de fila producirán

RpR1A=I

esto significa que

A1=RpR1I

Por lo tanto, la misma secuencia de operaciones elementales de fila que reduce A a la matriz identidad transforma la matriz identidad de n×n a la inversa de A. Esta propiedad de las transformaciones elementales nos proporciona con una herramienta poderosa para invertir matrices: simplemente se expresa la matriz de n×2n

[AI]

y se aplican operaciones elementales a cada fila con el fin de transformar las primeras n columnas en la matriz identidad. Cuando esto ha sido logrado, aparecerá A1 en las últimas n columnas.


Ejemplo: La transformaciones sucesivas en la inversión de

A=[112233318]

se muestran a continuación:

[112100233010318001]
[112100011210042301]
[1033100112100021141]
[10013.551.50103.510.50015.520.5]

y

A1=[13.551.53.510.55.520.5]

El determinante de una matriz también puede ser calculado por medio de operaciones elementales de filas o columnas ya que por la propiedad 5 de la sección 2.4 estas transformaciones no alteran su valor. Este proceso, llamado condensación pivotal, consiste en reducir la matriz a forma triangular, de donde el determinante se puede calcular como el producto de los elementos diagonales. Si se usan operaciones de fila, la matriz se expresa con el elemento más grande de la primera columna en la posición (1,1). Ese elemento se usa como el pivote para reducir a cero los elementos restantes de la columna. Estos reposicionamientos y reducciones se continúan hasta que se llega a la forma triangular de la matriz. Se elige el elemento más granda por cuestiones de exactitud numérica.

Ejemplo: Vamos a evaluar el determinante de la matriz

A=[105206321451235138]

Empezamos restando múltiplos apropriados de la primera fila de las filas restantes:

[10520003.210312.8301.548]

Ya que el elemento (2,2) es igual a cero, intercambiamos la segunda y tercera fila de la matriz, y compensamos el cambio de signo del determinante multiplicando la nueva segunda fila por -1:

[105200312.83003.2101.548]

Una operación de fila pivoteando en la segunda columna transforma la matriz anterior en:

[105200312.83003.210010.49.5]

Finalmente tenemos

[105200312.83003.210006.25]

y el determinante es:

|A|=(10)(3)(3.2)(6.25)=600

Matrices Inversas Generalizadas

Se han propuesto varias generalizaciones de la matriz inversa para matrices rectangulares de cualquier rango. Una inversa generalizada que es útil para resolver sistemas de ecuaciones lineales es la matriz G la cual satisface

AGA=A

donde A es de p×q dimensiones y de rango r, mientras que G tiene que ser necesariamente de q×p dimensiones y del mismo rango que A. Existen otros tipos de inversas generalizadas, las que satisfacen las siguientes condiciones:

GAG=G(GA)=GA(AG)=AG

Nuestra matriz G se puede calcular a partir de la reducción canónica de A. Expresamos

PAQ=[D000]

donde D es una matriz diagonal de r×r (que no es necesariamente la identidad) y las matrices nulas tienen las dimensiones apropiadas. Las matrices P y Q son los productos respectivos definidos anteriormente. Presentamos ahora la matriz F de q×p:

F=[D1000]

Entonces G=QFP es una inversa generalizada de la matriz A ya que uno puede verificarlo reemplazando A en la expresión por su representación P1FQ1. La matriz G no es única. a menos que A sea cuadrada y no singular.

Ejemplo: Vamos a calcular la inversa generalizada de la matriz A vista en un ejemplo anterior. Las matrices de operadores de fila que reducen la tercera y la cuarta fila a los vectores nulos son:

R1=[1000010000103001]R2=[1000010021100001]

Entonces

P=R2R1=[1000010021103001]

Las transformaciones de columna que reducen a PA a la forma diagonal canónica son

C1=[10032112001]C2=[102010001]

y

Q=C1C2=[10232172001]

Entonces

F=PAQ=[100020000000]F=[1000012000000]

y

G=[10003212000000]

es una inversa generalizada de A.

Ecuaciones Lineales Simultáneas

El conjunto de ecuaciones con las incógnitas x1,,xn

a11x1++a1nxn=c1an1x1++annxn=cn

se conoce como un sistema de ecuaciones lineales simultáneas en n incógnitas o sistema lineal y se puede expresar en forma compacta usando matrices como

Ax=c

donde A es la matriz de coeficientes de m×n, x=[x1,,xn], y c=[c1,,cm] El sistema general Ax=c de m ecuaciones en n incógnitas tiene una solución si y solo si la matriz aumentada de m×n [Ac] tiene el mismo rango r que A. Si no es así, entonces se dice que el sistema es inconsistente. Es esencial distinguir entre sistemas homogéneos, para los cuales c=0, y sistemas no homogéneos. Se considerarán tres tipos de ecuaciones que son particularmente relevantes:

Sistemas No Homogéneos: A cuadrada y no singular

Debido a que A1 existe, la solución única del sistema es

x=A1c

Esto viene de premultiplicar ambos lados de la ecuación por A1.

Ejemplo: La matriz inversa del sistema

x1+x2x3=1x1+x2+x3=1x1x2+x3=1

es

[120121212001212]

La solución es

x1=12(1)+0(1)+12(1)=1x2=12(1)+12(1)+0(1)=0x3=0(1)+12(1)+12(1)=0

Sistemas No Homogéneos: A m×n y Rango r

Si se satisface la condición sobre los rangos de las matrices aumentadas y de coeficientes, se puede encontrar una solución seleccionando cualesquier r ecuaciones linealmente independientes y obteniendo r de las n incógnitas en términos de las constantes ci y de las nr variables restantes.

Ejemplo: Las ecuaciones

x1+x2=2x1+x2=1

se pueden interpretar geométricamente como dos líneas paralelas en el plano x1x2. Debido a que no intersectan, el sistema no puede tener solución. El rango de la matriz de coeficientes

[1111]

es uno, mientras que el de la matriz aumentada

[112111]

es dos.

Ejemplo: El sistema

2x1+3x2x3=1x2+x3=2

tiene matrices aumentadas y de coeficientes con rango igual a dos. Se expresan las ecuaciones como

2x1+3x2x3=1x2=2x3

y se obtiene x1 por sustitución. La solución general está dada por el vector

[12(5+4x3),2x3,x3]

donde x3 puede tomar cualquier valor.

Sistemas Homogéneos de Ecuaciones

No es posible que un sistema homogéneo de ecuaciones lineales sea inconsistente, ya que el rango de [A0] es el mismo que el de A. Todos los sistemas homogéneos se ven satisfechos por la solución trivial x=[0,,0], y si el rango de la matriz de coeficientes es igual al número de incógnitas n, ésta será la única solución. Por lo tanto un sistema homogéneo tentra una solución no trivial si y sólo si el rango r de A es estrictamente menor que n, y siempre será posible encontrar nr soluciones linealmente independientes del sistema tal que cualquier combinación lineal de éstas soluciones es también una solución. En aplicaciones estadísticas se encontrarán frecuentemente sistemas que contienen tantas incógnitas como ecuaciones, tales sistemas tienen soluciones no triviales si y sólo si los determinantes de los coeficientes desaparecen.

Ejemplo: El sistema

3x12x2=05x1+x2=0

define dos líneas en el plano x1x2 que intersectan en el origen. Por lo tanto la única solución es la trivial: [0,0].

Ejemplo: En el sistema

x1x2+2x3=0x1+3x22x3=03x1+x2+2x3=0

la tercera ecuación es igual a la suma de dos veces la primera mas la segunda, y entonces el rango es igual a dos. La única solución independiente se puede determinar en unidades de x3 resolviendo el sistema

x1x2=2x3x1+3x2=2x3

La solución general del conjunto original es, en unidades de x3

x1=x3x2=x3

Ejemplo: El sistema

x1+x2x3x4=0x2+3x3+x4=0x1x2+2x3=03x1+x22x4=0

también es de rango dos. La primera y tercera ecuaciones se pueden resolver convenientemente en términos de x3 y x4 para dar el vector solución

[12(x3+x4),12(3x3+x4),x3,x4]

Si hacemos x3 igual a cero y x4igual a uno, y alternativamente hacemos x3 igual a uno y x4 igual a cero, tendremos los siguientes vectores solución linealmente independientes:

[12,12,0,1]
[12,32,1,0]

Ya que cualquier combinación lineal de éstas soluciones es también una solución, la solución más general al sistema original es

x1=12(ab)x2=12(a+3b)x3=bx4=a

para a y b arbitrarios.

Solución por medio de inversas generalizadas

Se ha demostrado que el sistema Ax=c de m ecuaciones consistentes en n incógnitas tiene la solución

x*=Gc+(GA-I)z

donde G es la inversa generalizada de A definida por , I es la matriz identidad de n×n, y z es cualquier vector de n×1 constantes arbitrarias. Hacemos notar que el término que contine a z desaparece cuando G=A1.

Ejemplo: Obtendremos soluciones a los sistemas de los ejemplos X y Y por el método de las inversas generalizadas. Para el primer sistema, P=I y

Q=[13/22011001]F=[200010]
G=[1/23/20100]GA=[102011000]

La solución más general es

x=[1/2(5+z3),2+z3,z3]

Para el ejemplo Y

P=[100110211]Q=[111011001]F=[10001/40000]
P=[3/41/401/41/40000]GA=[101011000]

Si hacemos que z3 sea igual a x3la solución general es x=[x3,x3,x3].

Métodos Numéricos para Sistemas Lineales

Existen también una variedad de métodos computacionales iterativos y matriciales para obtener la solución de un sistema lineal. Ya que una cátedra sobre métodos numéricos para sistemas lineales está fuera del alcance de este texto, no abundaremos sobre el tema. Referiremos al lector a alguno de los bien conocidos textos sobre análisis numérico.

Vectores y Matrices Ortogonales

En la sección mostramos la expresión

cosθ=xy(xx)12(yy)12

para el coseno del ángulo entre los vectores x y y y observamos que si su producto interno desaparecía, entonces los vectores formaban un ángulo recto. Tales vectores se llaman ortogonales u ortonormales si sus longitudes han sido normalizadas a la unidad. Una matriz ortogonal T es una matriz cuadrada cuyas files son un conjunto de vectores ortonormales. Por lo tanto

TT=TT=I

y la inversa de T es simplemente su transpuesta T. Una matriz ortogonal sencilla de 2×2 es

[0110]

Esta es la matriz de transformación de una reflexión de los puntos en el plano xy alrededor de la línea de 45 grados. Una matriz ortogonal más general de esa dimensión es

T=[cosθsinθsinθcosθ]

y se interpreta como la matriz de transformación para la rotación de los ejes coordenados xy en un ángulo θ. Esto es, si x y y fueran las coordenadas de un punto bajo los ejes originales, el punto después de haber girado los ejes, tendría las coordenadas

u=xcosθ+ysinθv=xsinθ+ycosθ

donde los nuevos ejes coordenados han sido girados un ángulo de θ grados. Se pueden construír matrices ortogonales más grandes por medio del proceso de ortogonalización Gram-Schmidt empezando con una fila normalizada y armando la matriz según el requisito de mutua ortogonalidad de filas. Por ejemplo, la llamada matriz Helmert

T=[13131312120161626]

es una matriz ortogonal de 3×3.

La matriz ortogonal T de 3×3 se interpreta como la matriz de una transformación lineal equivalente a una rotación rígida o a una rotación seguida de una reflexión de los n ejes coordenados alrededor del origen. Las distancias en este espacio permanecen invariantes ante esta rotación, ya que si ejecutamos la transformación

y=Tx

entonces

xx=yTTy=yIy

y las suma de los cuadrados será invariante. Las matrices ortogonales tienen estas útiles propiedades:

  1. Las columnas de una matriz ortogonal son ortogonales.
  2. El determinante de una matriz ortogonal siempre será 1 ó -1. Ya que |TT|=|I|=1 y |T|=|T|, |T|=±1.
  3. El producto de matrices ortogonales de la misma dimensión es también ortogonal. Esto es, una secuencia de rotaciones rígidas y reflexiones de los ejes coordenados se puede expresar como una sola rotación rígida con las reflexiones apropiadas

Formas Cuadráticas

Una forma cuadrática en las variables x1,,xn es una expresión del tipo

f(x1,,xn)=a11x12+a22x22++annxn2+2a12x1x2++2a2nx1xn++2an1,nxn1xn=i=1nj=1naijxixj

donde aij=aji. Algunas de las aij pueden ser iguales a cero. Hacemos notar de inmediato que la forma cuadrática se puede expresar en notación matricial como xAx donde x=[x1,,xn]y A es la matriz simétrica de n×n de coeficientes. La forma cuadrática más sencilla es simplemente f(x)=a11x2, la ecuación de una parábola en la variable x. Las formas cuadráticas en donde las xi son variables aleatorias desempeñan un papel muy importante en la estadística de una y muchas variables. Por ejemplo, la suma del cuadrado de las desviaciones alrededor de la media muestral

i=1N(xix¯)2=i=1Nxi21N(xi)2

se puede expresar como una forma cuadrática en términos de las observaciones xi usando la matriz

A=[N1N1N1N1NN1N1N1N1NN1N]

Una matriz simétrica A y su forma simétrica asociada se llaman definidas positivas si xAx>0 para toda x no nula. Si xAx0 la forma y su matriz se conocen como positivas semidefinidas. Las definiciones son similares para las formas negativas definidas y las formas negativas semidefinidas. Una forma indefinida puede tomar valores positivos, negativos o cero. Vamos a necesitar en los capítulos posteriores las propiedades especiales de las matrices positivas definidas y semidefinidas como también de las formas cuadráticas.

Las formas positivas definidas tienen matrices de rango completo. Es posible, a través de completar el cuadrado sucesivamente, el reducir tales formas en n variables a la forma

d1y12++dnyn2

la cual solo contiene cuadrados de las nuevas variables yi y con coeficientes di>0. En forma similar, una forma positiva semidefinida cuadrática se puede reducir a

d1y12++dryr2

donde todos los coeficientes son positivos, y rn es el rango de la matriz de la forma. Sin embargo, estas propiedades no son medios convenientes para determinar la naturaleza de la forma y procederemos a declarar una condición necesaria y suficiente para la definitez o semidefinitez positiva. A partir de la matriz, se forma la secuencia de determinantes menores principales

p0=1p1=a11p2=|a11a12a12a22|pi=|a11a1ia1iaii|pn=|A|

Si A es de rango r se dice que es regular si pr0 y no hay pi consecutivos que sean cero. Siempre será posible reexpresar cualquier matriz simétrica en forma regular intercambiando las filas y, al mismo tiempo, las columnas correspondientes. Entonces, si A es una matriz arreglada regularmente,

  1. Una condición necesaria y suficiente para la definitez positiva es que pi>0 para todo i=1,,n .
  2. Una condición necesaria y suficiente para la semidefinitez positiva es que p1>0,,pr>0 y los nrpi restantes sean iguales a cero, donde r puede ser igual a n.


Ejemplo: La matriz

[460690000]

tiene la secuencia de determinantes principales menores p0=1, p1=4, p2=0,p3=0, y por eso no se encuentra regularmente arreglada. Podemos reordenar las filas y las columnas para obtener la nueva matriz:

[200046069]

la cual tiene la secuencia de determinantes p0=1, p1=2, p2=8, p3=0. La matriz y su forma cuadrática son positivas semidefinidas con rango igual a dos.


Ejemplo: La matriz de la ecuación X que es la suma de cuadrados de la muestra es un caso particular de una matriz en patrón con una elemento común diagonal a y elementos b que se encuentran fuera de la diagonal. El determinante de una matriz así de i×i dimensiones es

(ab)i1[a+(i1)b]

de tal forma que los determinantes menores principales de son

pi=1N[N1(i1)]

Los primeros N1 determinantes son positivos, mientras que el N-ésimo siempre será cero. Entonces la suma de las desviaciones cuadradas es una forma cuadrática positiva semidefinida de rango N1.

Las raíces y vectores característicos de una matriz

Las raíces características de la matriz A de p×p son las soluciones de la ecuación determinante

|AλI|=0

El determinante es un polinomio de p-ésimo grado en la variable λ, y por eso A tiene p raíces características. El desarrollo de Laplace del determinante característico nos permite expresar el polinomio característico como

|AλI|=(λ)p+S1(λ)p1+S2(λ)p2+Sp1λ+|A|

donde Si es la suma de todos los i×i determinantes menores. S1 es simplemente la suma de los elementos diagonales de A, o trA. De la teoría de ecuaciones polinomiales se puede obtener que:

  1. El producto de las raíces características de A es igual a |A|.
  2. La suma de las raíces características de A es igual a la traza de A.


Ejemplo: La matriz

A=[211121112]

tiene una traza de 6 y tres determinantes menores principales de 2×2 cada uno igual a

|2112|=3

mientras que |A|=4. La ecuación característica de A es

λ36λ2+9λ4=0

y sus raíces son 1, 1, y 4.


De aquí en adelante usaremos frecuentemente las siguientes propiedades de las raíces características:

  1. Las raíces características de una matriz simétrica con elementos reales son todas reales.
  2. Las raíces características de una matriz positiva definida son todas positivas.
  3. Si una matriz de simétrica de n×n es positiva semidefinida con rango r, contiene exactamente r raíces características positivas y nr raíces cero.
  4. Las raíces características distintas de cero del producto AB son iguales a las raíces distintas de cero del producto BA. Por lo tanto las trazas de AB y BA son iguales.
  5. Las raíces características de una matriz diagonal son los elementos diagonales mismos.

Con cada raíz característica λi de la matriz cuadrada A se encuentra asociado un vector característico xi cuyos elementos satisfacen el sistema homogéneo de ecuaciones

[AλiI]xi=0

Por definición de la raíz característica el determinante del sistema desaparece, y siempre existe una solución no trivial xi. Muchos de los vectores característicos que encontraremos en el futuro serán calculados a partir de matrices simétricas. Las raíces y vectores característicos de tales matrices tienen las siguientes propiedades:

  1. Si λi y λj son raíces características distintas de la matriz simétrica A, sus vectores asociados xi y xj serán ortogonales. Esto es evidente si premultiplicamos las definiciones de los vectores
Axi=λixiAxj=λjxj

por xj y xi respectivamente. Pero esto implica que

λixjxi=λjxixj

y ya que λiλj podemos concluír que los vectores son ortogonales.

  1. Para cada matriz simétrica real A existe una matriz ortogonal P tal que
PAP=D

donde D es la matriz diagonal de las raíces características de A. Los vectores característicos normalizados de A pueden tomarse como las columnas de P. Aún si las raíces características no son distintas, puede ser posible seleccionar los elementos de sus vectores para proporcionar un conjunto mutuamente ortogonal de vectores característicos.

Estas propiedades de las matrices simétricas tienen implicaciones importantes para las formas cuadráticas. Si aplicamos la transformación ortogonal

x=Py

a las p variables en la forma cuadrática xAx, entonces la forma se convierte en

xAx=yPAPy=yDy=λ1yi2++λryr2

donde la λi son las raíces características de la matriz de coeficientes, y r es el rango de la forma. Cualquier forma cuadrática real puede reducirse a una suma pesada de cuadrados calculando los vectores y raíces característicos de su matriz.


Ejemplo: El vector característico de la raíz más grande del ejemplo anterior debe satisfacer las ecuaciones

2x11+x12+x13=0x112x12+x13=0x11+x122x13=0

Si fijamos x13 arbitrariamente igual a uno y resolvemos las primeras dos ecuaciones no homogéneas, el vector característico será

x=[1,1,1]

y por supuesto cualquier vector no nulo [a,a,a] es un vector característico para λ3=4. El vector asociado con la doble raíz λ1=λ2=1 debe satisfacer el sistema con la ecuación linealmente independiente

x21+x22+x23=0

La solución más general a esto es el vector

[a,b,ab]

y seleccionando adecuadamente a y b se pueden generar dos vectores característicos linealmente independientes para la raíz doble. Nótese que cualquier elección de a y b dará vectores ortogonales al primer vector [1,1,1]. Podemos elegir ay b para continuar esta ortogonalidad. Por ejemplo,

x1=[0,1,1]x2=[2,1,1]

Ejemplo: Las matrices cuadradas con la propiedad de

AA=A

se llaman idempotentes y desempeñan un papel sumamente importante en la teoría del análisis de varianza. Las raíces características de una matriz idempotente son cero o uno, y una forma cuadrática con una matriz idempotente puede reducirse a una suma de r términos cuadrados. Es fácil verificar que la matriz es idempotente y que es posible realizar la transformación

i=1N(xix¯)2=y12++yN12

a una suma de los cuadrados de N1 variables aleatorias nuevas cuya independencia estadística proviene de la ortogonalidad de la transformación.

Afortunadamente, hoy en día cualquier software matemático incluye rutinas para el cálculo de las raíces y vectores característicos de matrices por lo que no entraremos en el tema de métodos numéricos para éstos cálculos. Sin embargo, las rutinas se cubrirán detenidamente en el capítulo correspondiente al trato de matrices por medio del lenguaje R.

Particiones de matrices

Con frecuencia es necesario o conveniente agrupar columnas o filas de una matriz debido a que sus variables comparten ciertas características. Tal matriz se puede expresar como un arreglo

A=[A11A1nAm1Amn]

de submatrices Aij que contienen ri filas y cj columnas, donde es obvio que todas las submatrices en una fila dada de A deben tener el mismo número de filas y cada columna debe estar compuesta de matrices con el mismo número de columnas. Las operaciones con matrices partidas en esta forma son similares a las ordinarias, excepto que se debe tomar en cuenta la naturaleza no escalar de los participantes. La suma de las matrices partidas A y B cuyas submatrices tienen dimensiones similares es

A+B=[A11+B11A1n+B1nAm1+Bm1Amn+Bmn]

El producto de las matrices partidas A y B es

AB=[j=1nA1jBj1j=1nA1jBjpj=1nAmjBj1j=1nAmjBjp]

Las dimensiones dentro de cada producto de las submatrices debe conformarse; si las submatrices de A tienen el número de columnas c1,,cn, el número de filas de B debe ser c1,,cn.

Cuando los elementos de las matrices partidas son mostrados en ejemplos numéricos, es conveniente separar las submatrices usando líneas punteadas o separándolas apropiadamente.

Derivadas con vectores y matrices

En los siguientes capítulos va a ser necesario usar fórmulas para encontrar las derivadas parciales de posibilidades y otras funciones escalares de vectores y matrices. Sea f(x) una función continua de los elementos del vector x=[x1,,xp] cuya primera y segunda derivadas

f(x)xi2f(x)xixj

existen para todos los puntos \textbf{x} en alguna región del espacio euclideanto de p dimensiones. Se define el operador vectorial de derivada parcial como

x=[xixp]

Aplicando este operador a f(x) se obtiene el vector de derivadas parciales

f(x)x=[f(x)x1f(x)xp]

Las siguientes funciones y sus derivadas son especialmente importantes:

  1. Si f(x) es constante para toda \textbf{x},
f(x)x=[00]
  1. f(x)=ax:

f(x)x=[a1ap] Nótese que la forma columnar del vector de derivadas no cambia si expresamos f(x)=xa.

  1. Para calcular el vector de derivadas de la forma cuadrática xAX se expresa como

Error al representar (error de sintaxis): {\displaystyle \textbf{x}^\prime\textbf{Ax} = \sum_{i=1}^p \sum_{j=1}^p a_{ij}x_ix_j = a_{ii}x_i^2 + 2x_i \sum_{\substack{j=1 \\ j \neq i}}a_{ij}x_j + \sum\sum_{\substack{h \neq i\\j \neq i}}a_{hj}x_hx_j } y se deriva con respecto a xi. Si hacemos que ai sea la i-ésima fila de la matriz simétrica A, la derivada parcial de la forma cuadrática con respecto a xi será

2aix=2j=1paijxj

y el vector de derivadas parciales es

xAxx=2Ax

En particular, el vector de derivadas de la suma de cuadrados xx es simplemente 2x.

  1. En la función cuadrática más general
h(x)=(aCx)K(aCx)

sea \textbf{K} una matriz simétrica de N×N, C=[C1,,Cp] es una matriz de constantes N×p, y a es un vector de N×1. Si hacemos que u=aCx, las derivadas de h(x) se pueden calcular por medio de la regla de la cadena:

h(x)xi=j=1(uKu)ujujxi=2uKCii=1,,p

y

h(x)x=2CK(aCx)
  1. La matriz de derivadas parciales de segundo orden de una función de p variables se conoce como la matriz hesiana :
H=2f(x)xx=[2f(x)xi22f(x)x1xp2f(x)x1xp2f(x)xp2]

Por ejemplo, la matriz hesiana de f(x)=xAx es simplemente 2A. La matriz hesiana es necesariamente simétrica si f(x) satisface todas las condiciones originales de continuidad y existencia de la primera y segunda derivadas.

Determinación de máximos y mínimos

Una condición necesaria y suficiente para un máximo o mínimo de f(x) en x=x0 es que

f(x)x=0

en ese punto. Tal valor de la función se conoce como un máximo o mínimo estacionario, a diferencia de un extremo global el cual puede existir en la frontera de la región admisible de x o como una cúspide o alguna otra forma en donde las derivadas se encuentran indefinidas. Una condición suficiente para un máximo en el punto x0 donde se satisface la ecuación X es que la matriz hesiana evaluada en x0 sea negativa definida. Al mismo tiempo, una hesiana positiva definida es una condición suficiente para un mínimo estacionario. Si la hesiana es semidefinida, la prueba no es concluyente, y se deben examinar los términos de más alto orden del desarrollo de f(x) en serie de Taylor en la vecindad del punto estacionario. Si la hesiana es una matriz indefinida de x0, el punto no es ni un máximo ni un mínimo.

Como una aplicación de éstas reglas, determinemos el extremo estacionario de la función h(x) dada por la ecuación(). Haciendo la ecuación() igual al vector nulo, podemos ver que el punto estacionario debe satisfacer el sistema de ecuaciones lineales

CKCx=CKA

y si CKC es de rango completo p, entonces

x=(CKC)1CKa

Si K es positiva definida y C es de rango p, la hesiana 2CKC será positiva definida y la solución () minimizará h(x).

Maximización sujeta a restricciones

Con frecuencia será necesario maximizar o minimizar una función f(x) sujeta a la restricción g(x)=c sobre los valores de x. El método más general y eficiente es el de multiplicadores de Lagrange. Los fundamentos matemáticos de ésta técnica se pueden encontrar en cualquier texto de cálculo moderno. Esencialmente, se forma una función nueva

h(x,λ)=f(x)λ[g(x)c]

Para un valor estacionario restringido se deben cumplir estas condiciones:

h(x,λ)x=f(x)xλg(x)x=0h(x,λ)λ=g(x)+c=0

La segunda condición es simplemente la restricción original. En la práctica uno debe resolver las ecuaciones () con respecto a la variable x después de haber eliminado λ por medio de manipulación algebraica o por medio de la naturaleza de las ecuaciones.

Como un ejemplo, vamos a encontrar el valor máximo de la función cuadrática f(x)=xAx donde A es una matriz positiva definida, sujeta a la restricción xx=1. Entonces

h(x,λ)=xAxλ(xx1)

y () es el sistema de ecuaciones lineales

[AλI]x=0

que no es nada más sino la definición de los valores característicos de A. Premultiplicando por x y usando la restricción nos proporciona λ=xAx. Obviamente, si la forma cuadrática va a ser un máximo, entonces λ debe ser la raíz característica más grande de A, y x su vector asociado. La restricción establece que el vector debe ser normalizado a una longitud igual a uno. Similarmente, el valor mínimo de f(x) sujeto a la condición estará dado por el vector característico asociado a la raíz característica más pequeña.

La derivada del determinante de la matriz A de n×n con respecto a su elemento aij se puede encontrar a partir de la expansión de A en los cofactores de la i-ésima fila o j-ésima columna. Usando la primera expansión

|A|aij=aij(ai1Ai1++aijAij++ainAin)=Aij

Si A es simétrica,

|A|aii=Aii

y se puede demostrar de los fórmulas más generales para las derivadas de determinantes, cuyos elementos son a su vez funciones de otras variables, que

|A|aij=Aij

Más adelante será necesario derivar formas cuadráticas y otros escalares con respecto a los elementos de sus matrices constituyentes. Si X es una matriz de m×n con un elemento general xij, su derivada con respecto a ese elemento es

Xxij=Jij

donde Jij es una matriz de m×n con uno en la posición ij y ceros en las demás. Si X es simétrica

Xxij=Jij+Jjiij

La regla para derivar un producto de matrices es parecida a la de los escalares. Supóngase que los elementos de las matrices conformables X y Y son funciones xij(z),yij(z)de alguna variable z. Entonces

XYz=XxY+XYz

Esta fórmula lleva a una forma de derivar la inversa de la matriz cuadrada no singular X. Expresamos

I=XX1

Entonces

Ixij=JijX1+XX1xij=0

y

X1xij=X1JijX1

Si X es simétrica

X1xij={X1JiiX1i=jX1(Jij+Jji)X1ij

Avances

El siguiente capítulo tratará la implementación de rutinas para el manejo de matrices y vectores usando el lenguaje R. Esto concluye el presente capítulo.

Vectores y Matrices en R

Vectores

Como ya hemos visto, R opera sobre objetos y estos objetos pueden ser muchos tipos. Uno de los objetos más sencillos es el tipo vector. Existen otros objetos más complejos tales como matrices, arreglos, dataframes y listas. Nos abocaremos a ellos a su debido tiempo. Para trabajar eficientemente con sus datos, debe poseerse la habilidad de manipular objetos en R. Es necesario saber como crear, unir, y obtener subconjuntos de estos objetos. Dentro de R, un objecto tipo vector consiste en un conjunto ordenado de los elementos del mismo tipo.

La longitud de un vector es el número de sus elementos. Como ya se ha dicho, todos los elementos deben ser del mismo tipo, sin embargo existe una excepción a esta regla. Cualquier tipo se puede mezclar con el elemento especial NA que quiere decir Not Available (No se encuentra disponible). El tipo NA no es un valor en sí lo que implica el uso de funciones especiales. Un vector con dimensión igual a cero será el vector vacío.

Creando vectores

Los vectores pueden ser construídos de varias formas:

> v <- 1 : 10  # Se crea un vector llamado 'v' conteniendo los elementos del 1 al 10.
> v <- c(1, 5, 3) # c() encadena los elementos

Se puede también crear un vector llamando la función:

> v <- vector() # Un vector con longitud cero de tipo logico
> (v <- vector(length=10))
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

Del código anterior se concluye que la función vector() produce un vector de tipo logical por omisión. Si el vector tiene una longitud, todos los elementos se inicializan con el valor de FALSE. Para crear un vector con un tipo específico, sólo hay que llamar el tipo con una función, con o sin longitud:

> v <- integer()
> (v <- double(10))
[1] 0 0 0 0 0 0 0 0 0 0
> (v <- character(10))
[1] "" "" "" "" "" "" "" "" "" ""

También puede crear vectores asignándole otros vectores. Por ejemplo, la función c() regresa con un vector. Cuando se le asigna un objeto al resultado de c(), el objeto se vuelve un vector:

> v <- c(0,-10, 1000)
[1]    0  -10 1000

Ya que un vector debe incluír elementos de un tipo sencillo, si se encadenan vectores con c(), R forzará a que todos los tipos se reduzcan al más sencillo. Por ejemplo:

> (x <- c('Amor', 'Sin', 'Barreras'))
[1] "Amor"     "Sin"      "Barreras"
> (y <- c(1,2,3))
[1] 1 2 3
> (z <- c(x,y))
[1] "Amor"     "Sin"      "Barreras" "1"    "2"        ``3

Obsérvese este código con atención. En la línea 1 se asignan tres cadenas de caracteres a x. En la línea 3 se crea un vector numérico de tipo double con los valores 1, 2, y 3. Al encadenar los vectores x y y, R convierte todo a modo carácter. Por eso terminan encerrados con comillas. Esto puede parecer confuso, pero al tomar en cuenta que R trata de ser coherente, deja de serlo.

Funciones con vectores

Al trabajar con datos es necesario trabajar con vectores. Veremos algunas funciones que permiten manipular vectores como la siguiente:

length(): Para obtener la longitud de un vector

> (t.f <- c(TRUE, TRUE, FALSE, TRUE)); length(t.f)
[1] TRUE TRUE FALSE TRUE
[1] 4

sum(): Para obtener la suma de los elementos de un vector

> (unVec <- 1:20)
[1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> (promedio <- sum(unVec)/length(unVec))
[1] 10.5

Aritmética vectorial

Las operaciones binarias (esto es, que requieren de dos operandos) como suma, resta, división y multiplicación se usan en operaciones vectoriales. Las operaciones se realizan elemento por elemento usando los símbolos habituales de +, -, \*, y /.

> (x <- 1.2:6.4)
[1] 1.2 2.2 3.2 4.2 5.2 6.2
> x+1
[1] 2.2 3.2 4.2 5.2 6.2 7.2
> x*2
[1]  2.4  4.4  6.4  8.4 10.4 12.4
> x-0.4
[1] 0.8 1.8 2.8 3.8 4.8 5.8
> x -0.2
[1] 1 2 3 4 5 6
> x / 2
[1] 0.6 1.1 1.6 2.1 2.6 3.1
>

Nótese como en cada línea, los elementos de x son alterados individualmente por la operación especificada.

Cuando dos vectores son de la misma longitud y del mismo tipo, el resultado de x/y es un vector cuyo primer elemento es x[1]/y[1], el segundo es x[2]/y[2], y así en adelante:

> (x <- seq(2, 10, by = 2))
[1]  2  4  6  8 10
> (y <- 1:5)
[1] 1 2 3 4 5
> x/y
[1] 2 2 2 2 2

Deseamos hacer notar aquí una aparente inconsistencia: Cuando se divide un vector entre un escalar, obtenemos un vector con cada elemento dividido entre el escalar. Pero cuando se divide un vector entre otro de la misma longitud, el resultado es una división de cada elemento entre su correspondiente contraparte. En realidad, esto es consistente una vez que se explican las reglas: Primero, un valor individual es un vector con longitud de 1. Segundo, si x>y y se usa aritmética binaria, R iterará sobre los elementos de y hasta que su longitud sea igual a la de y. Sin embargo, R se quejará de la operación.

Tomando en cuenta esto, la longitud de cualquier vector es un múltiplo entero de la longitud de un vector de tamaño 1. Por ejemplo, un vector de longitud 10 es 10 veces más grande que un vector de longitud 1. Si se realiza una operación binaria entre dos vectores cuyas longitudes son múltiplos respectivos, R procederá sin problemas. Por ejemplo, si se divide un vector x de longitud 10 entre un vector y de longitud 5, R usará los elementos del vector y dos veces para realizar la operación. Por otro lado, si se trata de realizar una operación binaria entre un vector de longitud 12 y uno de longitud 7, R arrojará un mensaje de aviso quejándose de la operación.

> options(digits=3) # Para no imprimir muchos decimales
> (x <- 1:10); (y <- 1:3); x/y
[1]  1  2  3  4  5  6  7  8  9 10
[1] 1 2 3
[1]  1.0  1.0  1.0  4.0  2.5  2.0  7.0  4.0  3.0 10.0
Warning message:
In x/y : longer object length is not a multiple of shorter object length

Se obtuvo el mensaje de aviso debido a que x no es un múltiplo entero de y.

Esta misma regla se aplica con funciones que implementan aritmética vectorial. Por ejemplo, considérese la función de raíz cuadrada: sqrt(). R sigue la regla de operar sobre un elemento a la vez:

> (x <- 1:5); sqrt(x)
[1] 1 2 3 4 5
[1] 1.00 1.41 1.73 2.00 2.24

Vectores de caracteres

Con frecuencia se necesita manipular caracteres. R posee un extenso conjunto de funciones para tratar con caracteres. Se verán en esta sección algunas de estas funciones y se presentarán algunas adicionales en la medida que se necesiten. Las cadenas de caracteres se delimitan por comillas dobles o sencillas. Si se necesitan comillas en una cadena de caracteres, se puede alternar entre comillas dobles y sencillas. Por ejemplo:

> (s <- c("Our friend O'Brien", 'the engineer'))
[1] "Our friend O'Brien" "the engineer"

Si queremos crear una sola cadena a partir de los dos elementos en el vector s usamos la función paste():

> paste(s[1], s[2])
[1] "Our friend O'Brien the engineer"

Por omisión, paste() separa sus argumentos con un espacio. Si se desea un carácter diferente para espaciar los elementos, entonces se usa el argumento sep:

> paste(s[1], s[2], sep = '-')
[1] "Our friend O'Brien-the engineer"

Si se desea más información sobre la función paste() úsese help(paste).

Subconjuntos de vectores e índices

Una de las operaciones más frecuentes al manejar vectores es el extraer subconjuntos. Para extraer un subconjunto de un vector, hay que especificar los índices de los elemenos que se desea extraer o excluír. Para demostrar vamos a crear un vector y extraer sus elementos en dos formas distintas:

> x <- 15:30
> x
[1] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
> c(x[2],x[5]) # Extraemos el segundo y quinto valor del vector x
[1] 16 19
> x[c(2,5)] # Esta es otra forma de hacerlo
[1] 16 19

En la segunda forma, usamos algo llamado vector índice. El vector índice especifica los elementos que se deben extraer. Los vectores índice deben ser de uno de los siguientes cuatro modos: Lógico (TRUE, FALSE), enteros positivos, enteros negativos o cadenas de caracteres (strings). Vamos algunos ejemplos

Ejemplo: Vectores índice lógicos y datos faltantes. He aquí un caso típico. Se adquieren valores numéricos con algunos casos faltantes. El vector de datos que tenemos es de esta forma:

> (x <- c(10,20, NA, 4, NA, 2))
[1] 10 20 NA  4 NA  2

Deseamos calcular el promedio de este vector, de modo que realizamos la operación:

> sum(x)/length(x)
[1] NA

Debido a que ejecutamos operaciones sobre elementos NA, el resultado va a ser NA. De modo que necesitamos alguna forma de extraer del vector los datos que no son NA. Vamos a crear el siguiente vector:

> (i <- is.na(x))
[1] FALSE FALSE  TRUE FALSE  TRUE FALSE

La función is.na(x) examina cada elemento del vector x y si es NA le asigna al correspondiente elemento del vector i el valor de TRUE; de lo contrario, le asigna el valor FALSE. Ahora vamos a usar al vector i como un vector índice para extraer los valores que no son NA del vector x. Tomando en cuenta que si x tiene un valor numérico, el elemento correspondiente del vector i tiene el valor FALSE. Si x no tiene valor, entonces el elemento correspondiente de i es TRUE. Usamos entonces i y la negación de i para obtener:

> i ; !i
[1] FALSE FALSE  TRUE FALSE  TRUE FALSE
[1]  TRUE  TRUE FALSE  TRUE FALSE  TRUE
> (y <- x[!i]) # Usamos el vector negado de indices para extraer los valores numericos de x
[1] 10 20  4  2

Ahora calculamos el promedio de x, con los valores faltantes:

> n <- length(x[!i])
> nuevo.x <- x[!i]
> sum(nuevo.x)/n
[1] 9

Se puede obtener el mismo resultado con

> mean(x, na.rm = TRUE)
[1] 9

La función mean es una función intrínseca de R que calcula el promedio de un vector. El primer argumento de mean es el vector de datos, y el segundo es un argumento lógico que si se le asigna el valor de TRUE calcula el promedio sin tomar en cuenta los valores NA. El valor de na.rm por omisión es FALSE.

Ejemplo: Vector índice de enteros positivos. Esta es otra forma para excluír datos tipo NA:

> (x <- c(160, NA, 175, NA, 180))
[1] 160  NA 175  NA 180
> (no.na <- c(1,3,5))
[1] 1 3 5
> x[no.na] # Usamos el vector no.na como vector indice
[1] 160 175 180

Vamos ahora a extrar los elementos 20 al 30 de un vector x de longitud 100:

> x <- runif(100) # 100 numeros aleatorios entre 0 y 1
> round(x[20:30], 3) # Redondear e imprimir los elementos 20 al 30
[1] 0.340 0.262 0.165 0.322 0.510 0.924 0.511 0.258 0.046 0.418 0.854

La instrucción 20:30 crea un vector de enteros que corren del 20 al 30 y se usa para extraer los correspondientes elementos de x, mismos que se redondean a tres decimales usando la función round. Una ligera variación sobre este tema sería:

> (i <- c(20:25, 28, 35:49)) # 20 al 25, 28 y del 35 al 49
[1] 20 21 22 23 24 25 28 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
> round(x[i],2)
[1] 0.34 0.26 0.17 0.32 0.51 0.92 0.05 0.39 0.69 0.69 0.55 0.43 0.45 0.31 0.58
[16] 0.91 0.14 0.42 0.21 0.43 0.13 0.46

Dejamos que el lector interprete este código como ejercicio.

Ejemplo: Vector índice de enteros negativos. El efecto de un vector índice de enteros negativos es lo opuesto de lo que ocurre con los enteros positivos. Para extraer todos los elementos de x excepto los elementos del 20 al 30, se expresará como: x[-(20:30)]. Obsérvese como encerramos a 20:30 entre paréntesis, ya que si no lo hubiéramos hecho, R supondría que queremos extraer los elementos -20 al 30 y los índices negativos no son permitidos.

Ejemplo: Vector índice de cadenas de caracteres (strings). Medimos el peso x y la altura y de 5 personas:

> x <- c(160, NA, 175, NA, 180)
> y <- c(50,65,65,80,70)

Ahora, asociamos nombres con los datos:

> names(x) <- c("Ana", "Beto", "Carlos", "Diana", "Eduardo")

La función names(x) les da un nombre a los elementos de x. Para ver los datos los asociamos por columna con la función cbind():

> cbind(x,y)
x  y
Ana     160 50
Beto     NA 65
Carlos  175 65
Diana    NA 80
Eduardo 180 70

Ya que los índices tienen nombre, podemos extraer los elementos usando sus nombres

> x[c("Eduardo","Carlos")]
Eduardo  Carlos
180     175

Arreglos y Matrices

Los arreglos generalizan el concepto de vectores. Como vimos anteriormente, un vector tiene dimensión 1 y una longitud de al menos 0. El i-ésimo elemento de un vector se obtiene a través de la notación de subíndices: v[i]. Las matrices son arreglos rectangulares en dos dimensiones. Los elementos en las matrices se accede a ellos por medio de la notación m[i,j]. Los arreglos tienen k dimensiones. Cada elemento de un arreglo es accedido por medio de k índices: <mrow data-mjx-texclass="ORD">a<mo stretchy="false">[</mo>i1<mo>,</mo>i2<mo>,</mo><mo>…</mo><mo>,</mo>ik<mo stretchy="false">]</mo></mrow>.

Un objeto de tipo arreglo con dimensión 1 es diferente de un vector porque un arreglo tiene un vector dimensión. El vector dimensión es un vector de enteros positivos. La longitud de este vector proporciona la dimensión del arreglo y el vector dimensión es un atributo del arreglo. El nombre de este atributo es dim. Observemos aquí algunas instrucciones en R que ayudarán a aclarar el concepto:

> (v <- 1:10) # v es un vector
[1]  1  2  3  4  5  6  7  8  9 10
> c('vector?' = is.vector(v), árray?' = is.array(v))
vector?  array?
TRUE   FALSE
> dim(v) <- c(10) # Le asignamos el valor de 10 a dim y ahora es un arreglo
> c('vector?' = is.vector(v), árray?' = is.array(v))
vector?  array?
FALSE    TRUE
> v # el arreglos se imprime igual que los vectores
[1]  1  2  3  4  5  6  7  8  9 10

Un objeto tipo matriz es un arreglo de dos dimensiones. Por lo tanto tiene posee el atributo dim. Su vector dimensión tiene una longitud igual a 2 donde el primer elemento es el número de filas y el segundo es el número de columnas. He aquí un ejemplo de como crear una matriz con tres columnas y dos filas con matrix():

> (m <- matrix(0, ncol=3, nrow=2))
[,1] [,2] [,3]
[1,]    0    0    0
[2,]    0    0    0

Ahora, verificamos si m es un arreglo con la función is.array():

> c('matrix?' = is.matrix(m), árray?' = is.array(m))
matrix?  array?
TRUE    TRUE

Como nos muestra la función is.matrix(), m es al mismo tiempo una matriz y un objeto de tipo arreglo. Dicho de otra manera, toda matriz es un arreglo, pero no todo arreglo es una matriz. Como cualquier otro objeto, se puede obtener la información sobre los atributos de una matriz con

> attributes(m)
$dim
[1] 2 3

Al igual que los vectores, se pueden crear índices y extraer elementos de los arreglos con vectores índice. En el siguiente ejemplo, crearemos una matriz de 5 columnas y 4 filas y extraeremos una submatriz:

> (m <- matrix(1:20, ncol=5, nrow=4))
[,1] [,2] [,3] [,4] [,5]
[1,]    1    5    9   13   17
[2,]    2    6   10   14   18
[3,]    3    7   11   15   19
[4,]    4    8   12   16   20
> i <- c(2,3); j <- 2:4 # Vectores indice
> m[i,j] # Extraemos las filas 2 y 3, y las columnas 2 a 4.
[,1] [,2] [,3]
[1,]    6   10   14
[2,]    7   11   15

Nótese como la matriz se creó con una secuencia de 20 números. La primera columna se llena primero, luego la segunda, y así en adelante. Esto sucederá siempre como regla general. La matrices se llenan columna a columna ya que el índice de la izquierda es el que corre más rápido. Esta regla se aplica a los arreglos con dimensiones mayores que 2. Se pueden poblar las matrices fila a fila usando el argumento byrow en la función matrix().

Problemas Resueltos

  1. Sea
A=[121131224]B=[321231113]C=[201132]

Realícense las siguientes operaciones que se encuentren definidas:

    1. A+B
    2. A2B
    3. A+B
    4. A+C
    5. (A+B)
    6. (3A2B)
> (A <- matrix(c(1,2,-1,-1,3,-1,2,2,4), ncol=3, nrow=3, byrow=TRUE))
     [,1] [,2] [,3]
[1,]    1    2   -1
[2,]   -1    3   -1
[3,]    2    2    4
> (B <- matrix(c(3,2,-1,2,3,1,-1,1,3), ncol=3, nrow=3, byrow=TRUE))
 [,1] [,2] [,3]
[1,]    3    2   -1
[2,]    2    3    1
[3,]   -1    1    3
> (C <- matrix(c(2,0,-1,1,3,2), ncol=2, nrow=3, byrow=TRUE))
 [,1] [,2]
[1,]    2    0
[2,]   -1    1
[3,]    3    2
> A + B
[,1] [,2] [,3]
 [1,]    4    4   -2
 [2,]    1    6    0
 [3,]    1    3    7
> A - 2*B
[,1] [,2] [,3]
 [1,]   -5   -2    1
 [2,]   -5   -3   -3
 [3,]    4    0   -2
> t(A)+B # t(A) es la funcion para obtener la transpuesta de una matriz
[,1] [,2] [,3]
 [1,]    4    1    1
 [2,]    4    6    3
 [3,]   -2    0    7
> A + C
Error in A + C : non-conformable arrays
> t(A+B)
[,1] [,2] [,3]
 [1,]    4    1    1
 [2,]    4    6    3
 [3,]   -2    0    7
> t(3*t(A) - 2*B)
[,1] [,2] [,3]
 [1,]   -3    2   -1
 [2,]   -7    3   -5
 [3,]    8    4    6
  1. Si
P=[321251113]Q=[122111141221]R=[12523122]
x=[101]y=[232]z=[1234]

Calcúlense aquellos productos matriciales que se encuentren definidos:

    1. PQ
    2. PQR
    3. QR
    4. yx
    5. xy
    6. xPx
    7. xPy
    8. P(x+y)
> (P <- matrix(c(3,2,1,2,5,-1,1,-1,3), nrow=3, ncol=3, byrow=TRUE))
     [,1] [,2] [,3]
[1,]    3    2    1
[2,]    2    5   -1
[3,]    1   -1    3
> (Q <- matrix(c(1,2,2,1,1,1,1,4,1,2,2,1), nrow=3, ncol=4, byrow=TRUE))
     [,1] [,2] [,3] [,4]
[1,]    1    2    2    1
[2,]    1    1    1    4
[3,]    1    2    2    1
> (R <- matrix(c(1,2,-5,2,3,-1,-2,2), nrow=4, ncol=2, byrow=TRUE))
     [,1] [,2]
[1,]    1    2
[2,]   -5    2
[3,]    3   -1
[4,]   -2    2
> (x <- c(1,0,-1))
[1]  1  0 -1
> (y <- c(2,3,2))
[1] 2 3 2
> (z <- c(-1,-2,-3,-4))
[1] -1 -2 -3 -4
> P %*% Q # En R, el simbolo de multiplicacion de matrices es %*%
     [,1] [,2] [,3] [,4]
[1,]    6   10   10   12
[2,]    6    7    7   21
[3,]    3    7    7    0
> P %*% Q %*% R
     [,1] [,2]
[1,]  -38   46
[2,]  -50   61
[3,]  -11   13
> Q %*% t(R)
Error in Q %*% t(R) : non-conformable arguments
> y %*% t(x)
     [,1] [,2] [,3]
[1,]    2    0   -2
[2,]    3    0   -3
[3,]    2    0   -2
> t(x) %*% y
     [,1]
[1,]    0
> t(x) %*% P %*% x
     [,1]
[1,]    4
> t(x) %*% P %*% y
     [,1]
[1,]    9
> P %*% (x+y)
     [,1]
[1,]   16
[2,]   20
[3,]    3