gpt4 book ai didi

r - 如何将 RMSE、斜率、截距、r^2 添加到 R 图中?

转载 作者:行者123 更新时间:2023-12-01 23:13:50 26 4
gpt4 key购买 nike

如何使用 R 将 RMSE、斜率、截距和 r^2 添加到绘图中?我附加了一个包含示例数据的脚本,它的格式与我的真实数据集类似 - 不幸的是,我处于停滞状态。有没有比从方程创建对象并将其插入到 text() 中更简单的方法来将这些统计数据添加到图表中?理想情况下,我希望统计数据堆叠显示在图表上。我怎样才能做到这一点?

## Generate Sample Data
x = c(2,4,6,8,9,4,5,7,8,9,10)
y = c(4,7,6,5,8,9,5,6,7,9,10)

# Create a dataframe to resemble existing data
mydata = data.frame(x,y)

#Plot the data
plot(mydata$x,mydata$y)
abline(fit <- lm(y~x))

# Calculate RMSE
model = sqrt(deviance(fit)/df.residual(fit))

# Add RMSE value to plot
text(3,9,model)

最佳答案

这是使用基本图形和 ?plotmath 绘制绘图并对其进行注释的版本

## Generate Sample Data
x = c(2,4,6,8,9,4,5,7,8,9,10)
y = c(4,7,6,5,8,9,5,6,7,9,10)

## Create a dataframe to resemble existing data
mydata = data.frame(x,y)

## fit model
fit <- lm(y~x, data = mydata)

接下来计算您想要在注释中显示的值。为此,我更喜欢 bquote(),其中 .(foo) 中标记的任何内容都将被对象 foo 的值替换。 @mnel 的答案在评论中指出,使用 substitute() 来实现相同的目标,但通过不同的方式。因此,我在工作区中为您可能希望在注释中显示的每个值创建对象:

## Calculate RMSE and other values
rmse <- round(sqrt(mean(resid(fit)^2)), 2)
coefs <- coef(fit)
b0 <- round(coefs[1], 2)
b1 <- round(coefs[2],2)
r2 <- round(summary(fit)$r.squared, 2)

现在使用 ?plotmath 中描述的构造建立方程:

eqn <- bquote(italic(y) == .(b0) + .(b1)*italic(x) * "," ~~ 
r^2 == .(r2) * "," ~~ RMSE == .(rmse))

完成后,您可以绘制绘图并用您的表达式对其进行注释

## Plot the data
plot(y ~ x, data = mydata)
abline(fit)
text(2, 10, eqn, pos = 4)

这给出:

enter image description here

关于r - 如何将 RMSE、斜率、截距、r^2 添加到 R 图中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com