This is a broad question. I can suggest R as scripting language. I am convinced that it is able to handle your spatial modelling. It supports spatial explicit data (GIS) and is very flexible. In fact there are chances that applications you are interested in have been already covered by other researchers. In addition the software is free and open source
There are all sorts of programs for all sorts of spatial modeling. GRASS, ArcGIS, and Maptitude are three GIS programs that by their nature encourage it. R is a good statistical and scripting language that allows certain kinds of correlation between place, proximity and subject. My suggestion is think first and think clearly about what you want to investigate. What you want to show and then what is the best way to show it? Usually a combination of cartographic and statistical works best. But don't begin with the program, begin with the nature of the precise issue to be tested. After that, chosing the method of exploration and explanation is easier.