Проблема с нелинейной регрессией с низким значением r-квадрата - PullRequest
1 голос
/ 05 июля 2019

Я пытаюсь разместить нелинейную линию регрессии на моем наборе данных, но подобранная линия выглядит странно, поскольку она начинается с середины оси 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

Спасибо за вашу помощь.

enter image description here

1 Ответ

2 голосов
/ 05 июля 2019

Мой поиск по уравнению обнаружил двухпараметрическое уравнение "y = a + b * ln (x)" с параметрами a = -1.6833016837382591E + 01 и b = 4.4249791262770692E + 00, в результате чего RMSE = 14,1 и R-squared = 0,241

plot

...