Description Usage Arguments Details Value Author(s) References See Also Examples
This function calculates the market share elasticities (point elasticity) with respect to an attraction/utility variable and its given weighting parameter.
1 2 | mci.shares.elast (mcidataset, submarkets, suppliers, shares, mcivar, mciparam,
check_df = TRUE)
|
mcidataset |
an interaction matrix which is a |
submarkets |
the column in the interaction matrix |
suppliers |
the column in the interaction matrix |
shares |
the column in the interaction matrix |
mcivar |
the column in the interaction matrix |
mciparam |
single value of the (empirically estimated) weighting parameter corresponding to the attraction/utility variable |
check_df |
logical argument that indicates if the input (dataset, column names) is checked (default: |
Market-share elasticity is defined as the ratio of the relative change in the market share corresponding to a relative change in an explanatory (attraction/utility) variable, such as price or, in the context of retailing, driving time, sales area or price level. The elasticities calculated here are point elasticities (not arc elasticities): e_{s_{i}} = (d p_{i} / d X_{ki}) * (X_{ki} / {p_i}), which are calculated for the MCI model via: e_{s_{i}}=β _{k}*(1-p_i), where β _k is the corresponding weighting parameter. If the (absolute) elasticity value is greater than one, the suppliers' market share is called elastic, if it is smaller than one, the share is unelastic. E.g. if the share elasticity of a products' price is -2, a relative price reduction of 5% results in a share increase of 10% (Cooper/Nakanishi 2010). Note that the elasticity depends on the empirical shares: The greater the actual share, the smaller is the elasticity.
The function mci.shares.elast()
returns the input interaction matrix (data.frame
) with a new column containing the calculated share elasticities for every combination of i and j.
Thomas Wieland
Cooper, L. G./Nakanishi, M. (2010): “Market-Share Analysis: Evaluating competitive marketing effectiveness”. Boston, Dordrecht, London : Kluwer (first published 1988). E-book version from 2010: http://www.anderson.ucla.edu/faculty/lee.cooper/MCI_Book/BOOKI2010.pdf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # MCI analysis for the grocery store market areas based on the POS survey in shopping1 #
data(shopping1)
# Loading the survey dataset
data(shopping2)
# Loading the distance/travel time dataset
data(shopping3)
# Loading the dataset containing information about the city districts
data(shopping4)
# Loading the grocery store data
shopping1_KAeast <- shopping1[shopping1$resid_code %in%
shopping3$resid_code[shopping3$KA_east == 1],]
# Extracting only inhabitants of the eastern districts of Karlsruhe
ijmatrix_gro_adj <- ijmatrix.create(shopping1_KAeast, "resid_code",
"gro_purchase_code", "gro_purchase_expen", remSing = TRUE, remSing.val = 1,
remSingSupp.val = 2, correctVar = TRUE, correctVar.val = 0.1)
# Removing singular instances/outliers (remSing = TRUE) incorporating
# only suppliers which are at least obtained three times (remSingSupp.val = 2)
# Correcting the values (correctVar = TRUE)
# by adding 0.1 to the absolute values (correctVar.val = 0.1)
ijmatrix_gro_adj <- ijmatrix_gro_adj[(ijmatrix_gro_adj$gro_purchase_code !=
"REFORMHAUSBOESER") & (ijmatrix_gro_adj$gro_purchase_code != "WMARKT_DURLACH")
& (ijmatrix_gro_adj$gro_purchase_code != "X_INCOMPLETE_STORE"),]
# Remove non-regarded observations
ijmatrix_gro_adj_dist <- merge (ijmatrix_gro_adj, shopping2, by.x="interaction",
by.y="route")
# Include the distances and travel times (shopping2)
ijmatrix_gro_adj_dist_stores <- merge (ijmatrix_gro_adj_dist, shopping4,
by.x = "gro_purchase_code", by.y = "location_code")
# Adding the store information (shopping4)
mci.transvar(ijmatrix_gro_adj_dist_stores, "resid_code", "gro_purchase_code",
"p_ij_obs")
# Log-centering transformation of one variable (p_ij_obs)
ijmatrix_gro_transf <- mci.transmat(ijmatrix_gro_adj_dist_stores, "resid_code",
"gro_purchase_code", "p_ij_obs", "d_time", "salesarea_qm")
# Log-centering transformation of the interaction matrix
mcimodel_gro_trips <- mci.fit(ijmatrix_gro_adj_dist_stores, "resid_code",
"gro_purchase_code", "p_ij_obs", "d_time", "salesarea_qm")
# MCI model for the grocery store market areas
# shares: "p_ij_obs", explanatory variables: "d_time", "salesarea_qm"
summary(mcimodel_gro_trips)
# Use like lm
# Calculating market share elasticity:
ijmatrix_gro_adj_dist_stores_elas1 <- mci.shares.elast (ijmatrix_gro_adj_dist_stores,
"resid_code", "gro_purchase_code", "p_ij_obs", "d_time", -1.2443)
# Share elasticities of driving time
ijmatrix_gro_adj_dist_stores_elas2 <- mci.shares.elast (ijmatrix_gro_adj_dist_stores,
"resid_code", "gro_purchase_code", "p_ij_obs", "salesarea_qm", 0.9413)
# Share elasticities of sales area of the stores
|
[1] 0.5586409 -1.4456805 0.8119981 1.4633403 -1.4456805 -1.4456805
[7] -0.4042878 0.1671033 0.7611454 0.8119981 0.1671033 -0.4297476
[13] 0.6116451 -0.4297476 0.8924717 -0.4297476 -0.4297476 -0.4297476
[19] -0.4297476 0.8924717 0.6116451 -0.4297476 -0.2148738 -0.2148738
[25] -0.2148738 0.8265189 -0.2148738 -0.2148738 -0.2148738 -0.2148738
[31] 1.1073455 -0.2148738 -0.2148738 -0.2148738 -0.2148738 -0.2148738
[37] 1.1073455 -0.2148738 -0.2148738 -0.2148738 -0.2148738 0.8265189
[43] -0.2148738 -0.2148738 0.1391845 0.1391845 0.4200111 0.8053619
[49] 0.7105756 -0.9022082 0.5891535 -0.9022082 0.8053619 -0.9022082
[55] -0.9022082 -0.1893441 -0.1893441 -0.1893441 0.8520486 -0.1893441
[61] -0.1893441 -0.1893441 -0.1893441 0.8520486 -0.1893441 -0.1893441
[67] -0.2768831 -0.2768831 -0.2768831 0.7645096 -0.2768831 -0.2768831
[73] -0.2768831 -0.2768831 1.7274383 -0.2768831 -0.2768831 -0.1202018
[79] -0.1202018 -0.1202018 -0.1202018 -0.1202018 -0.1202018 -0.1202018
[85] -0.1202018 1.2020175 -0.1202018 -0.1202018 -0.3768671 -0.3768671
[91] 0.6645256 1.2359167 -0.3768671 -0.3768671 -0.3768671 -0.3768671
[97] 1.1144946 -0.3768671 -0.3768671 -0.3359608 0.7054318 -0.3359608
[103] -0.3359608 -0.3359608 0.7054318 -0.3359608 -0.3359608 1.2768230
[109] -0.3359608 -0.3359608 -0.2668185 -0.2668185 -0.2668185 -0.2668185
[115] -0.2668185 1.0554008 -0.2668185 -0.2668185 1.3459654 -0.2668185
[121] -0.2668185
Call:
lm(formula = mci_formula, data = mciworkfile)
Residuals:
Min 1Q Median 3Q Max
-1.27457 -0.28725 -0.02391 0.32163 1.29351
Coefficients:
Estimate Std. Error t value Pr(>|t|)
d_time_t -1.2443 0.2319 -5.367 4.02e-07 ***
salesarea_qm_t 0.9413 0.1158 8.132 4.59e-13 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.4458 on 119 degrees of freedom
Multiple R-squared: 0.4603, Adjusted R-squared: 0.4512
F-statistic: 50.74 on 2 and 119 DF, p-value: < 2.2e-16
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.