Antes que hablar de distancia
media, cabe mencionar que la media es un promedio, lo mismo que la mediana y la
moda. Un promedio es un estadígrafo que me da una aproximación de una sola
variable al conjunto. Así, promedio no es sinónimo de media. La distancia promedio es un indicador de concentración.
La distancia media se define como
el promedio de todos los promedios de distancias de cada punto contra los
otros. En términos numéricos:
Si P es un conjunto de puntos
p1,p2…pn, tales que existen en un plano de tal modo que hay una xi y una yi
tales que son coordenadas de pi, entonces la distancia promedio de pi a P será para
un j
Y la distancia promedio total
será
La distancia promedio nos dará
una idea, en un espacio isomorfo de que puntos tienen la cercanía óptima en el
conjunto. Tiene diversas aplicaciones. Por ejemplo, si los puntos son escuelas,
y se desea que una de las escuelas sea un centro de zona, la que tenga menor
distancia promedio será aquella en la que la suma de los viajes es menor.
En el cálculo de la distancia
promedio hay dos opciones, contar o no la distancia de cada punto contra si
mismo. Normalmente no se cuenta.
El algoritmo para programación
geográfica en MapBasic es el que sigue. Algoritmos muy similares pueden
escribirse en Avenue, Autolisp u otros lenguajes de objetos geográficos. Para
correrlo debe haber una tabla de puntos en MapInfo que contengan una columna
llamada DistanciaPromAlRest donde se almacenarán los datos de distancia
promedio.
Dim Fin, NumeroDePuntos, M As Integer
Dim X,Y,SUMA,Distancia,DistanciaPromedio As Float
Dim PuntoAEvaluar As Object ‘es posible definir variables
‘objeto,
las comillas son remakes
‘que
permiten ignorar el comentario
‘siguiente
como en este caso
Fin=TableInfo(Puntos,8)’ la variable fin es el
número de renglones en la tabla
Select * From Puntos Where RowId=1 ‘selecciona el primer registro
de
‘
la tabla
For NumeroDePuntos =1 To FIN ‘se inicia un ciclo para recorrer
‘todos
los objetos de la tabla, son
‘puntos
sobre los cuales se medirá
‘
la distancia al resto
Select Obj From Puntos Where RowId=NumeroDePuntos ‘selecciona el renglón que va en el ciclo
PuntoAEvaluar= Selection.Obj ‘se define un objeto a
examinar
X=ObjectGeography(PuntoAEvaluar,1)
‘se extraen las coordenadas del
‘punto
y=ObjectGeography(PuntoAEvaluar,2)
Suma=0 ‘Se inicia
acumulador donde se
‘añade
distancia total
For M=1 To
FIN
Select *
From Puntos Where RowId=M ‘Se
inicia ciclo para medir la
‘distancia
al segundo punto
Distancia=Distance(X,Y,CentroidX(Selection.Obj),CentroidY(Selection.Obj),"cm")
‘se
estima la distancia
Suma=Suma+Distancia ‘se suma la distancia
Next
DistanciaPromedio=Suma/FIN ‘se promedia
Update Puntos
Set
DistanciaPromAlResto = DistanciaPromedio ‘se
almacena
Where Rowid
= NumeroDePuntos
Next
Si interpolamos el resultado sale algo como lo siguiente:
No hay comentarios:
Publicar un comentario