我正在尝试在数据集中拟合非线性回归线,但是拟合线看起来很奇怪,因为它是从y轴的中部开始的,因此R平方值也很低(蓝线r2 = 50)。我认为,如果可以将其修改为红线,则可能会导致更好的r平方。是吗?
数据:
x <- c(72925.54, 1169812.77, 62098.7, 567929.36, 46506.39, 275755.22,
31651.06, 17552.06, 6065.29, 52617.75, 32729.35, 50706.11, 6169.27,
4360.01, 26799.12, 20747.9, 15518.09, 26800.22, 67470.81, 613530.49,
4813.84, 17286.46, 1537712.05, 1466311.98, 18952.34, 49014.31,
1408119.34, 160026.59, 17802.44, 447694.5, 18220.26, 13113.15,
10206.27, 415138.24, 1572750.08, 140690.08, 16414.01, 51985.79,
2025197.14)
y <- c(30.66, 48.66, 49.92, 14.63, 7.77, 35.79, 25.1, 4.59, 8.26,
8.99, 33.49, 15.94, 6.32, 11.78, 10.77, 28.08, 9.33, 37.26, 53.99,
25.72, 40.54, 44.26, 48.62, 26.07, 28.32, 36.21, 53.59, 33.42,
39.2, 70.21, 39.16, 34.65, 36.5, 55.87, 47.59, 46.09, 34.38,
29.79, 53.1)
#my df
df <- data.frame(x,y)
脚本:
library(ggplot2)
p2 <- df %>%
ggplot(aes(x, y)) +
xlab("x axis") + ylab("y axis") +
geom_point(color = 'black', alpha = 0.5, size=2) +
geom_smooth(se = FALSE, method = "lm", formula = y ~ (log(x)), colour = 'blue', size = 2)+
theme_tq() +
labs(title = "Plot 1")
p2
#calculating r-squared
yy <- predict(lm(y ~ log(x), data = df))
r2 <- cor(y, yy)^2
感谢您的帮助。