差异分析和加权序列数据:在哪里可以找到组变量?

时间:2019-01-14 08:34:09

标签: r traminer

我正在尝试差异分析。由于我的序列数据很大,因此我在WeightedCluster包中使用权重。一切工作顺利,直到到达实际的dissassoc()部分为止。我似乎无法找到我的组变量。

我一直在密切关注WeightedCluster手册和Studer等人2011年的文章中的示例。这篇文章很有用,并帮助我前进了How to use discrepancy analysis with TraMineR and aggregated sequence data?,但我不知道该如何去做。在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$gcse5eqmvad$gcse5eq)以及分解/汇总和加权/取消加权数据的许多变体,但是我要么得到“找不到对象gcse5eq”或“ diss [!is.na(group)、! is.na(group)]错误:尺寸错误”

我是SO的新手,所以希望我的例子清楚而有用。希望有人能帮忙!

1 个答案:

答案 0 :(得分:1)

首先,您需要在提供给wcAggregateCases的表中包括协变量。 (这里gcse5eqmvad的第12列,已经属于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",因为我们具有非整数的权重。