Per i dati numerici si ha la soluzione. Ma sono dati categoriali, hai detto. Poi la vita diventa un po 'più complicata ...
Bene, innanzitutto: la quantità di associazione tra due variabili categoriali non è misurata con una correlazione di rango di Spearman, ma con un test di Chi quadrato ad esempio. Qual è la logica in realtà. Classifica significa che c'è un ordine nei tuoi dati. Ora dimmi quale è più grande, giallo o rosso? Lo so, a volte R esegue una correlazione di rango spearman su dati categoriali. Se codice giallo 1 e rosso 2, R considererebbe il rosso più grande del giallo.
Quindi, dimentica Spearman per dati categoriali. Mostrerò il test di chisq e come scegliere le colonne usando combn(). Ma si potrebbe beneficiare di un po 'più di tempo con il libro di Agresti: http://www.amazon.com/Categorical-Analysis-Wiley-Probability-Statistics/dp/0471360937
set.seed(1234)
X <- rep(c("A","B"),20)
Y <- sample(c("C","D"),40,replace=T)
table(X,Y)
chisq.test(table(X,Y),correct=F)
# I don't use Yates continuity correction
#Let's make a matrix with tons of columns
Data <- as.data.frame(
matrix(
sample(letters[1:3],2000,replace=T),
ncol=25
)
)
# You want to select which columns to use
columns <- c(3,7,11,24)
vars <- names(Data)[columns]
# say you need to know which ones are associated with each other.
out <- apply(combn(columns,2),2,function(x){
chisq.test(table(Data[,x[1]],Data[,x[2]]),correct=F)$p.value
})
out <- cbind(as.data.frame(t(combn(vars,2))),out)
allora si dovrebbe ottenere:
> out
V1 V2 out
1 V3 V7 0.8116733
2 V3 V11 0.1096903
3 V3 V24 0.1653670
4 V7 V11 0.3629871
5 V7 V24 0.4947797
6 V11 V24 0.7259321
Dove V1 e V2 indicano tra le quali le variabili va, e "out" dà il valore p per l'associazione. Qui tutte le variabili sono indipendenti. Che ti aspetteresti, dato che ho creato i dati a caso.
se è davvero solo vuole fare la correlazione su colonne 1, 3, e 10, si può sempre fare 'COR (x [c (1, 3, 10)])' – Greg
Siamo spiacenti, questo è per i dati numerici, non non numerici. Lo lascerò per ogni evenienza. – Greg
felice che tu l'abbia lasciato, Greg. Hai già aiutato qualcuno - già mi ha aiutato a capire in modo creativo in altri modi :) –