Estadística con múltiples variables e introducción al lenguaje R
Algunos Conceptos Básicos de Estadística
editarIntroducción
editarEn 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
editarLos 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 . 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 entre cero y uno. Este valor numérico se le conoce como la probabilidad de ese evento. Entonces es la probabilidad de que ocurra el evento 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
donde el símbolo de intersección denota el evento
y y el símbolo de unión indica el evento o .
Usando la propiedad aditiva de las probabilidades de eventos mutuamente exclusivos la probabilidad total del conjunto de eventos es
Ahora se le asigna el valor numérico al i-ésimo resultado, donde, por conveniencia, los resultados se ordenan ascendentemente según sus valores . Se define entonces la variable aleatoria discreta como la cantidad que toma el valor con probabilidad de en cada corrida del experimento. Por ejemplo, si el experimento consiste en lanzamientos de una moneda, el resultado "cara" puede tener una cierta probabilidad y el resultado "cruz" puede tener una probabilidad . Esta variable aleatoria puede ser descrita entonces por una función de probabilidad la cual especifica las probabilidades con las que la variable aleatoria adquiere los valores de cara o cruz.
cara | |
cruz |
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 definida sobre el dominio de los números reales se caracteriza por su función de distribución
la cual proporciona la probabilidad de que sea menor o igual que algun valor de en su dominio. Ya que es continua, .
Si es una función absolutamente continua, la versión continua de la función discreta de probabilidad es la función de densidad
Al mismo tiempo, por la propiedad de continuidad absoluta
y de esta definición se genera el término equivalente función acumulativa de distribución de . 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 es igual a cero, y 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 , los valores en el intervalo se definen como la población o el universo de la variable aleatoria .
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 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 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 se puede expresar como
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 asociado con el elemento diferencial .
Las variables aleatorias y sus densidades tienen una interpretación física: considérese la función de densidad de la variable aleatoria como la función que define la densidad de una barra sólida que se encuentra posicionada en el eje de las . El k-ésimo momento alrededor del origen es
El primer momento es la media o el valor esperado
de la variable aleatoria y corresponde al concepto físico del centro de gravedad de la vara. El símbolo denota la operación de calcular el valor esperado, y se conoce como el operador de esperanza. Si y son cantidades no aleatorias, entonces podemos aseverar las siguientes propiedades de las esperanzas:
Como ejemplo, considérese la función de densidad rectangular de la figura
. Por definición:
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 como el parámetro de escala. Entonces, la nueva densidad será:
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 como
o también como
Por definición
y el simbolo var aplicado a cualquier variable aleatoria denotará el cálculo de la varianza. Si y son constantes, la varianza posee las siguientes propiedades:
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 altera la varianza en . 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 . Se puede demostrar que las varianzas de las funciones de densidad rectangular, exponencial, y normal
son , , y 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 es la raiz cuadrada positiva de la varianza:
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 como
donde es la densidad conjunta, entonces las variables se dice que son independientes si y solo si
donde es la función de distribución de la variable sencilla . Alternativamente, la independencia es válida si y sólo si la factorización de
de la densidad conjunta en el producto de las funciones individuales de densidad es válida.
El momento de productos
de las variables se factoriza como el producto
de los 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:
Variables Aleatorias Normales (Gaussianas)
editarEn 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
y que su función de distribución se encuentra dada por la integral
donde 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: ; la distribución estandar será indicada por .
Los valores de 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 tal que
Estas relaciones entre porcentajes y sus probabilidades se ilustran en la figura 3
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 se encuentran distribuídas independientemente de acuerdo a alguna función común de distribución con media y varianza finita , entonces a medida que el número de variantes aumenta sin cotas, la variante
- 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 de la media de las muestras de una secuencia de variables aleatorias independientes
cuya distribución común tiene media y varianza tiende a distribuírse como una variante de tipo a medida que se vuelve más grande. Una y otra vez estaremos invocando una propiedad muy importante de la distribución normal: Si son variantes independientes con distribuciones entonces la combinación lineal
también se encuentra normalmente distribuída con media y varianza . 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 . 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 son independientes y se encuentran normalmente distribuídas con media cero y varianza igual a uno, entonces
tiene la función de densidad
y se dice que es una variante ji-cuadrada con 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 . Aún más, si las se encuentran independientemente distribuídas como variantes , entonces la cantidad
tiene una distribucion ji-cuadrada con 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 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 grados de libertad como:
donde .
La distribución t
La variable aleatoria con grados de libertad se define como el cociente
de una variante normal estándar y la raíz cuadrada de una variante ji cuadrada independiente dividida esta por sus grados de libertad. La variable es adimensional y su función de densidad
depende solamente del parámetro de grados de libertad . Veremos más adelante como generar valores de una distribución con grados de libertad usando el lenguaje .
Se expresara el porcentaje 100α como o
La distribución F
El cociente
de variantes ji-cuadradas independientes divididas por sus respectivos grados de libertad, tiene la distribución o cociente de varianzas con función de densidad
Se denotará el porcentaje superior 100α de la distribución con grados de libertad por medio de :
De la definición de la variante se deduce que los puntos porcentuales inferiores se pueden obtener de los recíprocos de los valores superiores con los grados de libertad invertidos:
Una Nota Breve Sobre la Funcion : La funció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: La función gamma se puede definir como una integral definida en (La forma integral de Euler): o también
Muestras Aleatorias y Estimación
editarHasta 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 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 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 de se sabe a partir de algunas suposiciones anteriores aunque no se sepan los valores de los parámetros .
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 parámetros sería alguna región del espacio euclideano en dimensiones. Por ejemplo, el de una distribución normal sería la mitad superior del plano cartesiano con ejes (Fig.4).
Finalmente, se deben definir las unidades experimentales o unidades muestrales sobre las cuales se observaran los valores de . 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 . 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 unidades aleatoriamente. Sus valores observados de se denotaran como . El primer problema es estimar los parametros a traves de una función apropiada de las observaciones. Tales estimaciones serán denotadas por un parámetro con capucha: . 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. .
- 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 no proporcionará más información que la que contiene . En términos matemáticos, la distribución conjunta de las 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 :
La función de posibilidad es una medida relativa de la posibilidad de la muestra en particular . El método de máxima posibilidad demanda que los estimadores de 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:
Entonces, si la función de posibilidad tiene un máximo relativo, las estimaciones de se pueden encontrar resolviendo el sistema de ecuaciones simultáneas
para encontrar el valor de los estimadores 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 y para la densidad rectangular. La función de posibilidad de la muestra , es
Es evidente que no puede ser menor que la observación más pequeña, y que no puede ser mayor que la observación más grande. Si se denotan las observaciones ordenadas como ,
La función de posibilidad adquiere su valor máximo cuando adquiere su valor m+inimo lo que es consistente con el segundo grupo de desigualdades, y las estimaciones que minimizan el intervalo son
Ejemplo: La función de posibilidad de la muestra de variables aleatorias normales independientes es
tomando el logaritmo
Las derivadas parciales con respecto a y son
Igualando a cero y cancelando factores, queda el siguiente sistema de ecuaciones simultáneas
Despejar el estimador de primero, y luego usar ese valor para obtener la solución del estimador de :
Estas estimaciones son intuitivamente plausibles, ya que la media de la población se estima a través de la media de la muestra , y la estimación de la varianza es el promedio de la desviación cuadrada de la media.
Determinemos ahora si y son estimadores insesgados. Reemplacemos las observaciones por las variables aleatorias y tomemos las esperanzas:
Esto significa que la media muestral es un estimador insesgado de . El calcular la esperanza de involucra un poco más de cómputo:
Entonces no es un estimador insesgado de la varianza. Sin embargo, si reemplazamos el divisor en la fórmula original por , se eliminará el sesgo y se obtendrá la conocida formula de la varianza de la muestra
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
editarPruebas Estadísticas de Hipótesis.
editarLa 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: | ||
Hipotesis alternativa: |
'
Le llamaremos a la descripción original de la población como la 'hipótesis nula; ésta se denota normalmente como . La hipótesis alternativa será denotada como . Se supondrá también que la población se encuentra normalmente distribuída, pero por lo general se asume por omisión. 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, 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 se encuentra normalmente distribuída con varianza desconocida, las hipótesis
y
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 y en . Habría entonces que desarrollar pruebas estadísticas para tal hipótesis de tal forma que no se afectaran por el valor desconocido de .
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 una variable aleatoria continua con los números reales como su dominio, y su función de densidad depende de los parámetros . El espacio muestral de todos los resultados posibles de observaciones en ser el espacio N-dimensional euclideano. Una muestra particular de observaciones se expresará en forma de vector como y denotará un punto en el espacio muestral. Sean y 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 .
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 sobre y otros conjuntos apoyarían la alternativa, la regla de decisión debe tener la siguiente forma:
donde es una parte en particular del espacio muestral llamada región crítica o región de rechazo de . Si el verdadero estado de la naturaleza se encuentra descrito por o , 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 como verdadera cuando en realidad es la correcta. Un error del segundo tipo, o error Tipo II se comete cuando se toma como verdadera cuando es 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 | verdadera | verdadera |
Se acepta | Correcto | Error Tipo II |
Se acepta | 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 cuando es verdadera, o lo mismo que
donde el símbolo denota la inclusión en el conjunto 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
El complemento 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
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:
y
donde es una constante tal que
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 .
Nótese que el lema de Neyman-Pearson requiere que ambas hipótesis sean simples, esto es, que las regiones y 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:
donde
es la función de posibilidad maximizada bajo la suposición de que
es cierta, y que es la posibilidad maximizada con la cual se permite tomar valores a través del todo el espacio de parámetros . Aceptamos si y si no, se acepta la alternativa
La constante se escoge de tal forma que . 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 es verdadera, la variante
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 .
Pruebas de la Media de una Variante Normal con Varianza Conocida
editarSea una muestra de observaciones independientes de la variable aleatoria con distribución . La varianza es conocida aunque no. Basándonos sobre las observaciones muestrales deseamos probar la hipótesis
de que la media poblacional tiene un cierto valor determinado contra la hipótesis alternativa:
que la media es de un valor mayor . Usando el lema de Neyman-Pearson la prueba mas poderosa de tamaño se basa en la estadística de prueba:
cuya region crítica es
donde es el punto que divide el superior del resto de la distribucion normal unitaria . En términos de la media de las observaciones originales debemos rechazar en favor de si
y si no, entonces aceptar la hipótesis nula. Si la hipotesis alternativa hubiera sido
entonces la misma estadística de prueba hubiera sido empleada, aunque la región crítica hubiera sido
o, equivalentemente
Las pruebas anteriores y las hipótesis alternativas se conocen como hipótesis unilaterales, debido a que se indica claramente la dirección del cambio de a . 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:
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
donde es el punto que divide el superior del resto de la distribución normal unitaria. Equivalentemente, se rechaza si
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 . 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 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
o
son las más poderosas uniformemente.
Pruebas de Medias Cuando se Desconoce la Varianza
editarEn 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 observaciones independientes con media y varianza lleva a la estadística de prueba
Si es verdadera, tiene la distribución Student-Fisher con grados de libertad y rechazamos la hipótesis nula en una prueba con tamaño si
donde es el punto que separa el superior de la distribución definida en la sección anterior. De la misma forma, si la hipótesis alternativa hubiera sido , la región de rechazo estaria definida por
y para la alternativa bilateral, \ref{H1biprime} la hipótesis nula será rechazada si
La potencia de las pruebas que involucran la estadística se puede calcular de la rutina Pearson-Hartley con y grados de libertad y parametro de descentralidad
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 pero con medias posiblemente distintas y . Denótense las observaciones de las muestras como Entonces el criterio generalizado del cociente de posibilidades para la prueba de hipótesis
de medias poblacionales iguales contra la alternativa
lleva a la estadística de prueba
Para una prueba con tamaño se rechaza en favor de si
Las regiones de rechazo para las otras hipótesis alternativas y son similares a \ref{Trej1} y a \ref{Trej2} de las pruebas con una sola muestra.
Intervalos de Confianza para Medias.
editarLa 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 observaciones ha sido tomada de alguna población con densidad continua . El intervalo de confianza del para es aquel conjunto de valores
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
donde generalmente toma el valor 0.05 o alguna probabilidad más pequeña. 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 contenga a es de " 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 y de tal manera que la longitud de 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 observaciones independientes con media de la variante con varianza conocida, se rechaza en favor de
usando la prueba de tamaño cuando el valor de está dado por
De la misma forma, el valor más grande de para el cual, usando una prueba con tamaño , es rechazada en favor de cuando , entonces ese valor de será
Donde y son los porcentajes superiores y de la distribución normal unitaria. Entonces el intervalo de confianza del por ciento para es
y su longitud es de . Pero se puede demostrar que la longitud mínima se obtiene cuando
o si
.
Entonces el intervalo más corto con coeficiente tiene la forma simétrica
De la misma forma, si no es conocida, el intervalo de confianza del por ciento para está dado por
donde es la desviación estándar de la muestra, y es el superior de la distribución con 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 por ciento para el cambio atribuible a la condición experimental es
donde y son las medias de la primera y segunda muestras compuestas de y observaciones y
es la estimación muestral de la desviación estándar de la diferencia de medias.
Pruebas e Intervalos de Confianza para la Varianza
editarLas 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 constituyen una muestra aleatoria de , entonces la cantidad
se encuentra distribuida como una variante ji-cuadrada con grados de libertad. El criterio generalizado del cociente de posibilidad para la prueba de la hipótesis
contra la hipótesis alternativa
especifica que la región de rechazo para una prueba de tamaño es
donde es el porciento superior de la distribución ji-cuadrada con grados de libertad. De la misma forma, las regiones de rechazo para probar la hipótesis nula contra las alternativas y sería
y
respectivamente, donde en el segundo caso . Estrictamente hablando, y 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 se pueden obtener directamente de la región de rechazo \ref{RejChi} como se demostrará más adelante.
Si las muestras independientes de y observaciones se han tomado aleatoriamente de las poblaciones y , entonces la hipótesis
se puede probar contra la hipótesis alternativa
por medio de la estadística
Si la hipótesis nula es verdadera, la estadística tiene una distribución con grados de libertad. La región de rechazo para una prueba de tamano es
Por otro lado, se puede probar contra la otra hipótesis alternativa por medio de la estadística
cuya region crítica es
donde la repartición será suficiente.
Pruebas de Igualdad de Medias: Análisis de Varianza
editarPresentaremos 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 en cada cepa. Sea la media poblacional para la j-ésima cepa. Es posible entonces construir una prueba de
contra la hipótesis alternativa de que algunas medias son distintas usando el criterio generalizado del cociente de posibilidad. Aun mas, si 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 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 grupos) se puede expresar por medio del modelo matemático
donde
Los términos variantes 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 , 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, . La hipótesis de los efectos equivalentes del tratamiento se puede expresar como
y se tomará como la alternativa a el modelo general \ref{GenModel} para las observaciones.
Este modelo se dice que tiene efectos fijos, ya que los son parámetros y cualquier inferencia a partir de las observaciones sólo se puede hacer con respecto a los 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
Denótese el total de las observaciones para el j-ësimo tratamiento como
y se denotará la media de ese tratamiento como . La suma de todas las observaciones será denotada por
el número total de unidades experimentales por
y la media general por . Expresamos entonces la suma total de los cuadrados
como la suma dos componentes independientes
donde
y
Fuente | Suma de cuadrados | Grados de Libertad | Cuadrado Medio |
Tratamiento | SST | ||
Intra-tratamiento | SSE | ||
Total | S |
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 es
y, cuando es verdadera, , son variantes independientes con distribucion ji-cuadrada con y grados de libertad, respectivamente. Entonces la estadística de prueba tiene una distribución con y grados de libertad. Rechazamos con una prueba de nivel si
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 y , 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
o, como en el caso de muestras con tratamientos equivalentes que lo que generalmente se encuentra en problemas de diseño experimental
En esta última expresión, el término de corrección ha desaparecido de la habitual restricción 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.
editarUn 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 del modelo de una vía como cualquier función lineal
cuyos coeficientes tienen la propiedad de
Por lo tanto y son contrastes mientras que 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 para todos los contrastes tienen la forma
donde todas las sumas son sobre los tratamientos. es la estimación muestral del contraste y
Nótese que es la estimación de la varianza del contraste estimado. Aceptamos la hipótesis nula
al nivel si el intervalo simultáneo de confianza para ese contraste incluye el valor cero. Si, por otro lado
o
rechazamos en favor de la hipótesis alternativa unilateral o . 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 declaraciones de intervalos de confianza de los parámetros del modelo lineal. La probabilidad de que sea una declaración verdadera (esto es, que contenga el valor de la i-ésima función paramétrica) es igual a y la probabilidad de que todas las declaraciones sean correctas simultáneamente es de , donde la notación de intersección denota el evento donde ambos y 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 , 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 . En lugar de calcular esta probabiliad, debemos contentarnos con la siguiente cota inferior:
donde 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 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 .
Los intervalos de confianza de Bonferroni sobre contrastes dados
de los parámetros del modelo lineal de una vía son
La regla de decisión para probar es equivalente a aquella para el metodo de Scheffe: si (\ref{Bonf01}) no incluye el valor cero, se rechaza . Para todas las comparaciones apareadas de los tratamientos, , mientras que para comparaciones sucesivas (suponiendo que hubo algun ordenamiento a priori), . Si 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 . Para valores de 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
La suma de cuadrados debida a los medicamentos es
y la suma total de cuadrados es . 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 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 observamos que la excede el valor crítico para
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:
Primero compárense los medicamentos B y C calculando el intervalo de confianza para . Aqui y la desviación estándar estimada de la población es de
El intervalo de confianza es 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
y es posible aceptar la hipótesis alternativa
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 y la desviación estándar estimada de ese contraste es
La estimación del contraste es de 2.25, y el intervalo de confianza es de
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 | 3.87 | |
-1.37 | 2.37 | |
0.63 | 4.37 |
Introducción al lenguaje R
editar¿Qué es R?
editarEl sistema para cómputos estadísticos es un ambiente para análisis de datos y gráficos. El origen de es el lenguaje el cual fue desarrollado por John Chambers y sus colegas en los laboratorios Bell por la década de los 1960s. El lenguaje 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 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 se encuentra localizada en el siguiente URL:
http://www.R-project.org
Todos los recursos de 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 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
editarEl sistema 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 Archive Network" (CRAN), el cual se encuentra en
http://CRAN.R-project.org
El Sistema Base y Primeros Pasos
editarEl 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, 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 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 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 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 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
editarLa 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 . 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
editarExisten tres formas de documentación para el sistema : 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 . 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
editarSi 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
editarEl paquete básico de 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 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 .
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: . 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)
editarVeamos ahora la otra estructura interna que 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 ...
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 . 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 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
- ↑ [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.]
- ↑ [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
editarEn 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 . 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> 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 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 , cualquier objeto en 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> load("USERS.rda")
Manejo Básico de Datos
editarLos ejemplos mostrados en la sección anterior muestran la importancia de usar los dataframes para el manejo y almacenamiento de datos tabulares en . Internamente, un dataframe es una lista de vectores con una longitud común , donde 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
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 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 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
editarAlgunas Estadísticas Sencillas
editarDos funciones son muy útiles para extraer información general sobre los objetos en : 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
editarEn las secciones anteriores hemos estado haciendo todos nuestros cálculos con las funciones internas de . Sin embargo, el verdadero poder de 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 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
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
editarEl 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.
Las relaciones bivariantes de dos variables continuas se grafican generalmente como una gráfica de puntos. En , 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 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
.
Organizando un Análisis
editarAún cuando es posible realizar un análisis estadístico tecleando todos los mandos directamente en el apronte de , 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 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
editarIntroducción
editarEn un capítulo posterior veremos que una variable aleatoria multidimensional es simplemente un conjunto ordenado 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 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 con alguna distribución en el espacio de 4 dimensiones. Si esos pesos fueron registrados con una muestra de ratones, las observaciones se pueden resumir por medio del arreglo
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
editarSupongamos 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
como un arreglo rectangular ordenado de los elementos. El término general de la matriz se expresará como 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 filas y columnas será referida como una matriz de 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 . 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 componentes como
De la misma forma, el vector fila lo expresaremos como
y consiste de una sola fila de elementos. Cada vector especifica las coordenadas de un punto en el espacio euclideano -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 es la transpuesta del vector columna x. En general, si A es cualquier matriz de dimensiones, la transpuesta de A es la matriz de dimensiones formada al intercambiar las filas y las columnas:
Si una matriz es cuadrada e igual a su transpuesta, se dice que es simétrica. Entonces para todos los pares de y . Por ejemplo
es simétrica, mientras que
no lo es. Por brevedad, se omitirán con frecuencia los elementos inferiores duplicados. Los elementos 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
Ciertas matrices son particularmente importantes. La matriz identidad
es una matriz cuadrada con unos en la diagonal principal y ceros en las posiciones restantes. La matriz diagonal de
tiene los elementos en las posiciones de la diagonal principal y ceros en las posiciones restantes. Algunos de los elementos pueden ser cero. De aquí en adelante el término diag(A) = D() denotará la matriz diagonal formada por la matriz cuadrada A. Una matriz triangular de tiene el patrón
La matriz nula de
tiene un cero en cada una de sus posiciones. A veces necesitaremos el vector
y la matriz
la cual tiene la unidad en cada posición.
Operaciones Elementales con Matrices y Vectores
editarLas 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 A y B se dice que son iguales si y sólo si
Suma. La suma de dos matrices de iguales dimensiones es la matriz de la suma de los elementos correspondientes. Si
entonces
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 multiplicando cada elemento de A por :
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 , y B tiene dimensiones de , entonces el -ésimo elemento del producto se calcula como
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 . Por ejemplo, si
entonces
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
Entonces
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 posee el efecto de multiplicar cada elemento en la i-ésima fila por :
La posmultiplicación por una matrix diagonal similar de multiplica cada elemento en la j-ésima columna por .
Una matriz puede considerarse como una transformación lineal de los vectores en un espacio a vectores en otro espacio. Si x tiene componentes y y tiene componentes, es posible expresar una transformación del sistema de coordenadas en dimensiones de los elementos de x al espacio -dimensional de y en forma matricial como
La transformación a un tercer conjunto de variables especificado por el vector de 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 es la medición del -ésimo individuo en
-ésima característica, y y 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:
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
y formamos la matriz diagonal
a partir de las desviaciones estándard de la muestra. Si introducimos la matriz de
con un uno en cada posición, entonces la matriz Z de dimensiones correspondiente a las mediciones normalizadas se puede calcular como
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:
Ya que el producto interno es escalar, entonces . 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 dimensiones. En general, la distancia entre los puntos con coordenadas dadas por x y y es
El coseno del ángulo entre los vectores x y y es
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
se pueden interpretar como si fueran los ejes coordenados. El vector
hace un ángulo de con y y caracteriza la línea equiangular en el espacio tridimensional. Las cantidades se conocen como los cosenos direccionales} de la línea. Similarmente, los vectores
forman un ángulo de 90 grados en el plano del espacio. Los vectores y forman cada uno un ángulo de 45 grados con , y sus ángulos con 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:
En general, si son conformables,
Estas propiedades van a ser muy necesarias en capítulos posteriores.
El Determinante de una Matriz Cuadrada
editarCon toda matriz cuadrada se encuentra asociada una cantidad escalar llamada el determinante. Un determinante generalizado para una matriz tiene el valor
donde se supone que no hay suma sobre el índice y donde es el cofactor de definido por
y es el Error al representar (Error de conversión. El servidor ("https://wikimedia.org/api/rest_") informó: "Cannot get mml. TeX parse error: Undefined control sequence \emph"): {\displaystyle {\emph {menor}}} de la matriz formado al eliminar la fila y la columna de . 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 tomando cada permutación como los subíndices de las letras y sumando con los signos dados por donde es el número de inversiones de la permutación en la permutación , y es el símbolo de permutación. Por ejemplo, para , 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 es
Para determinantes mayores de 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 como calcular determinantes.
Ciertas propiedades de los determinantes nos serán útiles en los capítulos subsiguientes:
- 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.
- Si los elementos de una sola fila o columna de la matriz \textbf{A} de son multiplicados por el escalar , el determinante de la nueva matriz es igual a . Si cada elemento es multiplicado por , entonces .
- Si dos filas o columnas de una matriz cuadrada son intercambiadas, entonces el signo del determinante se invierte.
- 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.
- El determinante de una matriz no cambia agregando un múltiplo de alguna columna a otra columna. Lo mismo vale para las filas.
- Si todos los elementos de una fila o una columna son iguales a cero, entonces el determinante es cero.
- Si y son matrices de , el determinante de es igual al producto de los determinantes individuales.
- 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
editarAhora ya podemos definir la operación matricial correspondiente a la división escalar. La inversa de la matriz cuadrada es la matriz única con elementos tales que
Es posible que no exista, en la misma forma que no es posible dividir entre cero con escalares. Entonces se dice que es Error al representar (Error de conversión. El servidor ("https://wikimedia.org/api/rest_") informó: "Cannot get mml. upstream connect error or disconnect/reset before headers. reset reason: connection termination"): {\displaystyle {\emph {singular}}} . Las matrices cuyas inversas existen se conocen como Error al representar (Error de conversión. El servidor ("https://wikimedia.org/api/rest_") informó: "Cannot get mml. TeX parse error: Undefined control sequence \emph"): {\displaystyle {\emph {nosingulares}}} .
Los elementos de pueden ser calculadas a partir de dos resultados de la sección anterior. Se forma la matriz de cofactores :
conocida como la Error al representar (Error de conversión. El servidor ("https://wikimedia.org/api/rest_") informó: "Cannot get mml. upstream connect error or disconnect/reset before headers. reset reason: connection termination"): {\displaystyle {\emph {adjunta}}} de Entonces el producto interno de la -ésima fila de y la -ésima fila de es igual a si y es igual a cero si . Si tomamos la transpuesta de y dividimos cada elemento entre , tendremos entonces la inversa deseada:
Es evidente de esta última expresión que la matriz inversa existe si y sólo si el determinante de es distinto de cero. El cálculo de 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:
- La inversa de una matriz simétrica también es simétrica.
- La inversa de la transpuesta de es la transpuesta de .
- La inversa del producto de varias matrices cuadradas en igual al producto de las inversas en el orden contrario:
- Si es un escalar distinto de cero, .
Ejemplo: La inversa de
es
El Rango de una Matriz
editarDos vectores de 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 son linealmente dependientes, mientras que son linealmente independientes. Un conjunto de 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 forman un conjunto linealmente independiente si no existen escalares tales que para algun vector en el conjunto se da que Los vectores constituyen un conjunto linealmente dependiente ya que , mientras que los vectores unitarios 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 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 de vectores no excede la dimensionalidad de los vectores. Entonces el rango de
es el número de vectores fila linealmente independientes de la matriz. El rango puede variar desde cero para una matriz nula, hasta para una matriz de rango completo. Si, por otro lado, el número de filas de 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 tiene un rango igual a r si contiene al menos un menor distinto de cero de dimensiones y ningún menor distinto de cero con dimensionalidad mayor que r.
Ejemplo: La matriz
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:
- El rango de es igual al rango de . Esto viene de la equivalencia de las definiciones de rango para filas y columnas.
- El rango de es igual al de . Similarmente, el rango de es equivalente al rango de .
- El rango de no cambia si se pre- o posmultiplica por una matriz no singular.
Operaciones Elementales de Filas y Columnas
editarEl rango de una matriz no cambia al realizar las siguientes operaciones elementales de filas y columnas:
- Intercambio de dos filas o dos columnas.
- La multiplicación de todos los elementos de una fila o una columna por una constante escalar.
- 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
se pueden usar para llevar a cabo transformaciones elementales sobre las primeras dos filas de
dando así
Usemos ahora las operaciones elementales de fila para calcular el rango de la matriz
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 en la siguiente forma:
Ya que las filas restantes son linealmente independientes, se concluye que es de rango igual a dos.
Ambas operaciones de fila y columna se pueden aplicar simultáneamente a cualquier matriz de para reducirla a su forma canónica
la cual contiene un uno en las primeras posiciones diagonales y cero en todas las demás. Esto quiere decir que para cada matriz existen matrices elementales de transformación de filas y columnas llamadas tales que
es la forma canónica de . Pero si es cuadrada y de rango completo , entonces las operaciones de fila producirán
esto significa que
Por lo tanto, la misma secuencia de operaciones elementales de fila que reduce a la matriz identidad transforma la matriz identidad de a la inversa de . Esta propiedad de las transformaciones elementales nos proporciona con una herramienta poderosa para invertir matrices: simplemente se expresa la matriz de
y se aplican operaciones elementales a cada fila con el fin de transformar las primeras columnas en la matriz identidad. Cuando esto ha sido logrado, aparecerá en las últimas columnas.
Ejemplo: La transformaciones sucesivas en la inversión de
se muestran a continuación:
y
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
Empezamos restando múltiplos apropriados de la primera fila de las filas restantes:
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:
Una operación de fila pivoteando en la segunda columna transforma la matriz anterior en:
Finalmente tenemos
y el determinante es:
Matrices Inversas Generalizadas
editarSe 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 la cual satisface
donde es de dimensiones y de rango , mientras que tiene que ser necesariamente de dimensiones y del mismo rango que . Existen otros tipos de inversas generalizadas, las que satisfacen las siguientes condiciones:
Nuestra matriz se puede calcular a partir de la reducción canónica de . Expresamos
donde es una matriz diagonal de (que no es necesariamente la identidad) y las matrices nulas tienen las dimensiones apropiadas. Las matrices y son los productos respectivos definidos anteriormente. Presentamos ahora la matriz de :
Entonces es una inversa generalizada de la matriz ya que uno puede verificarlo reemplazando en la expresión por su representación . La matriz no es única. a menos que sea cuadrada y no singular.
Vamos a calcular la inversa generalizada de la matriz vista en un ejemplo anterior. Las matrices de operadores de fila que reducen la tercera y la cuarta fila a los vectores nulos son:
Entonces
Las transformaciones de columna que reducen a a la forma diagonal canónica son
y
Entonces
y
es una inversa generalizada de .
Ecuaciones Lineales Simultáneas
editarEl conjunto de ecuaciones con las incógnitas
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
donde es la matriz de coeficientes de , , y El sistema general de ecuaciones en incógnitas tiene una solución si y solo si la matriz aumentada de tiene el mismo rango que . Si no es así, entonces se dice que el sistema es inconsistente. Es esencial distinguir entre sistemas homogéneos, para los cuales , 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
editarDebido a que existe, la solución única del sistema es
Esto viene de premultiplicar ambos lados de la ecuación por .
La matriz inversa del sistema
es
La solución es
Sistemas No Homogéneos: A y Rango
editarSi se satisface la condición sobre los rangos de las matrices aumentadas y de coeficientes, se puede encontrar una solución seleccionando cualesquier ecuaciones linealmente independientes y obteniendo de las incógnitas en términos de las constantes y de las variables restantes.
Las ecuaciones
se pueden interpretar geométricamente como dos líneas paralelas en el plano . Debido a que no intersectan, el sistema no puede tener solución. El rango de la matriz de coeficientes
es uno, mientras que el de la matriz aumentada
es dos.
El sistema
tiene matrices aumentadas y de coeficientes con rango igual a dos. Se expresan las ecuaciones como
y se obtiene por sustitución. La solución general está dada por el vector
donde puede tomar cualquier valor.
Sistemas Homogéneos de Ecuaciones
editarNo es posible que un sistema homogéneo de ecuaciones lineales sea inconsistente, ya que el rango de es el mismo que el de Todos los sistemas homogéneos se ven satisfechos por la solución trivial , y si el rango de la matriz de coeficientes es igual al número de incógnitas , é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 de es estrictamente menor que , y siempre será posible encontrar 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.
El sistema
define dos líneas en el plano que intersectan en el origen. Por lo tanto la única solución es la trivial: .
En el sistema
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 resolviendo el sistema
La solución general del conjunto original es, en unidades de
El sistema
también es de rango dos. La primera y tercera ecuaciones se pueden resolver convenientemente en términos de y para dar el vector solución
Si hacemos igual a cero y igual a uno, y alternativamente hacemos igual a uno y igual a cero, tendremos los siguientes vectores solución linealmente independientes:
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
para y arbitrarios.
Solución por medio de inversas generalizadas
editarSe ha demostrado que el sistema de ecuaciones consistentes en incógnitas tiene la solución
donde es la inversa generalizada de definida por , es la matriz identidad de , y es cualquier vector de constantes arbitrarias. Hacemos notar que el término que contine a desaparece cuando .
Obtendremos soluciones a los sistemas de los ejemplos X y Y por el método de las inversas generalizadas. Para el primer sistema, y
La solución más general es
Para el ejemplo Y
Si hacemos que sea igual a la solución general es .
Métodos Numéricos para Sistemas Lineales
editarExisten 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
editarEn la sección mostramos la expresión
para el coseno del ángulo entre los vectores 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 es una matriz cuadrada cuyas files son un conjunto de vectores ortonormales. Por lo tanto
y la inversa de es simplemente su transpuesta . Una matriz ortogonal sencilla de es
Esta es la matriz de transformación de una reflexión de los puntos en el plano alrededor de la línea de 45 grados. Una matriz ortogonal más general de esa dimensión es
y se interpreta como la matriz de transformación para la rotación de los ejes coordenados en un ángulo . Esto es, si y fueran las coordenadas de un punto bajo los ejes originales, el punto después de haber girado los ejes, tendría las coordenadas
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
es una matriz ortogonal de .
La matriz ortogonal de 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 ejes coordenados alrededor del origen. Las distancias en este espacio permanecen invariantes ante esta rotación, ya que si ejecutamos la transformación
entonces
y las suma de los cuadrados será invariante. Las matrices ortogonales tienen estas útiles propiedades:
- Las columnas de una matriz ortogonal son ortogonales.
- El determinante de una matriz ortogonal siempre será 1 ó -1. Ya que y , .
- 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
editarUna forma cuadrática en las variables es una expresión del tipo
donde . Algunas de las pueden ser iguales a cero. Hacemos notar de inmediato que la forma cuadrática se puede expresar en notación matricial como donde y es la matriz simétrica de de coeficientes. La forma cuadrática más sencilla es simplemente , la ecuación de una parábola en la variable . Las formas cuadráticas en donde las 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
se puede expresar como una forma cuadrática en términos de las observaciones usando la matriz
Una matriz simétrica y su forma simétrica asociada se llaman definidas positivas si para toda no nula. Si 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 variables a la forma
la cual solo contiene cuadrados de las nuevas variables y con coeficientes . En forma similar, una forma positiva semidefinida cuadrática se puede reducir a
donde todos los coeficientes son positivos, y 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
Si es de rango se dice que es regular si y no hay 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 es una matriz arreglada regularmente,
- Una condición necesaria y suficiente para la definitez positiva es que para todo .
- Una condición necesaria y suficiente para la semidefinitez positiva es que y los restantes sean iguales a cero, donde puede ser igual a .
La matriz
tiene la secuencia de determinantes principales menores , , ,, y por eso no se encuentra regularmente arreglada. Podemos reordenar las filas y las columnas para obtener la nueva matriz:
la cual tiene la secuencia de determinantes , , , . La matriz y su forma cuadrática son positivas semidefinidas con rango igual a dos.
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 y elementos que se encuentran fuera de la
diagonal. El determinante de una matriz así de dimensiones es
de tal forma que los determinantes menores principales de son
Los primeros determinantes son positivos, mientras que el -ésimo siempre será cero. Entonces la suma de las desviaciones cuadradas es una forma cuadrática positiva semidefinida de rango .
Las raíces y vectores característicos de una matriz
editarLas raíces características de la matriz de son las soluciones de la ecuación determinante
El determinante es un polinomio de -ésimo grado en la variable , y por eso tiene raíces características. El desarrollo de Laplace del determinante característico nos permite expresar el polinomio característico como
donde es la suma de todos los determinantes menores. es simplemente la suma de los elementos diagonales de , o . De la teoría de ecuaciones polinomiales se puede obtener que:
- El producto de las raíces características de es igual a .
- La suma de las raíces características de es igual a la traza de .
La matriz
tiene una traza de 6 y tres determinantes menores principales de cada uno igual a
mientras que . La ecuación característica de es
y sus raíces son 1, 1, y 4.
De aquí en adelante usaremos frecuentemente las siguientes propiedades de las raíces características:
- Las raíces características de una matriz simétrica con elementos reales son todas reales.
- Las raíces características de una matriz positiva definida son todas positivas.
- Si una matriz de simétrica de es positiva semidefinida con rango , contiene exactamente raíces características positivas y raíces cero.
- Las raíces características distintas de cero del producto son iguales a las raíces distintas de cero del producto . Por lo tanto las trazas de y son iguales.
- Las raíces características de una matriz diagonal son los elementos diagonales mismos.
Con cada raíz característica de la matriz cuadrada se encuentra asociado un vector característico cuyos elementos satisfacen el sistema homogéneo de ecuaciones
Por definición de la raíz característica el determinante del sistema desaparece, y siempre existe una solución no trivial . 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:
- Si y son raíces características distintas de la matriz simétrica , sus vectores asociados y serán ortogonales. Esto es evidente si premultiplicamos las definiciones de los vectores
por y respectivamente. Pero esto implica que
y ya que podemos concluír que los vectores son ortogonales.
- Para cada matriz simétrica real existe una matriz ortogonal tal que
donde es la matriz diagonal de las raíces características de . Los vectores característicos normalizados de pueden tomarse como las columnas de . 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
a las variables en la forma cuadrática , entonces la forma se convierte en
donde la son las raíces características de la matriz de coeficientes, y 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.
El vector característico de la raíz más grande del ejemplo anterior debe satisfacer las ecuaciones
Si fijamos arbitrariamente igual a uno y resolvemos las primeras dos ecuaciones no homogéneas, el vector característico será
y por supuesto cualquier vector no nulo es un vector característico para . El vector asociado con la doble raíz debe satisfacer el sistema con la ecuación linealmente independiente
La solución más general a esto es el vector
y seleccionando adecuadamente y se pueden generar dos vectores característicos linealmente independientes para la raíz doble. Nótese que cualquier elección de y dará vectores ortogonales al primer vector . Podemos elegir y para continuar esta ortogonalidad. Por ejemplo,
Las matrices cuadradas con la propiedad de
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 términos cuadrados. Es fácil verificar que la matriz es idempotente y que es posible realizar la transformación
a una suma de los cuadrados de 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 .
Particiones de matrices
editarCon 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
de submatrices que contienen filas y columnas, donde es obvio que todas las submatrices en una fila dada de 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 y cuyas submatrices tienen dimensiones similares es
El producto de las matrices partidas y es
Las dimensiones dentro de cada producto de las submatrices debe conformarse; si las submatrices de tienen el número de columnas , el número de filas de debe ser .
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
editarEn 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 una función continua de los elementos del vector cuya primera y segunda derivadas
existen para todos los puntos \textbf{x} en alguna región del espacio euclideanto de dimensiones. Se define el operador vectorial de derivada parcial como
Aplicando este operador a se obtiene el vector de derivadas parciales
Las siguientes funciones y sus derivadas son especialmente importantes:
- Si es constante para toda \textbf{x},
- :
Nótese que la forma columnar del vector de derivadas no cambia si expresamos .
- Para calcular el vector de derivadas de la forma cuadrática se expresa como
Error al representar (SVG (MathML puede ser habilitado mediante un plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «http://localhost:6011/es.wikibooks.org/v1/»:): {\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 . Si hacemos que sea la -ésima fila de la matriz simétrica , la derivada parcial de la forma cuadrática con respecto a será
y el vector de derivadas parciales es
En particular, el vector de derivadas de la suma de cuadrados es simplemente .
- En la función cuadrática más general
sea \textbf{K} una matriz simétrica de , es una matriz de constantes , y es un vector de . Si hacemos que , las derivadas de se pueden calcular por medio de la regla de la cadena:
y
- La matriz de derivadas parciales de segundo orden de una función de variables se conoce como la matriz hesiana :
Por ejemplo, la matriz hesiana de es simplemente . La matriz hesiana es necesariamente simétrica si satisface todas las condiciones originales de continuidad y existencia de la primera y segunda derivadas.
Determinación de máximos y mínimos
editarUna condición necesaria y suficiente para un máximo o mínimo de en es que
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 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 donde se satisface la ecuación X es que la matriz hesiana evaluada en 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 en serie de Taylor en la vecindad del punto estacionario. Si la hesiana es una matriz indefinida de , 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 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
y si es de rango completo , entonces
Si es positiva definida y es de rango , la hesiana será positiva definida y la solución () minimizará .
Maximización sujeta a restricciones
editarCon frecuencia será necesario maximizar o minimizar una función sujeta a la restricción sobre los valores de . 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
Para un valor estacionario restringido se deben cumplir estas condiciones:
La segunda condición es simplemente la restricción original. En la práctica uno debe resolver las ecuaciones () con respecto a la variable 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 donde es una matriz positiva definida, sujeta a la restricción . Entonces
y () es el sistema de ecuaciones lineales
que no es nada más sino la definición de los valores característicos de . Premultiplicando por y usando la restricción nos proporciona . Obviamente, si la forma cuadrática va a ser un máximo, entonces debe ser la raíz característica más grande de , y 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 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 de con respecto a su elemento se puede encontrar a partir de la expansión de en los cofactores de la -ésima fila o -ésima columna. Usando la primera expansión
Si es simétrica,
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
Más adelante será necesario derivar formas cuadráticas y otros escalares con respecto a los elementos de sus matrices constituyentes. Si es una matriz de con un elemento general , su derivada con respecto a ese elemento es
donde es una matriz de con uno en la posición y ceros en las demás. Si es simétrica
La regla para derivar un producto de matrices es parecida a la de los escalares. Supóngase que los elementos de las matrices conformables y son funciones de alguna variable . Entonces
Esta fórmula lleva a una forma de derivar la inversa de la matriz cuadrada no singular . Expresamos
Entonces
y
Si es simétrica
Avances
editarEl siguiente capítulo tratará la implementación de rutinas para el manejo de matrices y vectores usando el lenguaje . Esto concluye el presente capítulo.
Vectores y Matrices en R
editarVectores
editarComo ya hemos visto, 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 . Es necesario saber como crear, unir, y obtener subconjuntos de estos objetos. Dentro de , 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 que quiere decir Not Available (No se encuentra disponible). El tipo 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
editarLos 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 produce un vector de tipo por omisión. Si el vector tiene una longitud, todos los elementos se inicializan con el valor de . 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 regresa con un vector. Cuando se le asigna un objeto al resultado de , 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 , 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 . En la línea 3 se crea un vector numérico de tipo con los valores 1, 2, y 3. Al encadenar los vectores y , convierte todo a modo carácter. Por eso terminan encerrados con comillas. Esto puede parecer confuso, pero al tomar en cuenta que trata de ser coherente, deja de serlo.
Funciones con vectores
editarAl trabajar con datos es necesario trabajar con vectores. Veremos algunas funciones que permiten manipular vectores como la siguiente:
: Para obtener la longitud de un vector
> (t.f <- c(TRUE, TRUE, FALSE, TRUE)); length(t.f) [1] TRUE TRUE FALSE TRUE [1] 4
: 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
editarLas 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 son alterados individualmente por la operación especificada.
Cuando dos vectores son de la misma longitud y del mismo tipo, el resultado de es un vector cuyo primer elemento es , el segundo es , 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 y se usa aritmética binaria, iterará sobre los elementos de hasta que su longitud sea igual a la de . Sin embargo, 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, procederá sin problemas. Por ejemplo, si se divide un vector de longitud 10 entre un vector de longitud 5, usará los elementos del vector 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, 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 no es un múltiplo entero de .
Esta misma regla se aplica con funciones que implementan aritmética vectorial. Por ejemplo, considérese la función de raíz cuadrada: . 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
editarCon frecuencia se necesita manipular caracteres. 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 usamos la función :
> paste(s[1], s[2]) [1] "Our friend O'Brien the engineer"
Por omisión, separa sus argumentos con un espacio. Si se desea un carácter diferente para espaciar los elementos, entonces se usa el argumento :
> paste(s[1], s[2], sep = '-') [1] "Our friend O'Brien-the engineer"
Si se desea más información sobre la función úsese .
Subconjuntos de vectores e índices
editarUna 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 , el resultado va a ser . De modo que necesitamos alguna forma de extraer del vector los datos que no son . Vamos a crear el siguiente vector:
> (i <- is.na(x)) [1] FALSE FALSE TRUE FALSE TRUE FALSE
La función examina cada elemento del vector y si es le asigna al correspondiente elemento del vector el valor de ; de lo contrario, le asigna el valor . Ahora vamos a usar al vector como un vector índice para extraer los valores que no son del vector . Tomando en cuenta que si tiene un valor numérico, el elemento correspondiente del vector tiene el valor . Si no tiene valor, entonces el elemento correspondiente de es . Usamos entonces y la negación de 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 , 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 es una función intrínseca de que calcula el promedio de un vector. El primer argumento de es el vector de datos, y el segundo es un argumento lógico que si se le asigna el valor de calcula el promedio sin tomar en cuenta los valores . El valor de por omisión es .
Ejemplo: Vector índice de enteros positivos. Esta es otra forma para excluír datos tipo :
> (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 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 crea un vector de enteros que corren del 20 al 30 y se usa para extraer los correspondientes elementos de , mismos que se redondean a tres decimales usando la función . 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 los elementos del 20 al 30, se expresará como: . Obsérvese como encerramos a entre paréntesis, ya que si no lo hubiéramos hecho, 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 y la altura 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 les da un nombre a los elementos de . Para ver los datos los asociamos por columna con la función :
> 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
editarLos 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: . Las matrices son arreglos rectangulares en dos dimensiones. Los elementos en las matrices se accede a ellos por medio de la notación . Los arreglos tienen dimensiones. Cada elemento de un arreglo es accedido por medio de índices: .
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 . Observemos aquí algunas instrucciones en 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 . 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 :
> (m <- matrix(0, ncol=3, nrow=2)) [,1] [,2] [,3] [1,] 0 0 0 [2,] 0 0 0
Ahora, verificamos si es un arreglo con la función :
> c('matrix?' = is.matrix(m), árray?' = is.array(m)) matrix? array? TRUE TRUE
Como nos muestra la función , 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 en la función .
Problemas Resueltos
editar- Sea
Realícense las siguientes operaciones que se encuentren definidas:
- (
- (
> (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
- Si
Calcúlense aquellos productos matriciales que se encuentren definidos:
> (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