在线性模型中用 R 提取 R 平方值

Posted

技术标签:

【中文标题】在线性模型中用 R 提取 R 平方值【英文标题】:Extract R-square value with R in linear models [duplicate] 【发布时间】:2014-06-24 12:20:50 【问题描述】:

我知道使用summary 可以帮助我手动执行此操作,但是,我将不得不计算大量的 R 平方值。因此,我需要计算机为我提取它。这是一个简单的例子:

library(alr3)
M.lm=lm(MaxSalary~Score,data=salarygov)
#Here you will see the R square value
summary(M.lm)

我该怎么做?

【问题讨论】:

【参考方案1】:

您在摘要中看到的 R 平方、调整后的 R 平方和所有其他值都可以从摘要对象中访问。你可以使用str(summary(M.lm))查看所有内容:

> str(summary(M.lm))  # Truncated output...
List of 11
 $ call         : language lm(formula = MaxSalary ~ Score, data = salarygov)
 $ terms        :Classes 'terms', 'formula' length 3 MaxSalary ~ Score
 ...
 $ residuals    : Named num [1:495] -232.3 -132.6 37.9 114.3 232.3 ...
 $ coefficients : num [1:2, 1:4] 295.274 5.76 62.012 0.123 4.762 ...
 $ aliased      : Named logi [1:2] FALSE FALSE
 $ sigma        : num 507
 $ df           : int [1:3] 2 493 2
 $ r.squared    : num 0.817
 $ adj.r.squared: num 0.816
 $ fstatistic   : Named num [1:3] 2194 1 493
 $ cov.unscaled : num [1:2, 1:2] 1.50e-02 -2.76e-05 -2.76e-05 5.88e-08

要获取 R 平方值,请输入 summary(M.lm)$r.squaredsummary(M.lm)$adj.r.squared

【讨论】:

这似乎只在有一个左侧变量时才有效。 但是,当有两个左侧变量时,汇总变量仍应全部出现。见str(summary(lm(price + carat ~ x + y + z, data=ggplot2::diamonds)))【参考方案2】:

使用一个预测器,您可以简单地使用cor(salarygov$MaxSalary ,salarygov$Score)^2。或者,summary(M.lm)$r.squared

【讨论】:

【参考方案3】:

这取决于你对哪一个感兴趣:

 # adjusted R²
 summary(M.lm)$adj.r.squared
 # R²
 summary(M.lm)$r.squared

【讨论】:

以上是关于在线性模型中用 R 提取 R 平方值的主要内容,如果未能解决你的问题,请参考以下文章

在spss线性回归中,t、R、R平方、F分别代表啥,它们取值范围是多少表示啥意思哈~~~~我快纠结死了~~~

一个好的模型可以有较低的 R 平方值吗?

R语言广义线性模型函数GLMglm函数构建泊松回归模型(Poisson regression)输出提供偏差(deviances)回归参数和标准误差以及系数的显著性p值

机器学习-线性回归(基于R语言)

R语言mgcv包中的gam函数拟合广义加性模型(Generalized Additive Model)GAM(对非线性变量进行样条处理计算RMSER方调整R方可视化模型预测值与真实值的曲线)

R使用lm构建单变量线性回归模型