R语言教程之函数产生相关性
您可以使用 cor()函数产生相关性,使用c ov()函数产生协方差。
简化的格式是cor(x,use =,method =)其中
选项 | 描述 |
X | 矩阵或数据框架 |
使用 | 指定处理缺少的数据。选项是all.obs(假设没有丢失的数据 – 丢失的数据会产生错误),complete.obs(列表删除)和pairwise.complete.obs(成对删除) |
方法 | 指定相关的类型。选项有pearson,spearman或kendall。 |
# Correlations/covariances among numeric variables in
# data frame mtcars. Use listwise deletion of missing data.
cor(mtcars, use="complete.obs", method="kendall")
cov(mtcars, use="complete.obs")
不幸的是,cor()或cov()都不会产生显着性检验,但您可以使用cor.test()函数来检验单个相关系数。
Hmisc包中的rcorr()函数为pearson和spearman相关性生成相关性/协方差和显着性水平。但是,输入必须是矩阵,并使用成对删除。
# Correlations with significance levels
library(Hmisc)
rcorr(x, type="pearson") # type can be pearson or spearman
#mtcars is a data frame
rcorr(as.matrix(mtcars))
您可以使用格式cor(X,Y)或rcorr(X,Y)来生成X的列和Y的列之间的相关性。这与SAS PROC CORR中的VAR和WITH命令类似。
# Correlation matrix from mtcars
# with mpg, cyl, and disp as rows
# and hp, drat, and wt as columns
x <- mtcars[1:3]
y <- mtcars[4:6]
cor(x, y)
其他类型的相关性
# polychoric correlation
# x is a contingency table of counts
library(polycor)
polychor(x)
# heterogeneous correlations in one matrix
# pearson (numeric-numeric),
# polyserial (numeric-ordinal),
# and polychoric (ordinal-ordinal)
# x is a data frame with ordered factors
# and numeric variables
library(polycor)
hetcor(x)
# partial correlations
library(ggm)
data(mydata)
pcor(c("a", "b", "x", "y", "z"), var(mydata))
# partial corr between a and b controlling for x, y, z
可视化相关性
使用corrgram()绘制相关图。