如何使用TraMineR和聚合序列数据进行差异分析?

时间:2013-06-13 11:18:42

标签: r traminer

由于我有一个大数据集且只有有限的计算资源,我想使用R包[{1}}和TraMineR来使用discrepancy analysis的聚合序列对象。但是我很难找到正确的语法来做到这一点。

在下面的示例代码中,您会发现两个差异分析,差异分析的第一个树图使用原始数据集,第二个使用聚合数据(即只有按其频率加权的唯一序列)。 不幸的是,结果不符合。你知道为什么吗?

示例代码

WeightedCluster

此问题与big data and the computation of sequence distances

有关

1 个答案:

答案 0 :(得分:2)

您用于聚合数据的过程是错误的,因为在汇总数据时您不考虑解释性协变量。因为每个独特的序列都归因于几乎随机协变量曲线,给出了错误的结果。

您需要做的是汇总序列协变量。协变量“Grammar”“funemp”“gcse5eq”位于第10至12列。所以

## Aggregate example data
mvad.agg <- wcAggregateCases(mvad[, c(10:12, 17:86)], weights=mvad$weight)
mvad.agg

然后我们来到下一个问题:排列测试。如果不执行任何操作,则只会聚合聚合(并省略聚合内的排列),从而为您提供错误的p值。可以使用两种解决方案:

  • 如果您没有抽样权重,请使用weight.permutation =“replicate”告诉程序使用一个案例单位置换聚合内部。
  • 如果您有采样权重,则没有完美的程序。您可以使用weight.permutation =“random-sampling”(使用权重定义的分布随机分配协变量配置文件到对象。)

在所有情况下,您可能会观察到p值的微小差异(因为您有不同的过程),并且还因为使用置换测试来估计p值。为了获得更精确的p值,尝试使用更高的R值(排列数)。在树过程中,可以使用pval参数更改进行拆分的最小p值。您可以尝试将其设置得稍高一些,以查看差异是否来自此处。

我希望它有所帮助。