Automatisieren Sie Chi-Quadrat über Kategorien und Spalten hinweg

Ich habe einen Umfragedatenrahmen mit mehreren Fragen (Spalten), die mit 1 = zustimmen / 0 = nicht zustimmen codiert sind. Die Befragten (Zeilen) werden nach den Kriterien "Alter" ("Jung", "Mittel", "Alt"), "Region" ("Ost", "Mittel", "West") usw. kategorisiert. Es gibt etwa 30 Kategorien Insgesamt (3 Jahre, 3 Regionen, 2 Geschlechter, 11 Berufe usw.). Innerhalb jeder Metrik sind Kategorien nicht überlappend und unterschiedlich groß.

Dies simuliert eine reduzierte Version des Datensatzes:

n<-400
set.seed(1)
data<-data.frame(age=sample(c('young','middle','old'),n,replace=T),region=sample(c('East','Mid','West'),n,replace=T),gender=sample(c('M','F'),n,replace=T),Q15a=sample(c(0,1),n,replace=T),Q15b=sample(c(0,1),n,replace=T))

Ich kann Chi-Quadrat verwenden, um zu testen, ob sich die Antworten in beispielsweise dem Westen signifikant von der Gesamtstichprobe für Q15a unterscheiden:

attach(data)
chisq.test(table(subset(data,region=='West')$Q15a),p=table(Q15a),rescale.p=T)

Ich möchte alle Kategorien anhand der Gesamtstichprobe für Q15a und anschließend für ~ 20 andere Fragen testen. Da es ungefähr 30 Tests pro Frage gibt, möchte ich einen Weg finden (effizient oder auf andere Weise), dies zu automatisieren, aber ich habe Mühe zu sehen, wie ich R dazu bringen kann, dies selbst zu tun, oder wie ich eine Schleife schreibe, um durch die Kategorien zu blättern. Ich habe nach [1] gesucht und mich mit pairwise.prop.test () vom paarweisen Vergleichstest ablenken lassen, aber noch keine Antwort darauf gefunden.

[1] ähnliche, aber nicht doppelte Fragen (beide sind spaltenweise Tests):

Verwenden von Schleifen für den Chi-Quadrat-Test in R

Chi-Quadrat-Analyse mit for-Schleife in R

Antworten auf die Frage(2)

Ihre Antwort auf die Frage