require("hdm")
## Loading required package: hdm
data('BLP')
data=BLP$BLP
head(data)
names(data)
##  [1] "model.name" "model.id"   "firm.id"    "cdid"       "id"        
##  [6] "price"      "mpd"        "air"        "mpg"        "space"     
## [11] "hpwt"       "trend"      "share"      "outshr"     "y"
data1990=data[(2217-130):2217,]
head(data1990)
x=data1990$price[which.min(data1990$price)]
x
## [1] -8.368152

Check the data.

round(weighted.mean(data1990$hpwt, data1990$share),3) # Hp/wt
## [1] 0.419
round(weighted.mean(data1990$space, data1990$share),3) # Size
## [1] 1.27
round(weighted.mean(data1990$air, data1990$share),3) # Air
## [1] 0.308
round(weighted.mean(data1990$mpg, data1990$share),3) # MPG
## [1] 2.27
round(weighted.mean(data1990$mpd, data1990$share),3) # MP$
## [1] 2.852

Prices

require(BLPestimatoR)
## Loading required package: BLPestimatoR
dataB=productData_cars
dataB1990=dataB[(2217-130):2217,]
names(dataB1990)
##  [1] "firmid" "cdid"   "id"     "const"  "price"  "hpwt"   "air"    "mpg"   
##  [9] "space"  "share"
round(weighted.mean(dataB1990$price, dataB1990$share),3) # price
## [1] 10.337
data1990$price=dataB1990$price
names(data1990)[10]="Size"

write.csv(data1990,"Newdata1990.csv")

Checking the estimates

data1=read.csv("BLPdata.csv")
data2=read.csv("BLPdata2.csv")
data=cbind(data1,data2)
data=data[,-c(1:4,6:7,13,15:16,17:21,23:27)]
data$cdid=data$cdid+1970
names(data)[1]="year"

calculating the endogenous variable

We calculate

s0=as.data.frame(cbind(1971:1990,1-tapply(data$share, data$year,sum)))
names(s0)=c("year","s0")

data=merge(data, s0, by.x="year")
data$y=log(data$share)-log(data$s0)
names(data)
##  [1] "year"  "mpd"   "air"   "mpg"   "space" "hpwt"  "share" "price" "s0"   
## [10] "y"
lm(y~hpwt+air
   +mpd+space+price
   ,data= data)
## 
## Call:
## lm(formula = y ~ hpwt + air + mpd + space + price, data = data)
## 
## Coefficients:
## (Intercept)         hpwt          air          mpd        space        price  
##   -10.07159     -0.12431     -0.03434      0.26502      2.34209     -0.08864
  • BLP obtain this