getDelta_wrap | R Documentation |
Performs a contration mapping for a given set of non-linear parameters.
getDelta_wrap(blp_data, par_theta2, printLevel = 1)
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) |
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
.
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
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.