Geschichtete Permutation mit Bootstrap


Giac

Ich habe Probleme beim Versuch, Permutationen zu schichten.

Meine Daten sehen folgendermaßen aus:

     gender party        value
1      F    Democrat      762
2      M    Democrat      484
3      F    Independent   327
4      M    Independent   239
5      F    Republican    468
6      M    Republican    477

Was ich einfach versuche, ist eine geschichtete zufällige Permutation durch party

library(dplyr)
md %>% 
  group_by(party) %>% 
  mutate(perm = sample(gender))

Das gibt mir eine korrekte zufällige Permutation

     gender party        value   perm
1      F    Democrat      762      M
2      M    Democrat      484      F
3      F    Independent   327      M
4      M    Independent   239      F
5      F    Republican    468      F
6      M    Republican    477      M

Ich möchte diesen Vorgang viele Male wiederholen. Nach der hier vorgeschlagenen Lösung (Permutation ohne Schichtung)

library(broom) 
md %>% 
 bootstrap(100) %>% 
 do(data.frame(., treat = sample(.$gender, 6, replace=TRUE)))

Ich kann jedoch kein group_byArgument einbringen.

md %>% 
  bootstrap(10) %>% 
  group_by(party) %>% 
  do(data.frame(., treat = sample(.$gender, 6, replace=TRUE)))

Irgendeine Idee ?

Außerdem ist die bootstrapFunktion eigentlich ziemlich langsam. Irgendeine Idee warum? Und eine Lösung, um es schneller zu machen? Können wir es irgendwie parallelisieren?

library(reshape2)
M <- as.table(rbind(c(762, 327, 468), c(484, 239, 477)))
dimnames(M) <- list(gender = c("F", "M"),
                party = c("Democrat","Independent", "Republican"))
md = melt(M) 
Agstudy

Hier eine Lösung mit dem data.tablePaket (wenn Sie nach Leistung suchen, sollten Sie es unbedingt ausprobieren) und replicate:

setDT(dx)
rbindlist(replicate(10,dx[,perm := sample(gender),party],simplify=FALSE))

Ich bin weder ein Benutzer dplyrnoch ein Piper, aber wenn Sie ein "Pipe-Fanatiker" sind, können Sie den obigen Code transformieren und Pipe:

PERM <- function(dx)
  dx[,perm := sample(gender),party]

REPLICATE <- function(dx,n)
  rbindlist(replicate(n,dx[,perm := sample(gender),party],simplify=FALSE))

dx %>%
  PERM() %>%
  REPLICATE(10)

Verwandte Artikel


Geschichtete Zufallsstichprobe mit BigQuery?

Felipe Hoffa Wie kann ich mit BigQuery geschichtete Stichproben erstellen? Zum Beispiel wollen wir eine 10% proportionale geschichtete Stichprobe, bei der die category_id als Schicht verwendet wird. Wir haben bis zu 11000 category_ids in einigen unserer Tabell

Geschichtete Probenahme mit Pyspark

user3245256 Ich habe einen Funken DataFramemit einer Spalte, die viele Nullen und sehr wenige Einsen enthält (nur 0,01% von Einsen). Ich würde gerne eine zufällige, aber geschichtete Teilstichprobe nehmen, damit das Verhältnis von 1 zu 0 in dieser Spalte erhal

Geschichtete Kreuzvalidierung mit Pytorch

elenaby Mein Ziel ist es, eine binäre Klassifizierung mithilfe eines neuronalen Netzwerks vorzunehmen. Das Problem ist, dass der Datensatz nicht ausgeglichen ist. Ich habe 90% der Klassen 1 und 10 der Klasse 0. Um damit umzugehen, möchte ich die geschichtete K

Geschichtete Zufallsstichprobe mit einer Selektionsrate von 50%

Darko Ich habe ein Problem, das vielleicht ein großes Problem darstellt, und bin mir nicht sicher, ob es über den Rahmen dieses Threads hinausgeht, dachte aber, ich würde es versuchen. Ich arbeite derzeit an einem Datensatz, der die ID des Befragten (von denen

Geschichtete Probenahme mit verschiedenen Größen

Von Ousman Ceesay Ich versuche, eine Funktion für geschichtete Stichproben zu erstellen, die einen mit dem Faker-Modul erstellten Datenrahmen zusammen mit Schichten, Stichprobengröße und einem zufälligen Startwert berücksichtigt. Für die Stichprobengröße möcht

Generieren Sie geschichtete Bootstrap-Resamples in R.

spore234 Angenommen, ich habe einen Datenrahmen mit 3 Variablen und 7 Zeilen df <- data.frame(V1=c(0,1,0,0,0,1,0), V2=rnorm(7), V3=rnorm(7)) Wie kann ich einen Bootstrap-Datenrahmen mit beispielsweise 20 Zeilen erstellen, in dem die Verteilung der Nullen und

k-fach geschichtete Kreuzvalidierung mit unausgeglichenen Klassen

eleanora: Ich habe Daten mit 4 Klassen und versuche, einen Klassifikator zu erstellen. Ich habe ~ 1000 Vektoren für eine Klasse, ~ 10 ^ 4 für eine andere, ~ 10 ^ 5 für die dritte und ~ 10 ^ 6 für die vierte. Ich hatte gehofft, eine Kreuzvalidierung verwenden z