1

my df is:

df<- data.frame(logy, logx1, logx2) dput(head(df, 20)) structure(list(logy = c(2.86483129264695, 2.71422609892467, 6.0029648649718, 6.23407114218406, 3.10441832707604, 3.31883951518659, 2.74899119270203, 3.33693389469922, 3.08234859652005, 2.86894009277142, 3.14037873461243, 6.11999623623735, 5.62536278392782, 1.90161210220208, 2.89764442725342, 2.29866776176114, 2.96609825952411, 3.81945083760566, 6.0506839217917, 3.98692546692019), logx1 = c(2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437, 2.40348089051437), logx2 = c(-1.57461309709751, -1.5307242691139, -0.464080611399306, -0.681847625665562, -1.14374686589473, -1.40571244572209, -1.43873659739373, -1.64132447315449, -1.68256017671134, -0.777132837116422, -0.658365673425322, -0.702903355642565, -1.11411689629791, -1.47169196167472, -2.70413799875517, -2.78595188490397, -2.484906653788, -1.65614025611831, -0.974314573029494, -1.05275482065124)), row.names = c(NA, 20L), class = "data.frame") 

I want to add regression equation and Rsquared on a single plot as follow. This is logarithmic equation with 2 predictor variables. I am trying to use following code. But there is something wrong with it. Finally nothing is plotted. Can someone tell me What is wrong and how to fix it?

m <- lm(logy ~ logx1 +logx2, data = df) p <- ggplot(data = df, aes(x = logx1 +logx2, y = logy)) + scale_x_continuous("logx1 + logx2") + scale_y_continuous("logy")+ geom_smooth(method = "lm", formula = logy ~ logx1 + logx2) + geom_point() p eq <- substitute(italic(y) == a + b + c %.% italic(x)*","~~italic(r)^2~"="~r2, list(a = format(coef(m)[1], digits = 4), b = format(coef(m)[2], digits = 4), c = format(coef(m)[3], digits = 4), r2 = format(summary(m)$r.squared, digits = 3))) dftext <- data.frame(x1 = 3, x2= 3, y = 0.2, eq = as.character(as.expression(eq))) p + geom_text(aes(label = eq), data = dftext, parse = TRUE) 

Any help will be highly appreciated.

6
  • your formula in geom_smooth should be y ~ x Commented Jun 13, 2019 at 21:05
  • Thank you! I tried that but doesn't work. I just thought that It has 2 predictor variables. it seems i need to define 2 variables there Commented Jun 13, 2019 at 21:18
  • Almost all values of logx1 are the same, is that correct? Commented Jun 13, 2019 at 21:27
  • 1
    this data is just the example data. My orig data has many observations. Commented Jun 13, 2019 at 21:37
  • perhaps this will help? try ggpubr::stat_regline_equation(aes(label = paste(..eq.label.., ..adj.rr.label.., sep = "~~~~"))) Commented Jun 14, 2019 at 12:42

1 Answer 1

1

According to this 3D scatterplot, no surface equation will fit this data well.

scatter

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.