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

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

Я новичок в SO, так что, надеюсь, мой пример понятен и полезен. Я надеюсь, что кто-то может помочь!

1 Ответ

0 голосов
/ 14 января 2019

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

...