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
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
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
It also coincides perfectly.
I will use the price as the correct one.
data1990$price=dataB1990$price
names(data1990)[10]="Size"
write.csv(data1990,"Newdata1990.csv")
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"
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