#############################################################################
# EXAMPLE 1: Bradley-Terry model | data.pw01
#############################################################################
data(data.pw01)
dat <- data.pw01
dat <- dat[ , c("home_team" , "away_team" , "result") ]
# recode results according to needed input
dat$result[ dat$result == 0 ] <- 1/2 # code for ties
dat$result[ dat$result == 2 ] <- 0 # code for victory of away team
#********************
# Model 1: Estimation with ties and home advantage
mod1 <- btm( dat)
summary(mod1)
#********************
# Model 2: Estimation with ties, no epsilon adjustment
mod2 <- btm( dat , eps=0 , fix.eta=0)
summary(mod2)
#********************
# Model 3: Some fixed abilities
fix.theta <- c("Anhalt Dessau" = -1 )
mod3 <- btm( dat , eps=0, fix.theta=fix.theta)
summary(mod3)
#********************
# Model 4: Ignoring ties, no home advantage effect
mod4 <- btm( dat , ignore.ties=TRUE , fix.eta = 0)
summary(mod4)
#********************
# Model 5: Ignoring ties, no home advantage effect (JML approach -> eps=0)
mod5 <- btm( dat , ignore.ties=TRUE , fix.eta = 0 , eps=0)
summary(mod5)
#############################################################################
# EXAMPLE 2: Venice chess data
#############################################################################
# See http://www.rasch.org/rmt/rmt113o.htm
# Linacre, J. M. (1997). Paired Comparisons with Standard Rasch Software.
# Rasch Measurement Transactions, 11:3, 584-585.
# dataset with chess games -> "D" denotes a draw (tie)
chessdata <- scan( what="character")
1D.0..1...1....1.....1......D.......D........1.........1.......... Browne
0.1.D..0...1....1.....1......D.......1........D.........1......... Mariotti
.D0..0..1...D....D.....1......1.......1........1.........D........ Tatai
...1D1...D...D....1.....D......D.......D........1.........0....... Hort
......010D....D....D.....1......D.......1........1.........D...... Kavalek
..........00DDD.....D.....D......D.......1........D.........1..... Damjanovic
...............00D0DD......D......1.......1........1.........0.... Gligoric
.....................000D0DD.......D.......1........D.........1... Radulov
............................DD0DDD0D........0........0.........1.. Bobotsov
....................................D00D00001.........1.........1. Cosulich
.............................................0D000D0D10..........1 Westerinen
.......................................................00D1D010000 Zichichi
L <- length(chessdata) / 2
games <- matrix( chessdata , nrow=L , ncol=2 , byrow=TRUE )
G <- nchar(games[1,1])
# create matrix with results
results <- matrix( NA , nrow=G , ncol=3 )
for (gg in 1:G){
games.gg <- substring( games[,1] , gg , gg )
ind.gg <- which( games.gg != "." )
results[gg , 1:2 ] <- games[ ind.gg , 2]
results[gg, 3 ] <- games.gg[ ind.gg[1] ]
}
results <- as.data.frame(results)
results[,3] <- paste(results[,3] )
results[ results[,3] == "D" , 3] <- 1/2
results[,3] <- as.numeric( results[,3] )
# fit model ignoring draws
mod1 <- btm( results , ignore.ties=TRUE , fix.eta = 0 , eps=0 )
summary(mod1)
# fit model with draws
mod2 <- btm( results , fix.eta = 0 , eps=0 )
summary(mod2)
Run the code above in your browser using DataLab