Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的多重相关系数_R_Statistics - Fatal编程技术网

R中的多重相关系数

R中的多重相关系数,r,statistics,R,Statistics,我正在寻找一种方法来计算R中的多重相关系数,是否有一个内置函数来计算它? 我有一个因变量和三个独立变量。 我无法在网上找到它,知道吗?内置功能lm提供了至少一个版本,不确定这是否是您想要的: fit <- lm(yield ~ N + P + K, data = npk) summary(fit) fit | t |) (截距)54.650 2.205 24.784试试这个: # load sample data data(mtcars) # calculate correlatio

我正在寻找一种方法来计算R中的多重相关系数,是否有一个内置函数来计算它? 我有一个因变量和三个独立变量。
我无法在网上找到它,知道吗?

内置功能
lm
提供了至少一个版本,不确定这是否是您想要的:

fit <- lm(yield ~ N + P + K, data = npk)
summary(fit)
fit | t |)
(截距)54.650 2.205 24.784试试这个:

# load sample data 
data(mtcars)

# calculate correlation coefficient between all variables in `mtcars` using 
# the inbulit function

M <- cor(mtcars)

# M is a matrix of correlation coefficient which you can display just by  
# running 

print(M)

# If you want to plot the correlation coefficient 

library(corrplot)
corrplot(M, method="number",type= "lower",insig = "blank", number.cex = 0.6)
#加载样本数据
数据(mtcars)
#使用以下公式计算“mtcars”中所有变量之间的相关系数
#inbulit函数

M计算多重相关系数(即一方面两个或多个变量之间的相关性,另一方面一个变量之间的相关性)的最简单方法是创建多元线性回归(从两个或多个被视为独立变量的值预测一个被视为相依变量的值)然后计算因变量的预测值和观测值之间的相关系数

例如,在这里,我们使用内置的
mtcars
数据集创建一个称为
mpg.model
的线性模型,其中
mpg
作为因变量,
wt
cyl
作为自变量:

> mpg.model <- lm(mpg ~ wt + cyl, data = mtcars)
事实上,R会为你做这个计算,但没有告诉你,当你要求它创建一个模型的摘要时(如Brian的回答):一个
lm
对象的摘要包含R平方,它是相关系数的平方。因此,获得相同结果的另一种方法是从
summary.lm
对象中提取R平方,并取其平方根,因此:

> sqrt(summary(mpg.model)$r.squared)
[1] 0.9111681

你说的“编程公式”是什么意思?请阅读有关提问的内容,以便于人们帮助您。更多资源我的意思是,是否有一个内置函数来计算这样的东西,或者你必须自己计算。它可能是R平方的倍数,这就是我要找的:您必须阅读我建议的文档才能确定。summary.lm说,我不确定这是什么中的正确文档。您可以在控制台键入
summary.lm
,查看它使用的代码,然后找出它的作用。看起来像是,
ans$r.squared,如果我有三个数组x,y,z作为自变量,一个数组t作为相依变量,那么上面的解应该如何使用?感谢您的时间“试试这个”没有解释您的代码是做什么的。你的代码所做的实际上并不是要求的:它不是给出多重相关系数,而是在多对变量之间绘制一个相关系数矩阵。好的。我已经编辑了答案。顺便说一句,如果OP尝试了我的解决方案,那么OP应该运行
M
来查看正在绘制的内容。我一直在避免用勺子舀溶液。这仍然不能满足OP的要求。您的代码首先要打印,然后绘制相关系数矩阵。OP要求的是多重相关系数。我的答案(你投了反对票)是这样的。这太长了。有一些更简单的内置函数来实现OP所要求的功能。你想到了哪些内置函数,@Crop89?好吧,已经快一年了,你还没有回答这个问题。事实上,R中没有内置函数来实现OP的要求。
> cor(mpg.model$model$mpg, mpg.model$fitted.values)
[1] 0.9111681
> sqrt(summary(mpg.model)$r.squared)
[1] 0.9111681