在R中为Likert量表的Not Applicable编码以计算相关系数
带「Not Applicable (NA)」选项的Likert量表相关系数计算指南
针对你遇到的问题,给你几个实用的解决方案,避开之前合并类别导致变量无变异的坑:
方案1:把NA当作独立有序类别,用专门的有序相关系数
- 别把NA和原有1-5的选项混在一起合并,单独给它一个独立编码(比如设成6,或者3.5这种中间值),然后用Kendall's Tau-b或者支持有序分类的Spearman相关分析。
- 注意:普通的Spearman Rho会把NA当缺失值,得用能识别分类有序变量的工具,比如R里
coin包的kendalltau_test,或者SPSS里的有序相关功能——你需要明确告诉工具,NA是一个有序类别(比如把它排在中立值3的旁边,或者所有量表值的末尾,具体看你NA的语义:如果是“不涉及该问题”,排中间逻辑更合理)。 - 这个方法能保留所有样本信息,也不会因为某些条目只有同意类选项就出现全值的情况。
方案2:配对过滤样本,保留原量表编码
- 计算两个变量的相关时,只保留两个变量都没选NA的样本对,原有1-5的编码完全不动,用普通的Pearson或Spearman相关就行。
- 前提是NA的分布没有系统性偏差(比如不会是某一类人群全选NA),好处是完全保留原量表的度量精度,不会因为编码引入额外误差。
方案3:给NA赋予符合语义的中间值
- 如果你的NA代表“对这个问题没立场/不相关”,可以直接把NA编码成3(中立)。针对你提到的有些条目只有“强烈同意/同意”(4、5)的情况,这样编码后变量会有3、4、5三种值,不会全为同一数,就能正常计算相关了。
- 但一定要在研究报告里写清楚这个编码逻辑,避免别人误解,而且只适用于NA语义接近中立的场景。
绝对要避开的坑
- 别像之前那样强行合并类别成三分法,这不仅丢了原量表的区分度,还容易导致变量无变异,直接算不出相关。
- 别把NA当缺失值删掉,题目明确说NA不算缺失,删了会浪费样本数据。
内容的提问来源于stack exchange,提问作者Aydan Pakta
相关产品推荐
相关产品推荐

