8
votes

Dessinez une chaleur en r basée sur des codes postaux seulement

Je veux dessiner une chaleur dans R, mais mon fichier de données est comme celui-ci

Lat, Long, Zip, Zvalue

r

3 commentaires

Si vous avez les données de latitude et de longitude, les codes postaux ne sont-ils pas pertinents?


Oui, je peux utiliser des codes zip ou des données lat / long


Y a-t-il de bonnes solutions pour ce problème? Les paquets sont plutôt complexes ... Avez-vous résolu cela?


3 Réponses :


3
votes

Jeffrey Breen a fait ce type d'intrigue à l'aide des packages GGPLot2 et des codes ZIP: http://jeffreybreen.wordpress.com/2011/01/05/cran-zipcode/

qui devrait vous aider à démarrer


1 commentaires

Mais ce n'est même pas une chaleur, à son meilleur, c'est une carte de choroplie. Je me demande s'il y a une fonction / paquet pouvant faire l'interpolation automatiquement.



2
votes

Vous pouvez regarder le code du gagnant de la concurrence des études de cas GGPLOT ici

L'auteur a utilisé Geom_tille pour faire une chaleur, le titre du graphique est le suivant: Carte météo sur la criminalité violente du centre-ville de Houston


0 commentaires

4
votes

Le paquet SPATStat Votre ami est votre ami!

http://www.spatstat.org/spatstat/

Si vos données sont un ensemble d'événements (comme "un crime survenu à (x, y)" pour beaucoup (x, y)), vous pouvez utiliser une estimation de la densité de noyau pour générer votre carte thermique. Vous pouvez voir un exemple ici:

https://github.com/trewconway/wikileaks_analysis/blob/master/ densité.r

Spécifiquement la ligne 72.

Si vos valeurs Z sont des valeurs réelles (ce qui est probablement le cas lisant votre question), vous pouvez utiliser la fonction SMOD> SLASTAT ''S> SMOGY qui utilise un noyau gaussien pour effectuer l'interpolation et récupérer un ensemble de pixels qui ont été générés en interpolant vos données.

Alternativement, vous pouvez utiliser le package akima (comme recommandé par les auteurs SPATStat ) pour l'interpolation aux emplacements que vous spécifiez. Il utilise une interpolation linéaire ou spline et semble assez simple (bien que je n'ai aucune expérience avec elle!).

Plus généralement ce que vous essayez de faire est souvent appelé "Kriging", et vous obtenez donc beaucoup de résultats si vous atteignez Google pour cela. Voir par exemple le gstat et geor paquets.

Enfin (et FTW), vous pouvez utiliser des processus gaussiens pour faire le même genre de chose. Cela vous donnera réellement une distribution sur les interpolations éventuelles étant donné vos données. Le package R kernlab a une implémentation, même si je ne sais pas comment l'utiliser.


0 commentaires