我正在尝试差异分析。由于我的序列数据很大,因此我在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$gcse5eq
,mvad$gcse5eq
)以及分解/汇总和加权/取消加权数据的许多变体,但是我要么得到“找不到对象gcse5eq”或“ diss [!is.na(group)、! is.na(group)]错误:尺寸错误”
我是SO的新手,所以希望我的例子清楚而有用。希望有人能帮忙!
答案 0 :(得分:1)
首先,您需要在提供给wcAggregateCases
的表中包括协变量。 (这里gcse5eq
是mvad
的第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"
,因为我们具有非整数的权重。