getDelta_wrap {BLPestimatoR} | R Documentation |
Performs a contration mapping for a given set of non-linear parameters.
Description
Performs a contration mapping for a given set of non-linear parameters.
Usage
getDelta_wrap(blp_data, par_theta2, printLevel = 1)
Arguments
blp_data |
data object created by the function |
par_theta2 |
matrix with column and rownames providing a starting value for the optimization routine (see details), |
printLevel |
level of output information (default = 1) |
Details
NA's in par_theta2
entries indicate the exclusion from estimation, i.e. the coefficient is assumed to be zero.
If only unobserved heterogeneity is used (no demographics), the column name of par_theta2
must be "unobs_sd".
With demographics the colnames must match the names of provided demographics (as in demographic_draws
) and "unobs_sd".
Row names of par_theta2
must match random coefficients as specified in model
. Constants must be named "(Intercept)".
Starting guesses for the contraction mapping are provided with BLP_data
.
Value
Returns an object of class "blp_cm" with results from the contraction mapping.
delta
resulting vector of mean utilities after the contraction mapping
counter
inner iterations needed to convergence
sij
market share integral evaluations for each product (in rows) for the final mean utility
Examples
K<-2 #number of random coefficients
data <- simulate_BLP_dataset(nmkt = 25, nbrn = 20,
Xlin = c("price", "x1", "x2", "x3", "x4", "x5"),
Xexo = c("x1", "x2", "x3", "x4", "x5"),
Xrandom = paste0("x",1:K),instruments = paste0("iv",1:10),
true.parameters = list(Xlin.true.except.price = rep(0.2,5),
Xlin.true.price = -0.2,
Xrandom.true = rep(2,K),
instrument.effects = rep(2,10),
instrument.Xexo.effects = rep(1,5)),
price.endogeneity = list( mean.xi = -2,
mean.eita = 0,
cov = cbind( c(1,0.7), c(0.7,1))),
printlevel = 0, seed = 234234 )
model <- as.formula("shares ~ price + x1 + x2 + x3 + x4 + x5 |
x1 + x2 + x3 + x4 + x5 |
0+ x1 + x2 |
iv1 + iv2 + iv3 + iv4 + iv5 + iv6 + iv7 + iv8 +iv9 +iv10" )
blp_data <- BLP_data(model = model, market_identifier="cdid",
product_id = "prod_id",
productData = data,
integration_method = "MLHS" ,
integration_accuracy = 40,
integration_seed = 1)
theta_guesses <- matrix(c(0.5,2), nrow=2)
rownames(theta_guesses) <- c("x1","x2")
colnames(theta_guesses) <- "unobs_sd"
delta_eval <- getDelta_wrap( blp_data=blp_data,
par_theta2 = theta_guesses,
printLevel = 4)