我想计算两个变量集之间的部分相关性,同时控制数据框中的所有其他变量。
为此,我使用了
pcor(c("variable1", "variable2", "control1", "control2", etc.), var(dataFrame))
包中的 ggm
。然而,它不起作用,这意味着我得到了偏相关系数 NA。
我的数据框有数十个人格测试结果,评估参与者的神经质、外向性、开放性、宜人性和责任心:
studentLecturerPersonality <- read.delim("http://www.discoveringstatistics.com/docs/Chamorro-Premuzic.dat", header = TRUE)
names(studentLecturerPersonality) <- c("age", "gender", "studentNeuroticism", "studentExtraversion", "studentOpenness", "studentAgreeableness", "studentConscientiousness","lecturerNeuroticism", "lecturerExtraversion", "lecturerOpenness", "lecturerAgreeableness", "lecturerConscientiousness")
studentLecturerPersonalityOnlyTraits <- subset(studentLecturerPersonality, select = c("studentNeuroticism", "studentExtraversion", "studentOpenness", "studentAgreeableness", "studentConscientiousness"))
我使用
cor(dataFrame, use = "pairwise.complete.obs", method = "pearson")
和 cor(variable1, variable2, use = "pairwise.complete.obs", method = "pearson")
计算了变量之间的相关性,其中我知道如何处理缺失值 (NA)。
我想计算变量外向性和神经质之间的偏相关系数,同时控制对经验的开放性、宜人性和责任心:
studentLecturerPersonalityOnlyTraitsMatrix <- as.matrix(studentLecturerPersonalityOnlyTraits)
pcExtraversionNeuroticism <- pcor(c("studentExtraversion", "studentNeuroticism",
"studentOpenness",
"studentAgreeableness",
"studentConscientiousness"), var(studentLecturerPersonalityOnlyTraitsMatrix))
pcExtraversionNeuroticism
返回
[1] NA
。
我不知道是否是因为数据框包含缺失值(NA),我没有(或无法)指定R应该如何处理(就像
cor()
中那样)。
任何人都可以建议我如何使
pcor()
工作或替代方法吗?
我真的很感谢您提供的任何帮助。
在进行部分相关之前,您可以将矩阵子集为不包含
NA
的行:
complete_matrix <- studentLecturerPersonalityOnlyTraitsMatrix[
complete.cases(studentLecturerPersonalityOnlyTraitsMatrix),
]
然后使用这个矩阵:
pcExtraversionNeuroticism <- pcor(c("studentExtraversion", "studentNeuroticism",
"studentOpenness",
"studentAgreeableness",
"studentConscientiousness"), var(complete_matrix))
pcExtraversionNeuroticism
# [1] -0.2971974