Как получить правильный перехват lm с переменными журнала? - PullRequest
1 голос
/ 01 мая 2019

Вот некоторые примеры данных:

df <- data.frame('x' = c(230890.00, 71023.25, 296.00, 217530.00, 736550.00, 285529.50, 15210.25, 20317.00, 25157.75,
                     1272.50, 7817.75, 61297.50, 9085.00, 16047.25, 10008.75, 2438.75),
                 'y' = c(2.030330e-11, 1.016549e-05, 9.308836e-17, 5.587085e-02, 1.122631e+01, 1.104037e-06, 1.609258e-04,
                     1.653132e-04, 1.849783e-04, 6.611519e-15, 6.096827e-14, 1.197042e-09, 7.425932e-08, 2.398086e-05,
                     5.677278e-13, 2.704369e-15))

Я хочу построить эти данные в виде точечной диаграммы на оси логарифма с линией, показывающей линейную регрессию, и меткой, показывающей уравнение регрессии и значение R ^ 2.

Для этого у меня есть код:

ggplot(df, aes(x = x, y = y)) +
  geom_point() +
  geom_smooth(method = 'lm', se = F, col = 'grey', linetype = 'dashed') +
  stat_poly_eq(formula = df$y ~ df$x, 
               aes(label = paste(..eq.label.., ..rr.label.., sep = '*plain(\',\')~')), 
               parse = T ) +
  scale_y_continuous(trans = 'log10',
                 breaks = trans_breaks('log10', function(x) 10^x),
                 labels = trans_format('log10', math_format(10^.x))) +
  scale_x_continuous(trans = 'log10',
                 breaks = trans_breaks('log10', function(x) 10^x),
                 labels = trans_format('log10', math_format(10^.x))) +
  annotation_logticks() +
  theme(
    panel.background = element_blank(),
    axis.text = element_text(colour = 'black', size = 11),
    axis.line = element_line(colour = 'black'),
    axis.ticks = element_line(colour = 'black'),
    legend.position = 'none'
  )

Что дает мне этот вывод:

enter image description here

Однако, как вы видите, перехват неправильный. Я предполагаю, что это потому, что я не преобразовал лог x и y в формулу stat_poly_eq, но если я преобразую их log, то они не будут в том же масштабе, что и ось графика (перехват становится -26 ).

Как я могу получить формулу, чтобы показать, что перехват находится в районе 10 ^ -16?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...