R调整后的R平方多个自变量

时间:2018-08-21 17:37:13

标签: r linear-regression

全部

我试图找到一种方法来针对我有多个自变量的因变量获得所有调整后的r平方值。

即。 lm(balance ~ price + cost + rate) 余额与价格,余额与成本的调整后r2 以及余额与费率。

这可能吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

为具有单个预测变量的模型计算调整后的R平方没有太大意义,因为其目的是对添加更多自变量进行惩罚。

但是,您可以轻松计算调整后的R平方:

#Assume this is your data.frame

set.seed(123)
df <- as.data.frame(cbind(dep = rnorm(100,5,1),
pred1 = rnorm(100,2,1),
pred2 = rnorm(100,3,1),
pred3 = rnorm(100,4,1)))

#Calculate the R-squares as squares of correlation coefficents

rsq <- cor(df)^2
diag(rsq) <- 0  
as.data.frame(rsq)

#Or alternatively (as proposed by 李哲源)

rsq <- cor(df[, 1], df[, -1]) ^ 2

#Calculate the adjusted R-squares by the formula used in summary.lm

1 - (1 - rsq[-1,1]) * ((100 - 1)/(100-1-1)) #100 is equal to n

#The results

     pred1        pred2        pred3 
-0.007725613  0.006652629 -0.008241297 

答案 1 :(得分:1)

使用内置的anscombe并假设y1是因变量,而x1,x2和x3是自变量:

sapply(c("x1", "x2", "x3"), 
  function(nm) summary(lm(anscombe[c("y1", nm)]))$adj.r.squared)

给出这些调整后的R平方值:

       x1        x2        x3 
0.6294916 0.6294916 0.6294916