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 BLP_data,

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)


[Package BLPestimatoR version 0.3.4 Index]