Анализ расхождений и данные взвешенной последовательности: где я могу найти мою групповую переменную?
Я пробую анализ расхождений. Из-за большого размера моих данных последовательности я использую веса с пакетом WeightedCluster. Все работает плавно до того момента, когда я доберусь до реального dissassoc()
часть. Кажется, я не могу найти переменные моей группы.
Я внимательно следил за примерами из руководства WeightedCluster и статьи Studer et al. За 2011 год. Этот пост полезен и помог мне продвинуться вперед. Как использовать анализ расхождений с TraMineR и агрегированными данными последовательности?, но я не могу понять, как оттуда найти эти отдельные групповые переменные в dissassoc()
аргумент. Допустим, я использую те же данные примера (хотя мои исходные данные не имеют весов выборки), но я могу использовать только агрегированные данные:
## Aggregate example data
mvad.agg <- wcAggregateCases(mvad[, c(10:12, 17:86)], weights=mvad$weight)
mvad.agg
## Define sequence object
mvad.agg.seq <- seqdef(mvad[mvad.agg$aggIndex, 17:86], alphabet=mvad.alphabet,
states=mvad.scodes, labels=mvad.labels,
weights=mvad.agg$aggWeights)
## Computing OM dissimilarities
mvad.agg.dist <- seqdist(mvad.agg.seq, method="OM", indel=1.5, sm="CONSTANT")
## Discrepancy analysis
dissassoc (mvad.agg.dist, group = mvad$gcse5eq, weights = mvad.agg$aggWeights, weight.permutation = "replicate")
На последнем шаге я не могу понять, как связать переменную группы. Я пытался использовать разные параметры для определения группы (например, mvad.agg$gcse5eq
, mvad$gcse5eq
) и многие варианты дезагрегации / агрегирования и взвешивания / взвешивания данных, но я получаю либо "Object gcse5eq not found", либо "Ошибка в dis[!is.na(group),!is.na(group)]: неверное число размеров "
Я новичок в SO, так что, надеюсь, мой пример понятен и полезен. Я надеюсь, что кто-то может помочь!
1 ответ
Сначала вы должны включить ковариату в таблицу, предоставленную для wcAggregateCases
, (Вот gcse5eq
столбец 12 mvad
и уже принадлежит mvad[, c(10:12, 17:86)]
.)
Затем вы должны предоставить как group
переменные значения ковариаты, соответствующие случаям, выбранным wcAggregateCases
, Вы делаете это с помощью $aggIndex
, Я иллюстрирую ниже:
library(TraMineR)
library(WeightedCluster)
## Load example data and assign labels
data(mvad)
mvad.alphabet <- c("employment", "FE", "HE", "joblessness", "school", "training")
mvad.labels <- c("Employment", "Further Education", "Higher Education",
"Joblessness", "School", "Training")
mvad.scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")
## Aggregate example data
mvad.agg <- wcAggregateCases(mvad[, c(10:12, 17:86)], weights=mvad$weight)
## Define the sequence object
mvad.agg.seq <- seqdef(mvad[mvad.agg$aggIndex, 17:86], alphabet=mvad.alphabet,
states=mvad.scodes, labels=mvad.labels,
weights=mvad.agg$aggWeights)
## Computing OM dissimilarities
mvad.agg.dist <- seqdist(mvad.agg.seq, method="OM", indel=1.5, sm="CONSTANT")
## Discrepancy analysis
dissassoc (mvad.agg.dist, group = mvad$gcse5eq[mvad.agg$aggIndex],
weights = mvad.agg$aggWeights,
weight.permutation = "random-sampling")
Обратите внимание, что я использую здесь weight.permutation = "random-sampling"
потому что у нас есть нецелые веса.