Анализ расхождений и данные взвешенной последовательности: где я могу найти мою групповую переменную?

Я пробую анализ расхождений. Из-за большого размера моих данных последовательности я использую веса с пакетом 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" потому что у нас есть нецелые веса.

Другие вопросы по тегам