我有 3,000 个观察值(行政社区),以五个变量为特征。其中四个朝着“越多,越差”的方向工作,一个则相反。
我想创建一个分数或这些观察的有序列表,以最好地考虑所有这五个变量。
我已经尝试在 R 中使用 MCLUST 包进行聚类,它给出了一些有意义的结果,但是很难根据聚类成员资格来决定观察的顺序。
我的第二次尝试是运行 PCA 并提取第一个组件,这更接近我想要得到的。
我可以使用哪些其他解决方案(最好是基于 R 或 Stata)来处理这个问题?
我有 3,000 个观察值(行政社区),以五个变量为特征。其中四个朝着“越多,越差”的方向工作,一个则相反。
我想创建一个分数或这些观察的有序列表,以最好地考虑所有这五个变量。
我已经尝试在 R 中使用 MCLUST 包进行聚类,它给出了一些有意义的结果,但是很难根据聚类成员资格来决定观察的顺序。
我的第二次尝试是运行 PCA 并提取第一个组件,这更接近我想要得到的。
我可以使用哪些其他解决方案(最好是基于 R 或 Stata)来处理这个问题?
您可以考虑在 [1] Wittkowski, KM, Lee, E., Nussbaum, R., Chamian, FN 和 Krueger, JG (2004) 中定义的 u-scores,结合临床研究中的几种有序测量。医学统计,23:1579–1592。( PDF )
基本思想是,对于每个观察,您计算有多少观察与它肯定更好(四个变量较低,一个较高)相比,有多少肯定更差,然后创建一个组合分数。
第一个问题是您希望复合材料是数据驱动的还是理论驱动的?如果您希望形成一个复合变量,您可能认为每个组成变量在测量某个整体域时都很重要。
在这种情况下,您可能会更喜欢一组理论权重。或者,如果您对组件变量之间共享或共同的任何内容感兴趣,冒着不包括其中一个变量的风险,因为它测量的是正交的或与其余集合不太相关的东西,那么您可能想要探索数据驱动的方法。
这个问题映射到结构方程建模文献中反思性和形成性措施之间的讨论(例如,请参见此处)。
无论您做什么,重要的是要使您的测量与您的实际研究问题保持一致。
如果复合是理论上驱动的,那么您将希望形成组件变量的加权复合,其中分配的权重与组件的理论权重一致。如果变量是有序的,那么您将不得不考虑如何缩放变量。在缩放每个组件变量之后,您必须考虑理论相对权重以及与变量的差分标准偏差相关的问题。一种简单的策略是将所有组件变量转换为 z 分数,并对 z 分数求和。如果您有组件变量,其中一些是正的,而另一些是负的,那么您需要反转负的或正的组件变量。
我写了一篇关于形成复合材料的帖子,其中讨论了形成复合材料的几种情况。
理论驱动的方法可以很容易地在任何统计包中实现。
score.items包中psych的一项功能使它更容易一些,但它是有限的。您可能只是使用简单的算术编写自己的方程式,也许还有scale函数。
如果您对数据驱动更感兴趣,那么有很多可能的方法。
采用第一个主成分听起来是一个合理的想法。
如果您有序数变量,您可能会考虑分类 PCA,这将允许重新加权组件变量。鉴于您提供的约束,这可以自动处理量化。
对于非序数度量,您可以尝试 MDS(多维缩放)。这可以在 R 中轻松完成。这将尝试将点排列在一条线上(在您的情况下为 1d),从而保留点之间的距离。
一些一般性评论:正如您可能意识到的那样,这个问题非常模糊,如果不了解更多关于数据的信息,就不能说太多。例如,将变量归一化(零均值和单位方差)可能合适,也可能不合适;平等地权衡所有变量可能合适,也可能不合适;等等。如果这不是探索性分析,并且您确实有一些“正确”的分数,那么在不同的数据集或当前数据集的子集上学习一组权重可能是合适的,并使用这些取而代之的是权重。
很抱歉,因为它可能不是您问题的直接答案,如果您使用此“总分”作为某事的预测因子,为什么不尝试回归并使用 ROC 的 AUC 评估结果?
或者另一种方式,也许是用户神经网络/随机森林/支持向量机来预测给定的结果?
问候卢克