I am trying to model sales data for stores at the Census block group level in order to predict sales at potential new restaurants. For example, I know that store 2, which has a giant flashing neon sign, has $2K in sales from block group 101, which is 2.5 miles away from the store 2 and where there are 600 households and 50 people living in college dorm. So far this is pretty standard.
The fly in the ointment is that the average store has ~30% of the sales data that cannot be geocoded for some reason (new construction, college dormitories, military bases, lazy employees who take down the address in shorthand, and so on), so that I only know the store that handled the sales and not where those customers reside.
My approach to modeling the ungeocoded data starts with aggregating demographic data from around the store's trade area and all the ungeocoded sales, so that even if I don't know where those customers are, I can at least take a stab at understanding the sales behavior based on what's around the store. For example, if my store is near a college campus or has lots of construction, I would it expect it to have higher ungeocoded sales, all else being equal.
This works reasonably well, but the geocoded and ungeocoded sales models are not linked in any way, which is problematic. Essentially, my geocoded sales are measured with non-spherical error that is correlated with my explanatory variables. It's also the case that ungeocoded sales generally increase with geocoded sales. I tried to remedy the first by including the fraction of total sales that are ungeocoded in the geocoded sales model, and total geocoded sales in the ungeocoded model, but I don't know how to define those variables for potential sites whose sales I am interested in forecasting. I guess I can just set ungeocoded sales at 30%, then predict geocoded sales, and use that to forecast ungeocoded sales, but is there a better way to link the two models for the better estimation and forecasting?