R,R²,p值和回归方程

时间:2017-04-21 12:23:33

标签: r ggplot2 regression correlation

这段代码给出了一个回归方程和R2的图:(但我需要提一下方程将是x和y(手动)

%in

equation and r square

但是,使用这段代码我有R和p值:这里有关R和p值的信息自动适合情节,为什么?我也想在第一个中使用它。

CORRELATIONP3 <-CORRELATIONP2[product=='a',]

x<-CORRELATIONP3$b
y<-CORRELATIONP3$p


df <- data.frame(x = x)
m <- lm(y ~ x, data = df)
p <- ggplot(data = df, aes(x = x, y = y)) +
  scale_x_continuous("b (%)") +
  scale_y_continuous("p (%)")+
  geom_smooth(method = "lm", formula = y ~ x) +
  geom_point()
p

eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,
             list(        a = format(coef(m)[1], digits = 4),
                          b = format(coef(m)[2], digits = 4),
                          r2 = format(summary(m)$r.squared, digits = 3)))

dftext <- data.frame(x = 3, y = 0.2, eq = as.character(as.expression(eq)))

p + geom_text(aes(label = eq), data = dftext, parse = TRUE)

R and p-value

你能告诉我如何在一个单一情节中加入所有4个信息? (R,R2,方程和p值)

除此之外,我希望这些信息可以自动安装在图中,而不是手动安装。

1 个答案:

答案 0 :(得分:1)

好的,我不确定这是否有效,因为您没有给出可重复的数据示例,但我想您只需重命名一个变量,例如:

eq2 <- substitute(italic(r)~"="~rvalue*","~italic(p)~"="~pvalue, 
list(rvalue = sprintf("%.2f",sign(coef(m)[2])*sqrt(summary(m)$r.squared)), 
pvalue = format(summary(m)$coefficients[2,4], digits = 3)))

然后在第一个图中将你在点上放置的点改为略低于你的另一个块。这里的x和y指的是文本标签的位置,因此请使用这些文本,直到文本看起来正常。

dftext2 <- data.frame(x = 30, y = 0.12, eq2 = as.character(as.expression(eq2)))
p + geom_text(aes(label = eq2), data = dftext2, parse = TRUE)

请告诉我这是否有效,如果这是你的意思。