mci.sim: MCI model market simulation

Description Usage Arguments Details Value Note Author(s) References See Also Examples

Description

Market simulation using the MCI model

Usage

1
2
mci.sim(mcimodel, origins.pot, ..., 
mcitrans = "lc", interc = NULL)

Arguments

mcimodel

Object (list) created by the function mci

origins.pot

The column representing the customer potential in the origins in the interaction matrix in mcimodel

...

Explanatory variables (partial utilites) and their corresponding weighting parameters (variable1, parameter1, variable2, parameter2, ...)

mcitrans

Type of MCI transformation: Log-centering transformation (mcitrans = "lc"), or, e.g. in the case of using dummy variables, inverse log-centering transformation (mcitrans = "ilc")

interc

Intercept to be included

Details

This function calculates a market simulation using the Multiplicative Competitive Interaction (MCI) Model based on a given MCI model.

Value

A mcimodel list (invisible) containing the following components:

mcimat

MCI interaction matrix (data frame), also containing the local market shares (p_ij)

mcitotal

Total location market areas (data frame), also containing the total market areas (T_j)

Note

The function is a wrapper of mci.shares and shares.total of the MCI package. For further information see the MCI documentation and the corresponding RJ paper (Wieland 2017).

Author(s)

Thomas Wieland

References

Huff, D. L./Batsell, R. R. (1975): “Conceptual and Operational Problems with Market Share Models of Consumer Spatial Behavior”. In: Advances in Consumer Research, 2, p. 165-172.

Huff, D. L./McCallum, D. (2008): “Calibrating the Huff Model Using ArcGIS Business Analyst”. ESRI White Paper, September 2008. https://www.esri.com/library/whitepapers/pdfs/calibrating-huff-model.pdf

Nakanishi, M./Cooper, L. G. (1974): “Parameter Estimation for a Multiplicative Competitive Interaction Model - Least Squares Approach”. In: Journal of Marketing Research, 11, 3, p. 303-311.

Nakanishi, M./Cooper, L. G. (1982): “Simplified Estimation Procedures for MCI Models”. In: Marketing Science, 1, 3, p. 314-322.

Wieland, T. (2017): “Market Area Analysis for Retail and Service Locations with MCI”. In: The R Journal, 9, 1, p. 298-323. https://journal.r-project.org/archive/2017/RJ-2017-020/RJ-2017-020.pdf.

Wieland, T. (2018): “Competitive locations of grocery stores in the local supply context - The case of the urban district Freiburg-Haslach”. In: European Journal of Geography, 9, 3, p. 98-115.

See Also

mci, mcimat.create

Examples

 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Compilation of tcmat list from existing datasets:
# (Results from the tcmat.create function)
data(Haslach_tcmatAirline)
# airline distances
data(Haslach_coords_origins)
# Coordinates of origins
data(Haslach_coords_destinations)
# Coordinates of destinationes

# Component "tc.mode":
Airline_tc.mode <- list()
Airline_tc.mode$tc.type = "airline"
Airline_tc.mode$tc.unit = "km"
Airline_tc.mode$tc.constant = 0

# tcmat with airline distances
# Compilation as a list:
tcmat_haslach_airline <- list(tcmat = Haslach_tcmatAirline,
coords_origins = Haslach_coords_origins,
coords_destinations = Haslach_coords_destinations,
tc.mode = Airline_tc.mode)

Drvtime_tc.mode <- list()
Drvtime_tc.mode$tc.type = "street"
Drvtime_tc.mode$tc.unit = "min"
Drvtime_tc.mode$tc.constant = 0

data(Haslach_tcmatDrvtime)
# car driving times

# tcmat with car driving times
# Compilation as a list:
tcmat_haslach_drvtime <- list(tcmat = Haslach_tcmatDrvtime,
coords_origins = Haslach_coords_origins,
coords_destinations = Haslach_coords_destinations,
tc.mode = Drvtime_tc.mode)

data(HaslachSurvey)
# survey raw data (Store choices and purchases)
data(HaslachDistricts)
# IDs and information about customer origins
data(HaslachStores)
# IDs and information about destinations (grocery stores)

# Preparing raw data (HaslachSurvey)
HaslachSurvey_prepared <- rawdata.prep (cols.below1 = 
list(HaslachSurvey$LM1_Text, HaslachSurvey$LM2_Text),
cols.below2 = list(HaslachSurvey$LM1E, HaslachSurvey$LM2E),
cols.keep = list(HaslachSurvey$WO),
colnames.new = c("LM", "LME", "Wohnort"))
# "WO" and "Wohnort" = origin ID
# "LM1_Text", "LM2_Text" and "LM" = destination IDs (grocery stores)
# "LM1E", "LM2E" and "LME" = grocery store purchases

# Creating a MCI interaction matrix
# based on raw data of a survey (HaslachSurvey_prepared)
# and a tcmat list object
mcimat_haslach <- mcimat.create(rawdata = HaslachSurvey_prepared, 
origins.id = "Wohnort", destinations.id = "LM", "LME", 
tcmat = tcmat_haslach_airline, 
remOrig = c("SBXXX", "SB613"), corObserved = 0.1,
origvar.data = HaslachDistricts, origvardata.id = "WO",
destvar.data = HaslachStores, destvardata.id = "LM")

# MCI model based on empirical local market shares
# two explanatory variables: distance (d_ij), store size (LM_VKF)
mcimodel_haslach <- mci (mcimat_haslach, "p_ij", "d_ij", "LM_VKF", 
show_proc = TRUE)

if (!require("MCI")) install.packages("MCI")
# Needed for function var.asdummy from package MCI 

# Integration of chains as dummy variables
chaindummies <- var.asdummy(HaslachStores$LM_Name)
HaslachStores <- cbind(HaslachStores, chaindummies)

mcimat_haslach2 <- mcimat.create (rawdata = HaslachSurvey_prepared,
origins.id = "Wohnort", destinations.id = "LM", "LME", 
tcmat = tcmat_haslach_airline, 
remOrig = c("SBXXX", "SB613"), remDest = "LM00", corObserved = 0.1,
origvar.data = HaslachDistricts, origvardata.id = "WO",
destvar.data = HaslachStores, destvardata.id = "LM")

mcimodel_haslach2 <- mci (mcimat = mcimat_haslach2, shares = "p_ij_obs_LME", 
"d_ij", "LM_VKF", "Aldi_DUMMY", "Edeka_DUMMY", "Netto_DUMMY", 
"Lidl_DUMMY", "Real_DUMMY")
# same analysis as above, but including chain dummies

mcisim_haslach2 <- mci.sim (mcimodel_haslach2, origins.pot = "WO_Einwohner", 
"d_ij", -3.1627045, "LM_VKF", 4.5001070,
"Aldi_DUMMY", 0.6012442, "Edeka_DUMMY", 0.4078891, "Netto_DUMMY", -0.4179182, 
"Lidl_DUMMY", 1.3272989, "Real_DUMMY", -2.8156859,
mcitrans = "ilc", interc = NULL)
# MCI simulation based on mcimodel_haslach2
# "d_ij", -3.1627045, "LM_VKF", 4.5001070, "Aldi_DUMMY", 0.6012442, ...
# = explanatory variables and their corresponding weighting parameters
# mcitrans = "ilc": inverse log-centering transformation

MCI2 documentation built on Aug. 2, 2019, 5:04 p.m.