在plotmatrix中添加多个R ^ 2值的简单方法

问题描述 投票:0回答:1

所以我有一个简单的多图/情节矩阵,形式如下:

DATA_SE <- read.table("DEWRATES_SE_15-17.txt", sep = "\t", dec = ".", header = T)
multiplot_SE <- pairs(~SE_21+SE_25+SE_26, data = DATA_SE, main = "Tauraten_Selhausen")
multiplot_SE  

enter image description here

有没有办法在我的每个图中添加r平方值(对于一个简单的lm-modell)?

谢谢!

更新:

有没有办法为我的情节面板的x轴和y轴设置固定限制?我只需要将它们全部设置为相同的值(即使对于x和y)!

r plot linear-regression plotmatrix
1个回答
1
投票

你可以这样做(因为你没有提供我使用iris数据集来演示的样本数据):

panel.rsquared <- function(x, y) {
    fit <- lm(y ~ x)
    usr <- par("usr")
    on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    text(0.5, 0.5, sprintf(
        "R squared = %4.3f\n Adj. R squared = %4.3f",
        summary(fit)$r.squared,
        summary(fit)$adj.r.squared))
}   

pairs(iris[, -ncol(iris)], upper.panel = panel.rsquared)

enter image description here


更新

在回复您的评论时,您可以定义任何上/下面板功能以满足您的需求。

例如,您可以执行类似我在下面显示的操作。请注意,这不是很有用,因为避免重叠文本和点很困难(不可能)。这是pairs在配置上部面板以显示注释/文本时的整体想法(和强度),以及下部面板显示图表。这样就可以避免冗余(在原始的帖子图中重复,因此是多余的)。

无论如何,为了它的价值:

panel.plot_withrsquared <- function(x, y) {
    points(x, y)
    fit <- lm(y ~ x)
    usr <- par("usr")
    on.exit(par(usr))
    par(usr = c(0, 1, 0, 1))
    text(0.1, 0.8,
        sprintf("R squared = %4.3f",summary(fit)$r.squared),
        adj = 0, cex = 0.8)
    }

pairs(
    iris[, -ncol(iris)],
    upper.panel = panel.rsquared,
    lower.panel = panel.plot_withrsquared)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.