全部
我试图找到一种方法来针对我有多个自变量的因变量获得所有调整后的r平方值。
即。 lm(balance ~ price + cost + rate)
余额与价格,余额与成本的调整后r2
以及余额与费率。
这可能吗?
谢谢。
答案 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