mcimat.create: Creation of a MCI interaction matrix

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

Description

Creation of an interaction matrix with local market shares (p_{ij}) of each location (j) in each customer origin (i) based on the frequencies in the raw data (e.g. household or POS survey).

Usage

1
2
3
4
5
mcimat.create(rawdata, origins.id, destinations.id, ..., tcmat, 
origvar.data = NULL, origvardata.id = NULL, 
destvar.data = NULL, destvardata.id = NULL, 
remOrig = NULL, remDest = NULL, corObserved = 0, 
remNA = TRUE)

Arguments

rawdata

Raw data (data.frame), e.g. customer survey

origins.id

Vector of customer origins

destinations.id

Vector of destinations (stores, locations)

...

other numeric variables in the raw data which were observed and shall be used to calculate market shares (e.g. expenditures)

tcmat

Object (list) created by the function tcmat.create (Transportation costs matrix)

origvar.data

Optional: additional data (data.frame) concerning the customer origins

origvardata.id

Optional: customer origins in the additional origins data

destvar.data

Optional: additional data (data.frame) concerning the destinations

destvardata.id

Optional: destinations in the additional destinations data

remOrig

Optional: vector of origins to be removed from the analysis

remDest

Optional: vector of destinations to be removed from the analysis

corObserved

numeric value which is added to the absolute values before calculating market shares (default: 0)

remNA

Logical argument that indicates if NA values of the origins and destinations are removed or not

Details

This function creates a Multiplicative Competitive Interaction (MCI) Model interaction matrix for further use in the function mci.

Value

A mcimat list (invisible) containing the following components:

mcimat

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

coords

A list containing the coordinates and additional information of the origins (coords_origins) and the destinations (coords_destinations), inherited from the tcmat object

tc.mode

A list containing information about the transportation costs matrix, inherited from the tcmat object

mci.cormode

A list containing information about the processing mode of the interaction matrix (removed origins/destinations etc.)

Note

The function is a wrapper of ijmatrix.create from 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, tcmat.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
# 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)

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