# positive price coefficient after instrumentation in demand estimation

I need to complete an assignment for Industrial Organization course where one of the tasks is to estimate a discrete choice demand model. This means I basically need to estimate a linear model:

$log(s_j) - log(s_0) = X_j \beta - \alpha p_j + \xi_j$

where $s_j$ is the market share for product $j$, $s_0$ - market share for outside option, $X_j$ contains observed characteristics for product $j$, $p_j$ is the price and $\xi_j$ are the unobserved product characteristics.

We have a panel dataset on European car market (few markets spanning few decades with few hundred products) which could be obtained from here. I exploit the panel nature of the data and construct instruments for price by averaging price of product $j$ in other markets, similarly as in the famous paper by Hausman (1994).

The problem and the main question is that after using IV instead of simple OLS I get significant but positive price coefficient, which is hardly to be expected. Does this tell me that the instruments are not appropriate for this case?

Note: the market size is assumed to be population/4 (set by the assigment), in the product characteristics I include horsepower (hp), length (le), width (wi), height (he) and variable of fuel efficiency (li); the price variable used is princ which is price relative to per capita income; I also use dummy variables for market and year (so that trend is controlled for each market basically).

Here is the snippet of the code (maybe i'm doing something wrong while calculating?):

##load libraries
library(foreign)
library(data.table)
library(AER)

convert.date = FALSE, convert.factors = FALSE))

##potential market size in each market and each year is pop/4
##estimate shares and dependent variable that will be used for regression
data[, share := qu / (pop / 4), by = c("ye", "ma")]
data[, share0 := 1 - sum(share), by = c("ye", "ma")]
data[, yy := log(share) - log(share0), by = c("ye", "ma")]

##keep data for regression
data.regression <- data[, list(ye, ma, yy, co, hp, le, wi, he, li, princ)]

##instrument the price
data.regression <- data.regression[, {

##copy the data for processing
dat <- copy(.SD)

##loop over markets