Appendix I: data generation process

The dataset city200 is generated based on Saaty’s example of choosing a city to live in described in Saaty (2004). I recreated Saaty’s example of criteria weights by simulating 200 decision-makers who make their choices based on the underlying true weights. The dataset is generated using a normal random sample from the Saaty scale with the mean set as the true weight and the standard deviation set manually. With a higher standard deviation, it is expected that the pairwise comparison will be less consistent. The methods employed later will reveal which pairwise comparison is less consistent than others.

Defining attributes

set.seed(42)
atts <- c("cult", "fam", "house", "jobs", "trans")
colnames <- c("cult_fam", "cult_house", "cult_jobs", "cult_trans",
              "fam_house", "fam_jobs", "fam_trans",
              "house_jobs", "house_trans",
              "jobs_trans")

True weights derived from Saaty’s example

weight <- c(5,-3,2,-5,
            -7,-1,-7,
            4,-3,
            -7)

Defining the saaty scale

saatyscale <- c(-9:-2, 1:9)
nobs <- 200

saatyprob creates a list of probabilities in the saaty scale for being sampled given the position of the weight in the weight list (x) and standard deviation (sd)

saatyprob <- function(x, sd) dnorm(saatyscale, mean = weight[x], sd = sd)

Standard deviation set on saatyprob(x, sd)

cult_fam <- sample(saatyscale, nobs, prob = saatyprob(1, 2), replace = TRUE)
cult_house <- sample(saatyscale, nobs, prob = saatyprob(2, 1), replace = TRUE)
cult_jobs <- sample(saatyscale, nobs, prob = saatyprob(3, 2), replace = TRUE)
cult_trans <- sample(saatyscale, nobs, prob = saatyprob(4, 1.5), replace = TRUE)
fam_house <- sample(saatyscale, nobs, prob = saatyprob(5, 2), replace = TRUE)
fam_jobs <- sample(saatyscale, nobs, prob = saatyprob(6, 1.5), replace = TRUE)
fam_trans <- sample(saatyscale, nobs, prob = saatyprob(7, 2.5), replace = TRUE)
house_jobs <- sample(saatyscale, nobs, prob = saatyprob(8, 0.5), replace = TRUE)
house_trans <- sample(saatyscale, nobs, prob = saatyprob(9, 0.5), replace = TRUE)
jobs_trans <- sample(saatyscale, nobs, prob = saatyprob(10, 1), replace = TRUE)

city200 <- data.frame(cult_fam, cult_house, cult_jobs, cult_trans,
                      fam_house, fam_jobs, fam_trans,
                      house_jobs, house_trans,
                      jobs_trans)
head(city200[,1:7])
##   cult_fam cult_house cult_jobs cult_trans fam_house fam_jobs fam_trans
## 1        2         -2         2         -6        -4       -4        -8
## 2        2         -4         1         -4        -4       -2        -8
## 3        4         -2         1         -3        -7       -3        -5
## 4        8         -4         3         -4        -8        1        -7
## 5        3         -3         5         -6        -8        1        -4
## 6        6         -4         2         -4        -7       -2        -4

Here, we have simulated the responses of 200 individual decision-makers regarding the attributes they consider when deciding which city to live in, based on the true weights from Saaty’s journal article, with some added random deviations from the weight.

References

Betebenner, Damian W. 2017. randomNames: Function for Generating Random Names and a Dataset. https://cran.r-project.org/package=randomNames.

Dargahi, Daryanaz. 2016. Prize: Prize: An R Package for Prioritization Estimation Based on Analytic Hierarchy Process.

Glur, Christoph. 2018. Ahp: Analytic Hierarchy Process. https://CRAN.R-project.org/package=ahp.

Harker, P.T. 1987. “Incomplete Pairwise Comparisons in the Analytic Hierarchy Process.” Mathematical Modelling 9 (11): 837–48. http://www.sciencedirect.com/science/article/pii/0270025587905033.

Saaty, R.W. 1987. “The Analytic Hierarchy Process—What It Is and How It Is Used.” Mathematical Modelling 9 (3): 161–76. https://doi.org/10.1016/0270-0255(87)90473-8.

Saaty, Thomas L. 2003. “Decision-Making with the Ahp: Why Is the Principal Eigenvector Necessary.” European Journal of Operational Research 145 (1): 85–91. http://www.sciencedirect.com/science/article/pii/S0377221702002278.

———. 2004. “Decision Making — the Analytic Hierarchy and Network Processes (Ahp/Anp).” Journal of Systems Science and Systems Engineering 13 (1): 1–35. https://doi.org/10.1007/s11518-006-0151-5.

Saaty, Thomas L., and Liem T. Tran. 2007. “On the Invalidity of Fuzzifying Numerical Judgments in the Analytic Hierarchy Process.” Mathematical and Computer Modelling 46 (7): 962–75. http://www.sciencedirect.com/science/article/pii/S0895717707000787.