【0006day】R方、P值和RSME

发布于:2024-05-22 ⋅ 阅读:(172) ⋅ 点赞:(0)

一、对应公式

1.R方指标(R-squared)

对于R方

一般回归模型

R方是统计学里常用的统计量,在不同任务模型下的解读和用途不一,有时候会出现误用情况。本文总结了对R方的理解和用法,遵循“从一般到特殊”的思路,先讲一般回归模型中的R方,再讲线性回归模型里的R方。"一般"回归模型包括线性模型,随机森林,神经网络等。

R方的定义
R方的名字是coefficient of determination,另一个名字是Nash–Sutcliffe model efficiency coefficient。给定一系列真值 yi 和对应的预测值y^i,R方的定义为

image-20221201205758230

R方的含义是,预测值解释了 yi 变量的方差的多大比例,衡量的是预测值对于真值的拟合好坏程度。通俗理解,假定 yi 的方差为1个单位,则R方表示"使用该模型之后, yi 的残差的方差减少了多少"。比如R方等于0.8,则使用该模型之后残差的方差为原始 yi 值方差的20%。

R方=1:最理想情况,所有的预测值等于真值。
R方=0:一种可能情况是"简单预测所有y值等于y平均值",即所有 y^i 都等于y¯(即真实y值的平均数),但也有其他可能。
R方<0:模型预测能力差,比"简单预测所有y值等于y平均值"的效果还差。这表示可能用了错误模型,或者模型假设不合理。
R方的最小值没有下限,因为预测可以任意程度的差。因此,R方的范围是 (−∞,1] 。
注意:R方并不是某个数的平方,因此可以是负值。
参考文献:https://zhuanlan.zhihu.com/p/143132259

皮尔逊相关系数中的R方

对于不固定截距的简单线性模型(y = mx + b), R方等于x和y的pearson correlation coefficient的平方。因此,此处的R方范围是[0,1]。R方等于0,表示x和y的散点图完全随机,没有线性关系(或者说,线性相关关系等于0)。R方等于1,表示所有(x,y)散点落在一条直线上。

2.均方根误差(RMSE)

均方根误差相关
为了对不同插值方法的结果进行验证和对比,本文选用交叉验证法来判断各插值结果的好坏。交叉验证法的原理是利用每个实测点周围的点对该实测值进行预测,将预测值与该实测值本身进行比较。本文通过平均误差(ME)、平均绝对误差(MAE)、平均相对误差(MAE)及均方根误差(R M S E)等指标来评定插值结果的精度。
在这里插入图片描述

3.P值

p值表示在原假设(零假设)的条件下,样本发生或观测值出现的概率。若p值小于小概率事件的阈值即alpha,那么拒绝原假设。否则接受原假设。

参考文献
p值是什么?数据科学家用最简单的方式告诉你

二、应用场景分析

这三个指数在什么时候会用到呢?下面我将分别计算三种场景下的各个参数,并给出代码。

# 加载必要的库
if (!require(stats)) install.packages("stats", dependencies=TRUE)
if (!require(Metrics)) install.packages("Metrics", dependencies=TRUE)

# 生成一行随机数字
set.seed(123) # 设置种子以便结果可重复
n <- 100 # 数字的个数
x <- rnorm(n) # 生成n个随机正态分布数字
y <- rnorm(n) # 生成另一组n个随机正态分布数字

# 执行线性回归
model <- lm(y ~ x)

# 计算R方
r_squared <- summary(model)$r.squared

# 计算P值
p_value <- summary(model)$coefficients[2, 4]

# 计算均方根
rms <- sqrt(mean(model$residuals^2))

# 计算斜率
slope <- summary(model)$coefficients[2, 1]

# 打印结果
cat("R-squared: ", r_squared, "\n")
cat("P-value: ", p_value, "\n")
cat("Root Mean Square: ", rms, "\n")
cat("Slope: ", slope, "\n")

# 绘制散点图和回归线
plot(x, y, main="散点图及回归线", xlab="X", ylab="Y", pch=19)
abline(model, col="blue") # 添加回归线
legend("topright", legend=c(paste("R-squared:", round(r_squared, 3)),
                            paste("P-value:", round(p_value, 3)),
                            paste("RMS:", round(rms, 3)),
                            paste("Slope:", round(slope, 3))),
       col=c("blue"), lty=1, cex=0.8)

在这里插入图片描述

计算后需要明白它在R语言中所有的公式。

其中residuals,参考:Residual Plot

其中coefficients,有四个值,可以后续进行探索

           Estimate Std. Error    t value  Pr(>|t|)

(Intercept) -0.10280305 0.09755118 -1.0538371 0.2945488
x -0.05247161 0.10687862 -0.4909459 0.6245623


网站公告

今日签到

点亮在社区的每一天
去签到