Subido por amuract

2005 - RPIC - Libreria para el analisis exploratorio de datos

Anuncio
RPIC Estudiantil 2005, Río Cuarto, 21 al 23 de septiembre de 2005
Librerías para el análisis exploratorio de datos con ENVI-IDL
Adrian E. Muract†, Damian E. Nadales†,
Asesores: Susana Ferrero‡ y Elsa Moschetti‡
†Dpto. de Computación, Fac. Cs. Exactas,U.N.R.C.
adrian_muract@yahoo.com.ar dnadales@dc.exa.unrc.edu.ar
‡Dpto. de Matemática, Fac. Cs. Exactas,U.N.R.C.
sferrero@exa.unrc.edu.ar emoschetti@exa.unrc.edu.ar
Resumen— ENVI-IDL es un software que permite
la manipulación digital de datos provenientes de
imágenes satelitales, como así también su
visualización. Sin embargo, no cuenta con todas las
herramientas para realizar un análisis estadístico
descriptivo completo de la matriz de datos que
representan a las imágenes. En este trabajo se
presenta la documentación referida a la
implementación de una serie de programas
destinados a cubrir estas falencias, los cuales fueron
organizados en una librería.
Palabras Clave— Librería- Estadística descriptivaENVI-IDL.
I. INTRODUCCIÓN
Las diferentes cubiertas de la superficie terrestre
(campos cultivados, roca desnuda, agua) reflejan la
radiación electromagnética (REM) que les llega desde el
sol, con distintas intensidades o niveles digitales (ND)
de acuerdo a la región del espectro (banda espectral).
Los datos son adquiridos en soporte digital y en formato
numérico (ND) para cada elemento de la superficie y
para cada banda. Esto abre un gran campo para la
aplicación de la estadística a las ciencias de la
observación terrestre (Chuvieco, 2002).
Desde el punto de vista matemático una imagen
multiespectral es una matriz numérica, donde las
columnas representan a las bandas espectrales
(variables) y las filas el valor digital, ND, que
representa las coordenadas geográficas. (Bustos et al.
1998).
En la mayoría de las imágenes satelitales
comercialmente disponibles a los valores de ND se les
puede asignar colores o tonos de gris en función de una
determinada paleta o tabla de colores. Estas
representaciones forman imágenes cuando se las
despliega, con un software adecuado, sobre una pantalla
u otro dispositivo de salida.
Teniendo presente el carácter matricial de cualquier
imagen numérica, se pueden realizar análisis
estadísticos para resumir la información contenida en
ella.
Para describir y resumir cualquier conjunto numérico
en primer lugar es conveniente realizar un análisis
exploratorio de datos construyendo tablas, gráficos y
estadísticos (Moschetti et. al, 2000).
El software ENVI-IDL es apropiado y muy utilizado
por los usuarios, para la visualización y procesamiento
de imágenes. Pero es un lenguaje que no cuenta con
todas las herramientas de la estadística descriptiva
necesarias para realizar el análisis completo de los
datos.
En adición ENVI-IDL no tiene procedimientos que
permitan cargar en arreglos en memoria principal datos
existentes en archivos almacenados en memoria
secundaria.
Estas carencias funcionales dieron lugar a la
implementación de toda aquella funcionalidad necesaria
que el software no brindaba.
En las secciones siguientes se discute el desarrollo de
algoritmos que fueron luego mapeados a programas
IDL, de modo de tener las herramientas necesarias para
el análisis de datos.
II. DESARROLLO
A. Carga de datos desde archivos en memoria
secundaria
Un paso previo al análisis descriptivo es la lectura de
los datos. Éstos en la mayoría de los casos se hallan en
archivos contenidos en memoria secundaria,
organizados en filas y columnas, donde cada columna
representa una variable y la fila el conjunto de valores
observados para dicha variable.
Por tal motivo es necesario cargar cada columna de
estos archivos en un arreglo dentro de la memoria
principal para luego ser analizado. Como dijimos
anteriormente en IDL no existe un procedimiento
implementado que permita hacer esto, por lo cual fue
necesario resolver el siguiente problema:
Dado un archivo conteniendo valores numéricos
dispuestos en n columnas, desarrollar un programa en
IDL tal que genere una estructura de datos que permita
obtener un vector con todos los valores de cualquier
columna.
Observar que el número de columnas debe estar dado.
Esta es una restricción impuesta por IDL, dado que no
RPIC Estudiantil 2005, Río Cuarto, 21 al 23 de septiembre de 2005
cuenta con una función sobre punteros a archivos que
permita determinar el final de una línea, lo que hubiera
posibilitado en el programa dar cuenta del número de
columnas.
La estructura de datos elegida fue una secuencia de
listas implementada con pares de arreglos. Así la
función de abstracción abst (Bird, 1998) (Manber,1992)
asociada a un par de arreglos, que tiene como dominio
el producto cartesiano entre los arreglos de Reales y
arreglos de Naturales y como rango, las listas de Reales;
esta definida como
abst ∈ (<R> r <N>)→[[R]]
abst <> Ys = []
abst (Xs, y:Ys) = Xs[(0:y)] : abst (Ys[-(0:y)], Ys)
donde y:Ys denota el arreglo (o lista) que tiene como
primer elemento a y y como resto Ys ; Xs[(a:b)] es la
lista formada por los elementos del arreglo Xs entre los
índices a y b sin incluir este último, Xs [-(a:b)] es la
lista que contiene todos los elementos del arreglo Xs en
el mismo orden, excepto aquellos que se hallen entre los
índices a y b sin incluir este último.
La razón de elegir listas de listas en lugar de un
arreglo bidimensional es porque resulta más adecuada
en términos de eficiencia espacial e igualmente eficiente
que una representación matricial en términos de
eficiencia temporal.
El único problema que se plantea en el desarrollo de
un algoritmo para la carga de datos es que la lectura de
un archivo en IDL es por filas y los datos se hallan
agrupados por columnas. A continuación vemos una
posible solución.
Por simplicidad modelamos un puntero f a un archivo
como una función con perfil f ∈ N → N → R, de modo
que f i j, representa el elemento que en el archivo se
encuentra en la fila i columna j.
Luego especificamos un procedimiento
vectors_loader, f, n_cols, vs, zs
el cual cumple luego de su ejecución
(∀ k • k ∈ {0..n_cols-1} ⇒f * k = abst(vs, zs).k)
Sea mixed_up el vector resultante de concatenar
sucesivamente las filas de f comenzando por la primera.
Entonces establecemos la siguiente igualdad
f c * = mixed_up [c * n_cols: (c+1) * n_cols - 1]
(Ec1)
donde f i * ( f * i ) es el vector que resulta de tomar la
fila (columna respectivamente) ‘i’ de f .
luego deseamos que vs sea un vector tal que preserve
f * k = vs[k * n_rows:(k+1) * n_rows-1]
donde n_rows es el número de filas del archivo.
Así vamos a construir vs a partir de mixed_up.
Consideremos
(Ec2)
fik
={[Ec1]; def []}
mixed_up([i * n_cols: (i+1) * n_cols-1])[k]
y por otro lado
fik
={[Ec2], def []}
vs([k * n_rows: (k+1) * n_rows-1])[i]
Así queda establecida la siguiente propiedad
mixed_up([i * n_cols: (i+1) * n_cols-1])[k]
=
vs([k * n_rows: (k+1) * n_rows-1])[i]
(Ec3)
Pero dado que por definición de ‘:’ sabemos que
v([a:b])[i] = v [a+i]
(Ec4)
entonces
mixed_up([i * n_cols: (i+1) * n_cols-1])[k]
={[Ec4]}
mixed_up[i * n_cols+k]
y además
vs([k * n_rows: (k+1) * n_rows-1])[i]
={[Ec4]}
vs[k * n_rows+i]
con lo que finalmente se puede concluir que
f i k = mixed_up[i * n_cols+k] =
vs[k * n_rows+i]
(Ec5)
Así una vez que mixed_up haya sido creado tras una
lectura secuencial del archivo, sólo restará construir a vs
a partir del primero, lo cual puede lograrse recorriendo
los índices n_rows * n_cols de f, utilizando la fórmula
(Ec5).
B. Construcción de Tablas de frecuencias
Las Tablas de frecuencias son herramientas muy
útiles para resumir la información contenida en un
conjunto de datos (Moschetti et.al., 2000). La tabla
descripta en este trabajo es la Tabla de Frecuencias
Agrupadas, los elementos que la componen son:
intervalos (formados por los valores de la variable),
frecuencia absoluta (cantidad de valores de la variable
que pertenecen a un intervalo determinado), frecuencia
relativa (frecuencia absoluta dividida el tamaño de la
muestra) y la frecuencia acumulada (suma de las
frecuencias absolutas de los valores de variables
menores o iguales a un determinado valor).
Luego el problema principal es hallar un algoritmo
para el cómputo de la función de frecuencia absoluta
RPIC Estudiantil 2005, Río Cuarto, 21 al 23 de septiembre de 2005
para un conjunto de datos y una partición en intervalos
del mismo. Una vez resuelto, las funciones de
frecuencia relativa y frecuencia acumulada son
fácilmente calculables a través del primero.
Los intervalos construidos son de igual longitud, dada
por la fórmula
li = (máx(Ds)-mín(Ds))/k
siendo k la cantidad de intervalos y Ds un arreglo de
datos.
De esta manera los primeros k-1 intervalos están
determinados como
[mín(Ds)+i * li, mín(Ds)+ (i+1) * li), con i ∈ {0..k-2}
y el último como
[mín(Ds)+ (k-1) * li, mín(Ds)+k * li]
Una vez construidos los intervalos se debe resolver el
siguiente problema:
Determinar la función de frecuencia absoluta para
un conjunto de datos Ds, para k intervalos de igual
longitud.
La función de frecuencia absoluta puede ser
especificada como
f Ds i =
count Ds (λ x|x ∈ [mín(Ds)+(i-1) * li,
mín(Ds)+i * li])∨ ( x = máx(Ds) ∧ i=k ))
Para hallar un algoritmo tal que permita determinar f
se puede utilizar inducción sobre #Xs, (∀Xs • Xs ⊆ Ds).
Además vamos a necesitar una generalización de la
función anterior:
g Ds Xs i =
count Xs (λ x|x ∈ [mín(Ds)+(i-1) * li,
mín(Ds)+i * li])∨ ( x = máx(Ds) ∧ i=k ))
notar que f Ds=g Ds Ds.
Así se plantea la siguiente hipótesis inductiva
[g, hi] ∀ Xs • Xs ⊆ Ds ∧ #Xs≤ k ⇒
se conoce la función gDs Xs.
Caso base (#Xs=0)
Es fácil ver que
∀ i ∈ {1..k} • f [] i = 0 ⇒ [g, hi]
Etapa inductiva
Se asume [g, hi] y se intenta extender la hipótesis de
modo de poder determinar
g Ds Xs++[x]
esto por la manera en la que se definieron los intervalos
para Ds y dado que x∈ Ds.
(∃ t • t ∈ {1..k-1} ∧
x ∈ [mín(Ds)+(t-1) * li, mín(Ds)+t * li))∨
x = máx(Ds)
Luego sólo basta encontrar el intervalo al cual
pertenece el valor de variable x.
Centremos el rango [mín(Ds), máx(Ds)] en cero para
obtener el siguiente hecho
(∃ q • q = (x-mín(Ds) div li)
≡{algoritmo de división entera}
x-mín(Ds)=q * li+r ∧ 0≤ r < li
⇒{álgebra}
q * li ≤ x-mín(Ds) ∧ x-mín(Ds)<(q+1) * li
≡{álgebra}
mín(Ds)+q * li ≤ x< mín(Ds) +(q+1) * li
≡{def. [)}
x ∈ [mín(Ds)+q * li, mín(Ds) +(q+1) * li)
Luego g Ds Xs sólo diferirá de g Ds Xs++[x] en un
punto p del rango el cual será
• q+1 si x<máx(Ds)
• k si x=máx(Ds)
De este modo resulta
(∀ i • i ∈ {1..n} ⇒
( i ≠ p ⇒ g Ds Xs++[x] i = g Ds Xs i)
∧ (i = p ⇒ g Ds Xs++[x] i = (g Ds Xs i)+1)
)
Con lo que se está en condiciones de dar un algoritmo
lineal para el cálculo de la función de frecuencia
absoluta, la cual se modeló usando un arreglo en el
programa que genera las tablas de frecuencias, cuyo
perfil es el siguiente
tablas, v, n, show, fi, fa
donde al final de la ejecución fi contendrá la función de
frecuencia absoluta, fa la de frecuencia acumulada y si
show=0 las tablas de frecuencias serán impresas por
pantalla.
C. Elaboración de Gráficos estadísticos
Para poder elaborar los programas que permitieran
realizar los gráficos estadísticos fue necesario hallar en
IDL las operaciones primitivas del lenguaje para
trabajar con éstos.
De esta manera, en el desarrollo de los programas se
usaron las siguientes primitivas gráficas (Learning IDL,
1997) :
• window[,/free][,title=t][,xpos=xp][,ypos=yp]
[,xsize=xs][,ysize=ys]
el cual permite crear una nueva ventana con un canvas
para comenzar el dibujo.
El parámetro opcional title indica el título que ha de
llevar la ventana; xpos e ypos determinan la posición en
la que aparecerá la esquina inferior derecha de la
ventana en la pantalla. Si /free no aparece se crea una
nueva ventana en el caso de no tener una o se
sobrescribe el canvas de la ya existente; si /free aparece
se crea una nueva ventana sin importar si ya existe una.
El tamaño en píxeles de la ventana se especifica con
xsize e ysize.
• plots, x, y [,/device][,/continue]
RPIC Estudiantil 2005, Río Cuarto, 21 al 23 de septiembre de 2005
este procedimiento permite establecer la posición
corriente del puntero virtual de dibujo en el punto (x,y)
del canvas de la ventana donde se está dibujando. Si
aparece /continue en el gráfico se dibuja una línea desde
la posición previa del puntero hasta (x,y). /device indica
que la posición (x,y) es relativa al sistema de
coordenadas del canvas, el cual aparece dado en píxeles.
El siguiente es un procedimiento que coloca en la
posición (x,y) del canvas el texto dado por el string st.
• xyouts, x, y, st
[,/device][,textsize=ts][,orientation=or]
El parámetro opcional /device tiene la misma
semántica que especificamos antes; textsize indica el
tamaño del texto; y orientation la rotación en grados de
la línea base del texto en sentido contrario a las agujas
del reloj.
Estos procedimientos se utilizaron para elaborar
programas que permiten generar los gráficos
estadísticos “Histograma” “Polígono de Frecuencia
Ordinaria” y ”Box Plot”.
C.1 Hallando las coordenadas de un punto en un eje.
En la realización de los programas que implementan
los diferentes gráficos estadísticos se planteó el
siguiente problema:
Dado un eje cuyo valor mínimo es mn y su valor
máximo es mx, tal que a mn le corresponda un punto
lwr y a mx el punto upr, y dado un valor x tal que
mn≤ x ≤ mx
hallar el punto que le corresponde a x.
Una fórmula que de solución a este problema surge de
considerar los siguientes hechos
mx-mn unidades abarcan upr-lwr puntos
⇒{regla de tres simple}
1 unidad abarca (upr-lwr)/(mx-mn) puntos
(F1)
y dado que la distancia abarcada por un punto entre
mn y mx es
x - mn unidades
⇒{(F1)}
x-mn abarca (x-mn) * (upr-lwr)/(mx-mn)
puntos
Así x se ubicará en el punto que se halla en x-mn (xmn) * (upr-lwr)/(mx-mn) puntos contando desde lwr,
con lo que el punto que le corresponde a x es
lwr+ (x-mn) * (upr-lwr)/(mx-mn)
C.2 Una escala para el eje Y
Para poder dar una escala legible se trabajó con
logaritmos utilizando el procedimiento
get_log_scale, mn, mx, mv, u, nc
donde mn representa el mínimo valor que el eje y deberá
cubrir, mx el máximo y en las variable mv se dejará
como resultado el mínimo valor del eje y, se asignará en
u las unidades que representará cada corte y en nc el
número de cortes.
En el desarrollo de este procedimiento se buscó que,
usando el procedimiento get_ideal_mín, mv cumpliese
que
mv = 1.25*10(b-1) ∨ 1 mv = 1.5*10(-1) ∨
mv = 2*10(b-1)∨ mv = 2.5*10(b-1) ∨
mv = 3*10(b-1)∨ mv = 4.5*10(b-1)∨
mv = 5*10(b-1) ∨ mv = 5.5*10(b-1) ∨
mv = 6.5*10(b-1) ∨ mv = 7.5*10(b-1)∨
mv = 8.5*10(b-1)
siendo
b = ceil(log10(mn)), si 0<mn
b = ceil(log10(-mn)), si mn<0
La elección de un coeficiente ‘a’ que acompaña al
x
factor de la forma 10 , se hizo de modo que cumpliese
si 0<mn
(∀ x • x ∈ Ix ⇒ x*10
b-1
si mn<0
(∀ x • x ∈ Ix ⇒ -(x*10
≤ a*10
b-1
b-1
≤ mn)
)≤ -(a*10
b-1
)≤ mn)
donde Ix = {1.25, 1.5, 2, 2.5, 3, 4.5, 5, 5.5, 6.5, 7.5, 8.5}
De este modo, una vez que el valor para mv es
determinado, los valores mx y mn son centrados en cero
obteniendo el número rmx definido como
rmx=mx-mn
Luego se eligió nc = 10, y obtenemos u de modo que
pueda expresarse como
u = 1.25*10(b-1) ∨ 1 u = 1.5*10(-1) ∨
u = 2*10(b-1) ∨ u = 2.5*10(b-1) ∨
u = 3*10(b-1) ∨ u = 4.5*10(b-1) ∨
u = 5*10(b-1) ∨ u = 5.5*10(b-1) ∨
u = 6.5*10(b-1) ∨ u = 7.5*10(b-1) ∨ u = 8.5*10(b-1)
siendo b=log10(rmx), de forma tal que u cumpla:
(∀ x • x ∈ Ix ⇒ u ≤ x*10(b-1)) ∧ rmx ≤ 10*u
C.3 Histograma
El histograma es el gráfico utilizado para representar
la tabla de distribución de frecuencias agrupadas. El
algoritmo para diseñar un histograma se desarrolló a
partir de la resolución del siguiente problema:
Dado un arreglo Ds, el cual representa un conjunto
de datos, un número de intervalos k y una función f la
cual representa la frecuencia absoluta de Ds dividido
en k intervalos consecutivos de igual longitud, dibujar
el histograma.
Luego para generar un histograma los siguientes
puntos deben ser identificados en la pantalla: al valor
máximo representable en el eje y se le asocia el punto
(lx, by), al valor mínimo mn (que para el caso del
histograma será cero) el punto (lx, ly) en el plano.
Mientras que el eje x está limitado en su extremo
derecho por el punto (lx, by) y por barIni=lx+c. El
valor ‘a’ denota la fórmula (i-1) * lpi+barIni, y ‘b’ es
igual a i * lpi+barIni. La localización de estos puntos se
muestra en la Fig. 1. El valor lpi es el ancho de cada
barra del histograma, donde
lpi = (bx-barIni)/n
RPIC Estudiantil 2005, Río Cuarto, 21 al 23 de septiembre de 2005
Los valores lx, ly, bx, by, c son constantes, mientras
que mx estará determinado de acuerdo a la escala que se
elija para el eje y en particular en el programa
desarrollado, la función get_log_scale determinará el
número de cortes y las unidades que representa cada
corte.
get_midle_value
que genera los cuartiles, y la función
put_outliers
que grafica los valores que caen fuera de un rango dado,
de un conjunto de datos. Una vez obtenidos los valores
de los cuartiles (Q1, Q2, Q3 ) y del rango intercuartílico
(IQR) resulta sencilla la implementación del programa
que realiza un Box Plot como el de la Fig.3 para n
muestras cuyo perfil es
box_plot, vars, count
donde vars es un vector en el que cada muestra
estadística se halla colocada al lado de la otra y count[i]
representa la longitud de la muestra i-ésima.
Figura 1: Localización de puntos para generar un
histograma.
Finalmente, el valor hfi se determina utilizando la
fórmula dada en el parágrafo C.1 de la Sección II.
Con los puntos determinados de esta manera es fácil
construir el algoritmo propuesto, el cual es
implementado mediante el procedimiento
make_histogram, data_set, label
el que generara un histograma ( como el que se muestra
en la Fig 2 ) para el conjunto de datos representados por
el vector data_set. La variable label representar’a el
titulo del histograma.
Figura 2: Ejemplo de un histograma
C.4 Box Plot
Los elementos necesarios para construir este gráfico
(diagrama de cajas) según Mosteller y Tukey (1982),
son: los cuartiles (estadísticos de posición), el valor
máximo, el mínimo de la muestra, el rango
intercuartílico y los outliers Para la implementación
del programa que realiza este tipo de gráfico se
desarrolló la función
Figura 3 : Box Plot simultáneos.
C.5 Stem & leaf
Éste es un procedimiento semigráfico útil para
presentar la información de variables cuantitativas, que
permite observar la forma de la distribución como así
también la presencia de valores extremos. (Mosteller
and Tukey, 1982). De acuerdo al tamaño de la muestra
y/o al valor de las frecuencias se puede subdividir el
tallo.
Para la implementación del algoritmo que realiza el
Stem&leaf se realizaron tres funciones las que se
detallan a continuación:
• stem_1: toma como parámetro un arreglo e
imprime el gráfico de tallo y hoja con un tallo
sin subdivisión, o sea toma los valores enteros
y los imprime, luego seguido a este valor se
agregan los valores de hoja entre 0 y 9.
• stem_2: toma como parámetro un arreglo e
imprime el gráfico con el tallo subdividido en
2, a la primera subdivisión le corresponden
valores de hojas entre 0 y 4; a la segunda
valores entre 5 y 9.
• stem_5: toma como parámetro un arreglo e
imprime el gráfico de tallo y hoja con 5
subdivisiones para el tallo, correspondiéndole a
cada uno dos valores de hoja (por ejemplo,
para el primero, valores de hoja 0 y 1, para el
segundo 2 y 3 y así sucesivamente).
C.6 Polígono de frecuencias ordinarias
Éste es un gráfico muy utilizado para visualizar a qué
modelo probabilístico se ajustan los datos de una
imagen (Bustos et al. 2000). El elemento principal para
generar un polígono de frecuencias es la marca de clase
RPIC Estudiantil 2005, Río Cuarto, 21 al 23 de septiembre de 2005
del intervalo (punto medio del intervalo) con su
frecuencia correspondiente. Para obtener éste gráfico se
modificó el algoritmo que genera un histograma. El
cambio que se realizó en éste fue el siguiente: en vez de
graficar una barra, se realizó una segmento que uniese la
frecuencia correspondiente a la marca de clase del
intervalo anterior con la del intervalo siguiente. En el
caso del primer intervalo, se creó un intervalo antecesor
a éste con frecuencia cero, pudiendo así empezar el
polígono desde el eje de las abscisas. En el caso del
último intervalo, se agregó un intervalo más con
frecuencia cero, pudiendo así terminar el polígono sobre
el eje de las abscisas. El procedimiento que implementa
el algoritmo para el gráfico del polígono de frecuencia
ordinaria (como el de Fig. 4), tiene el siguiente perfil
Poligono, vect, n
donde vect es el arreglo que contiene el conjunto de
datos y n es la cantidad de intervalos.
CV(Ds)=(S(Ds)/X(Ds))*100
III. CONCLUSIONES
Este trabajo permitió elaborar una serie de librerías
apropiadas para realizar un análisis exploratorio de
datos completos utilizando ENVI/IDL. La ventaja es
que con el mismo software se puede analizar y
visualizar las imágenes.
Al trabajar con el lenguaje de programación IDL se
detectaron algunos problemas, entre ellos se destacan
los siguientes:
• Punto flotante: Una guarda booleana que
involucre una igualdad entre dos variables de este
tipo no está garantizada de evaluar a verdadero pese
a que los valores que estas contengan sean iguales.
(Bustos y Frery)
• Orientación a objetos: El paradigma no se halla
soportado, pese a lo que expresan lo creadores de
ENVI/IDL.
• No es escalable: La carencia de una estructura de
bloques,
y
mecanismos
adecuados
de
modularización y abstracción, hacen que este
lenguaje no sea adecuado para sistemas de software
de mediana complejidad.
REFERENCIAS
Figura 4: Polígono de Frecuencia Ordinaria
D. Estadísticos
Los estadísticos son valores de variable típicos
que caracterizan a una muestra (Moschetti et al
2000). El software ENVI- IDL calcula algunos
de ellos; se implementaron programas para
completar el conjunto de estadísticos necesarios
para la descripción de la muestra y construcción
de algunos gráficos
• Para la Mediana
Mediana(Ds)=[sort(Ds).floor((#(Ds)-1)/2)+
sort(Ds).ceil((#(Ds)-1)/2)]/2
sort es la función que retorna la secuencia
ordenada y Xs.i denota al (i+1)-ésimo elemento
de una secuencia Xs.
• Para la Moda:
x moda Ds ≡ x ∈ Ds ∧ (∀ y ∈ Ds •
(count Ds (λ z| z=y))≤(count Ds (λ z| z=y)))
donde x moda Ds se lee “x es la moda de Ds”.
• Para el Rango:
Rango(Ds)=máx(Ds)-mín(Ds)
• Para el Rango intercuartílico (IQR)
IQR(Ds)=Q3-Q1
donde Q1 y Q3 representan los cuartiles primero
y tercero respectivamente.
• Para el Coeficiente de variación: (CV)
Bird, Richard Introduction to functional programming
using Haskell. Prentice Hall. (1998).
Bustos O; Ferrero S, Palacio G. “Introducción a la
adquisición e interpretación de imágenes de
Percepción Remota”. Serie C: Trabajos de
Matemática FAMAF. Córdoba 1-25 (1998).
Bustos, Oscar H.; Frery, Alejandro C. ; -Moschetti, Elsa
E.y-Picco, Mery L. “Modelado y Análisis de
imágenes de radar de apertura sintética – una
aplicación
a
datos
reales”.
Congreso
Latinoamericano de Sociedades Estadística.
(CLATSE V) 1-10.Buenos Aires (2000).
Bustos, Oscar H.; Frery, Alejandro C. “Statistical
functions and procedures in IDL 5.6 and 6.0”,
Computational Statistics and Data Analysis. (in
press)
Chuvieco, Emilio Teledetección Ambiental. Editorial
Ariel S.A. España.(2002),.
ENVI- IDL. The enviroment for vizualizing images
"Research
System.
Inc.
USA,
http/www.rsinc.com/envi.
Learning IDL. IDL Student Versión 5.0. Research
System (1997)..
Manber, Uddi Introduction to Algorithms. Adisson
Wesley. (1992).
Moschetti E. , Ferrero S., Palacio G. , Ruiz M.
Introducción a la Estadística para la Ciencia de la
Vida" Editorial Fundación de la Universidad
Nacional de Río Cuarto.(2000).
Mosteller F. and Tukey J.Understanding robust and
exploratory data analysis.John Wiley & SONS
INC. (1982).
Descargar