El pa ckage spatstat
es tu amigo!
http://www.spatstat.org/spatstat/
Si los datos es un conjunto de eventos (como "un crimen ocurrido en (x, y)" para muchos (x, y)), entonces usted puede utilizar una estimación de la densidad del núcleo para generar su mapa de calor. Se puede ver un ejemplo aquí:
https://github.com/drewconway/WikiLeaks_Analysis/blob/master/density.r
específicamente línea 72.
Si sus valores z son valores reales (que es probablemente el caso de la lectura de su pregunta), puede utilizar la función de spatstat smooth
que utiliza un kernel gaussiano para realizar la interpolación y obtener un conjunto de píxeles que se han generado al interpolar sus datos.
Como alternativa, puede usar el paquete akima
(según lo recomendado por los autores spatstat
) para la interpolación en las ubicaciones que especifique. Utiliza interpolación lineal o basada en spline y parece bastante sencillo (¡aunque no tengo experiencia en ello!).
En general, lo que estás tratando de hacer a menudo se llama "Kriging", por lo que obtienes muchos resultados si buscas en Google. Ver p. los paquetes gstat
y geoR
.
Finalmente (y FTW) puede usar Procesos Gaussianos para hacer el mismo tipo de cosas. Esto realmente le dará una distribución sobre posibles interpolaciones dados sus datos. El paquete R kernlab
tiene una implementación, aunque no tengo ni idea de cómo usarlo.
Pruebe el paquete 'raster'. –
Si tiene los datos de latitud y longitud, ¿son irrelevantes los códigos postales? –
Sí, puedo usar códigos postales o datos lat/long – Mark