不同的最佳拟合,并从 R 中的回归中获得 p 值

Different best fit, and obtain p-value from regression in R

我有这张图,来自包 car,图 1:

密码是:

scatterplot(istat_22 ~ vpa_cnr_2,grid=F, smooth=F)

但是如果我想要回归线的 p 值,以及 r 和 r^2,我如何获得它并将它们绘制在图表上? 实质上我会用直线方程和统计值。 另一个问题是,为什么我用 lm 绘图,比如:

plot(vpa_cnr_2,istat_22)
abline(lm(vpa_cnr_2 ~ istat_22),col="red")

直线与图1不一样(见图2)?

图2

是的,我知道,它取决于拦截,但 R 没有找到最适合函数 lm?

如果你想在图表中显示它们,我会使用模型的 Adjusted R-squared 和总体 p 值,它们可以直接获得或从模型的摘要中计算。

summary <- summary(lm(istat_22 ~ via_cnr_2)) adjRsq <- summary$adj.r.squared

您无法直接从摘要中获得整体 p 值,但您可以从 F 统计量中计算,计算方法如下:

fStat <- summary$statistic pValue <- pf(fStat[1], fStat[2], fStat[3], lower.tail = F)

你可以参考这个link:Adding Regression Line Equation and R2 on graph了解如何在ggplot中标记它们。至于为什么回归线看起来不正确,那是因为你的变量在 lm 公式中被还原了。 abline(lm(istat_22 ~ vpa_cnr_2),col="red")

具体来说,如果您想从线性回归中提取值,可以使用 summary

#use str(summary(x)) to explore the other useful pieces of information
x <- lm(istat_22 ~ vpa_cnr_2)
summary(x)$r.squared
summary(x)$adj.r.squared
summary(x)$coefficients[2,4] # p-value