Attitude analysis for Project course in 2012/13

Introduction

After the gathering process was closed and students have uploaded their own surveys, it is time to process data.

Manual download from the limesurvey enviroment was ordered upon two files:

Then, from R a source command was ordered over the .R file and a data dataframe was produced with the right name of columns, etc. The name of this dataframe was moved to a convenient one in order to be able to run with different set at the same time.

Our work here will start from the .RData files.

Leadership test

Let's load the results of the Blake & Mouton leadership test. They will be stored at dataframe called ATT:

#
setwd("~/git/cai/1213/")
load("E_BM.RData")
# Normalization of the University managing the student.
idx <- c(grep("Rioja", BM$q_03_1_1, ignore.case = TRUE), grep("UR", BM$q_03_1_1, 
    ignore.case = TRUE), grep("U.R", BM$q_03_1_1, ignore.case = TRUE))
ncc <- ncol(BM) + 1
BM[idx, ncc] <- "UR"
colnames(BM)[ncc] <- "UNIV"
BM[is.na(BM$UNIV), "UNIV"] <- "UPM"
# weights
vx <- c(1, 4, 6, 9, 10, 12, 14, 16, 17) + 10
vy <- c(2, 3, 5, 7, 8, 11, 13, 15, 18) + 10
cx <- paste("q", vx, sep = "_")
cy <- paste("q", vy, sep = "_")
ncc <- ncc + 1
BM[, ncc] <- apply(BM[, 35:52], 1, function(x, idx) {
    return(((sum(x[idx]) * 0.2) - 1.8) * 10/7.2)
}, cx)
colnames(BM)[ncc] <- "BMx"
ncc <- ncc + 1
BM[, ncc] <- apply(BM[, 35:52], 1, function(x, idx) {
    return(((sum(x[idx]) * 0.2) - 1.8) * 10/7.2)
}, cy)
colnames(BM)[ncc] <- "BMy"
#
ATT <- BM[, c("email", "UNIV", "BMx", "BMy")]
#
rm(vx, vy, cx, cy, idx, ncc)

DECTI test

Now we will process data from negotiation test DECTI and the outcome will be merged into the same ATT dataframe:

#
setwd("~/git/cai/1213/")
load("E_DECTI.RData")
#
idx <- c(grep("Rioja", CDEIT$q_03_1_1, ignore.case = TRUE), grep("UR", CDEIT$q_03_1_1, 
    ignore.case = TRUE), grep("U.R", CDEIT$q_03_1_1, ignore.case = TRUE))
ncc <- ncol(CDEIT) + 1
CDEIT[idx, ncc] <- "UR"
colnames(CDEIT)[ncc] <- "UNIV"
CDEIT[is.na(CDEIT$UNIV), "UNIV"] <- "UPM"
#
icol <- max(grep("q_*", colnames(CDEIT))) + 1
fcol <- ncol(CDEIT)
fltr <- apply(as.data.frame(colnames(CDEIT)[icol:fcol]), 1, function(x) {
    return(substr(x, 1, 1))
})
# Counting the number of No per row
wrow <- function(x, fltr) {
    issi <- function(z) {
        j <- sum(z != "No")
        return(j)
    }
    j <- length(fltr)
    nc <- length(x)
    res <- tapply(as.vector(t(x[(nc - j + 1):nc])), as.factor(fltr), issi)
    return(res)
}
# Profile: Condescendiente, Dominante, Evasivo, Integrador, Transaccional
ncc <- ncol(CDEIT) + 1
CDEIT[, ncc] <- apply(t(apply(CDEIT, 1, wrow, fltr)), 1, function(x) {
    return(names(which.max(x)))
})
colnames(CDEIT)[ncc] <- "PROFILE"
det_profile <- data.frame(C = c("Condescendiente", "Le preocupa casi exclusivamente la relación con la otra persona y poco o nada el objeto negociado"), 
    D = c("Dominante", "Le preocupa casi exclusivamente el objeto negociado, con poco o ningún interés por la relación con la otra parte"), 
    E = c("Evasivo", "No interesa demasiado ni el objeto negociado ni la otra parte complicando en exceso el avance de las negocaciones con sus evasivas."), 
    I = c("Integrador", "Le interesa el objeto negociado, pero también la relaci&oacute;n con la otra parte."), 
    T = c("Transaccional", "Juega entre los estidos Dominate y Condescendiente según la conveniencia moment&aacute;nea."))
ATT <- merge(ATT, CDEIT[, c("email", "UNIV", "PROFILE")], by = c("email", "UNIV"), 
    all = TRUE)
rm(fcol, fltr, icol, ncc)

NEGO test

Now we will process data from negotiation test NEGO and the outcome will be merged into the same ATT dataframe:

#
setwd("~/git/cai/1213/")
load("E_NEGO.RData")
#
idx <- c(grep("Rioja", NEGO$q_03_1_1, ignore.case = TRUE), grep("UR", NEGO$q_03_1_1, 
    ignore.case = TRUE), grep("U.R", NEGO$q_03_1_1, ignore.case = TRUE))
