How to add linear model results (adj-r squared, slope and p-value) onto regression plot in r

感情迁移 提交于 2019-12-13 10:00:28

问题


Hi I have created a linear model and a regression plot - However, I would like to have the model results on the plot itself - something like the image below:

How do I show the key results on the plot? Below is my code for the plot:

library(ggplot2)
ggplot(HP_crime15, aes (x = as.numeric(HP_crime15$Theft15), y = 
as.numeric(HP_crime15$X2015))) + geom_point(shape=1) + 
geom_smooth(method=lm) + xlab ("Recorded number of Thefts") + 
ylab("House prices (£)") + ggtitle("Title") 

回答1:


Ideally good questions are those that pose the problem by providing a reproducible example. Anyway, I have approached this problem in two steps;

Step 1: Determine the linear regression model;

fit1 <- lm(Sepal.Length ~ Petal.Width, data = iris)

Step 2: Plot the model;

library (ggplot2)
ggplot(fit1$model, aes_string(x = names(fit1$model)[2], y = names(fit1$model)[1])) + 
  geom_point() +
  stat_smooth(method = "lm", col = "red") +
  labs(title = paste("Adj R2 = ",signif(summary(fit1)$adj.r.squared, 5),
                     "Intercept =",signif(fit1$coef[[1]],5 ),
                     " Slope =",signif(fit1$coef[[2]], 5),
                     " P =",signif(summary(fit1)$coef[2,4], 5)))




回答2:


Here is another option: instead of adding the statistics to the title, you could add a label to the plot:

library (ggplot2)

fit1 <- lm(Sepal.Length ~ Petal.Width, data = iris)   
ggplot(fit1$model, aes_string(x = names(fit1$model)[2], y = names(fit1$model)[1])) + 
  geom_point() +
  stat_smooth(method = "lm", col = "red") +
  geom_label(aes(x = 0, y = 7.5), hjust = 0, 
             label = paste("Adj R2 = ",signif(summary(fit1)$adj.r.squared, 5),
                                               "\nIntercept =",signif(fit1$coef[[1]],5 ),
                                               " \nSlope =",signif(fit1$coef[[2]], 5),
                                               " \nP =",signif(summary(fit1)$coef[2,4], 5)))



来源:https://stackoverflow.com/questions/47822911/how-to-add-linear-model-results-adj-r-squared-slope-and-p-value-onto-regressi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!