Как я могу отобразить несколько линий регрессии в ggplot2 без взаимодействия?

#r #ggplot2 #linear-regression

#r #ggplot2 #линейная регрессия

Вопрос:

Я провожу анализ ковариации, моделируя, как непрерывная переменная (назовем ее contvar) влияет на реакцию для каждого из трех уровней категориального фактора (catfact).

Сначала я сделал графики с помощью ggplot2, которые показывали три линейные регрессии, либо граненые таким образом с тремя панелями, либо все на одной панели. Я использовал этот код для добавления строк регрессии:

   geom_smooth(aes(x = contvar, y = response, colour = catfact), show.legend = FALSE, formula = 'y ~ x', method = "lm", se = FALSE)  

Проанализировав полную модель, допускающую взаимодействие между contvar и catfact, я обнаружил, что термин взаимодействия не имеет значения, поэтому я удалил его, чтобы создать минимальную адекватную модель, как таковую:

 minimal_adequate_model lt;- lm(response ~ contvar   catfact, data = data)  

Как мне теперь снова построить три линии регрессии, но на этот раз так, чтобы все они имели одинаковый градиент (градиент, извлеченный из minimal_adequate_model)?

Я нашел обходной путь (ниже), но это кажется действительно неуклюжим и не идеально подходит для контроля эстетики и т. Д.

 #First I made the equations for each level of catfact as objects separately: lvl1_equation lt;- function(x){coef(minimal_adequate_model)[2] * x   coef(minimal_adequate_model)[1]} lvl2_equation lt;- function(x){coef(minimal_adequate_model)[2] * x   coef(minimal_adequate_model)[1]   coef(minimal_adequate_model)[3]} lvl3_equation lt;- function(x){coef(minimal_adequate_model)[2] * x   coef(minimal_adequate_model)[1]   coef(minimal_adequate_model)[3]   coef(minimal_adequate_model)[4]}  #And then I included them in the ggplot2 like this:   stat_function(fun = control_equation,geom="line", col = "#f0746e")   stat_function(fun = low_equation,geom="line", col = "#dc3977")   stat_function(fun = max_equation,geom="line", col = "#7c1d6f")  

Я чувствую, что, возможно, упускаю здесь что-то очевидное, поэтому я был бы очень благодарен за любые мысли.