ncc <- ncol(NEGO) + 1
NEGO[idx, ncc] <- "UR"
colnames(NEGO)[ncc] <- "UNIV"
NEGO[is.na(NEGO$UNIV), "UNIV"] <- "UPM"
#
idi <- list()
idi[[1]] = c("A", "A", "S", "Ic", "In", "In", "Ib", "Ib", "C", "D", "Pc")
idi[[2]] = c("A", "S", "In", "Ib", "Ib", "C", "C", "D", "D", "Pc", "Pc")
idi[[3]] = c("A", "S", "Ic", "Ic", "In", "Ib", "C", "D", "D")
idi[[4]] = c("A", "It", "C", "H", "H", "R", "R", "R", "R", "D", "Nc", "Nc", 
    "Nc")
idi[[5]] = c("A", "A", "Ic", "In", "C", "D")
idi[[6]] = c("A", "A", "A", "A", "It", "It", "J", "H", "D", "D", "Pc", "Fc")
idi[[7]] = c("In", "Ib", "Ib", "D", "D", "D")
idi[[8]] = c("S", "S", "Ic", "Ic", "Ic", "In", "J", "J", "R", "R", "D")
idi[[9]] = c("S", "In", "It", "Ib", "Ib", "R", "R", "R")
idi[[10]] = c("A", "A", "A", "It", "It", "It", "It", "It")
idi[[11]] = c("A", "Ib", "Pc")
idi[[12]] = c("A", "S", "S", "S", "C", "R")
idi[[13]] = c("In", "It", "Ib", "H", "R")
idi[[14]] = c("A", "S", "It", "It", "C")
idi[[15]] = c("S", "S", "Ib", "C", "R")
idi[[16]] = c("A", "S", "Ic", "Ic", "Ic", "Ic", "In", "C", "J", "R")
idi[[17]] = c("A", "In", "It", "It", "C", "H", "Pc")
idi[[18]] = c("A", "S", "It", "C", "R", "R")
idi[[19]] = c("A", "S", "In", "It", "Ib")
idi[[20]] = c("A", "A", "Ic", "In", "In", "It", "Ib", "Ib", "H", "H", "H", "H", 
    "D")
idi[[21]] = c("A", "Ic", "Ic", "In", "In", "Fc")
idi[[22]] = c("A", "S", "S", "Ib", "Ib", "C", "H", "Pc")
idi[[23]] = c("A", "S", "Ic", "Ic", "Ic", "Ic", "In", "C")
idi[[24]] = c("S", "Ic", "Ic", "Ib", "C", "C")
idi[[25]] = c("S", "It", "C", "J", "J", "J", "J", "J")
idi[[26]] = c("Ic", "Ib", "C", "J", "J", "J", "J")
idi[[27]] = c("A", "Ib", "C")
idi[[28]] = c("A", "A", "S", "S", "C")
lx <- sum(unlist(lapply(idi, length)))
idx <- data.frame(name = rep("-", lx), value = "", stringsAsFactors = FALSE)
i <- 0
for (j in 1:length(idi)) {
    for (l in 1:length(idi[[j]])) {
        i <- i + 1
        tt <- paste("Q", sprintf("%02d", j), "_", sprintf("%02d", l), sep = "")
        tv <- idi[[j]][l]
        idx[i, 1] <- tt
        idx[i, 2] <- tv
    }
}
#
assessn <- function(x, idx) {
    idd <- vector()
    idd["A"] = 0
    idd["S"] = 0
    idd["Ic"] = 0
    idd["In"] = 0
    idd["It"] = 0
    idd["Ib"] = 0
    idd["C"] = 0
    idd["J"] = 0
    idd["H"] = 0
    idd["R"] = 0
    idd["D"] = 0
    idd["Pc"] = 0
    idd["Fc"] = 0
    idd["Nc"] = 0
    vnom <- (names(x)[35:length(x)])[x[35:length(x)] == "Sí"]
    wnom <- table(idx[idx$name %in% vnom, 2])
    idd[names(wnom)] <- wnom
    ntac = idd["A"] + idd["S"]
    nta = idd["A"]
    nts = idd["S"]
    ntc = idd["C"]
    ntat = idd["Ic"] + idd["In"] + idd["It"] + idd["Ib"]
    ntf = idd["J"] + idd["H"] + idd["R"] + idd["D"]
    ntin = idd["In"]
    ntit = idd["It"]
    ntxx = idd["Pc"] + idd["Fc"] + idd["Nc"]
    igac = ntac * 100/(ntac + ntat + ntf)
    iga = nta * 100/(ntac + ntat + ntf)
    igs = nts * 100/(ntac + ntat + ntf)
    igat = ntat * 100/(ntac + ntat + ntf)
    igf = ntf * 100/(ntac + ntat + ntf)
    igc = ntc * 100/28
    ind1 <- cut(igc, breaks = c(-0.5, 24.9, 48.9, 105), labels = c("Low", "Average", 
        "High"))
    ind2 <- cut(iga, breaks = c(-0.5, 18.9, 33.9, 105), labels = c("Low", "Average", 
        "High"))
    ind3 <- cut(igs, breaks = c(-0.5, 10.9, 20.9, 105), labels = c("Low", "Average", 
        "High"))
    ind4 <- cut(igat, breaks = c(-0.5, 41.9, 57.9, 105), labels = c("Low", "Average", 
        "High"))
    res <- c(as.character(ind1), as.character(ind2), as.character(ind3), as.character(ind4))
    names(res) <- c("TOTAL", "IAs", "ISu", "IAg")
    return(res)
}
icp <- ncol(NEGO) + 1
NEGO[, icp:(icp + 3)] <- t(apply(NEGO, 1, assessn, idx))
# Total Index, Ascendence Index, Sumission Index and Argumantation Index
colnames(NEGO)[icp:(icp + 3)] <- c("TOTAL", "IAs", "ISu", "IAg")
ATT <- merge(ATT, NEGO[, c("email", "UNIV", "TOTAL", "IAs", "ISu", "IAg")], 
    by = c("email", "UNIV"), all = TRUE)
rm(i, j, l, icp, idx, idi, lx, tt, tv)

Analysis of results

Let's draw up some conclusions

kk <- ATT[, 5]
kk[is.na(kk)] <- "o"
plot(ATT[, 3], ATT[, 4], col = factor(ATT[, 2]), xlim = c(0, 10), ylim = c(0, 
    10), xlab = "Concern for Production", ylab = "Concern for people", main = "Blake & Mouton perspective for leadership", 
    pch = kk)

plot of chunk plt01


rm(kk)

In the previous graph, it was shown the outcome of the selfassessment about leadership attitude according to the classical Blake and Mouton test. Red color accounts for University of la Rioja Students and Black for the UPM ones. Symbols can be readed as:

We can read from here that most of students declare themselves as Integrationist which is rather possitive, no matter from where they are enrolled. It is clear that there is no evidence of bias according to the University and that there is no evidence of relationship between Leadership behavior and negotiation style according to the DECTI test.

Let's to explore the relationship between different estimation for negotiation skills as combining DECTI and NEGO ones:


t01 <- xtable(table(ATT[, 5], ATT[, 6]), table.placement = "'H", caption.placement = "top", 
    include.rownames = TRUE, include.colnames = TRUE, size = medium)
caption(t01) <- "DECTI and NEGO-COMPOSITE classes"
print(t01, type = "html")
DECTI and NEGO-COMPOSITE classes
Average Low
C 2 2
D 0 0
E 1 0
I 18 38

t02 <- xtable(table(ATT[ATT[, 2] == "UR", 5], ATT[ATT[, 2] == "UR", 6]), table.placement = "'H", 
    caption.placement = "top", include.rownames = TRUE, include.colnames = TRUE, 
    size = medium)
caption(t02) <- "DECTI and NEGO-COMPOSITE classes. UR case"
print(t02, type = "html")
DECTI and NEGO-COMPOSITE classes. UR case
Average Low
C 0 2
E 1 0
I 5 15

t03 <- xtable(table(ATT[ATT[, 2] == "UPM", 5], ATT[ATT[, 2] == "UPM", 6]), table.placement = "'H", 
    caption.placement = "top", include.rownames = TRUE, include.colnames = TRUE, 
    size = medium)
caption(t03) <- "DECTI and NEGO-COMPOSITE classes. UPM case"
print(t03, type = "html")
DECTI and NEGO-COMPOSITE classes. UPM case
Average Low
C 2 0
D 0 0
I 13 23

It is possible to realize how similar the behavior is, no matter from were the students come from.

Let's have a look at the DECTI versus the NEGO's Argumentative Index:


t01 <- xtable(table(ATT[, 5], ATT[, 9]), table.placement = "'H", caption.placement = "top", 
    include.rownames = TRUE, include.colnames = TRUE, size = medium)
caption(t01) <- "DECTI and NEGO-COMPOSITE classes"
print(t01, type = "html")
DECTI and NEGO-COMPOSITE classes
Average High Low
C 0 4 0
D 0 0 0
E 1 0 0
I 18 28 10

t02 <- xtable(table(ATT[ATT[, 2] == "UR", 5], ATT[ATT[, 2] == "UR", 9]), table.placement = "'H", 
    caption.placement = "top", include.rownames = TRUE, include.colnames = TRUE, 
    size = medium)
caption(t02) <- "DECTI and NEGO-COMPOSITE classes. UR case"
print(t02, type = "html")
DECTI and NEGO-COMPOSITE classes. UR case
Average High Low
C 0 2 0
E 1 0 0
I 8 9 3

t03 <- xtable(table(ATT[ATT[, 2] == "UPM", 5], ATT[ATT[, 2] == "UPM", 9]), table.placement = "'H", 
    caption.placement = "top", include.rownames = TRUE, include.colnames = TRUE, 
    size = medium)
caption(t03) <- "DECTI and NEGO-COMPOSITE classes. UPM case"
print(t03, type = "html")
DECTI and NEGO-COMPOSITE classes. UPM case
Average High Low
C 0 2 0
D 0 0 0
I 10 19 7

As the most most frequent DECTI behavior was the Integrative one, still it is possible to find some differences as by the NEGO total index between both colectives with slighly higher score for he UPM. However basic structure remains accross the different families