У меня есть набор из пары десятков числовых c переменных, и я пытаюсь выяснить, как компактно express квадратично c сформировать эти переменные. Я также хочу включить сами переменные. Идея здесь в том, что мы подбираем поверхность отклика, а не взаимодействуем с группой обработок, как, кажется, предполагает стандартная запись формулы R Я пытаюсь превратить соответствующие выражения в формулу R, подходящую для оценки различными методами, с разными наборами данных или в разные периоды. Я не смог найти его. Существует древняя статья, из которой R предположительно скопировал запись, но она ни в коем случае не идентична текущему использованию R. Любое другое описание, которое я нашел, просто приводит примеры, которые не охватывают каждый случай - даже близко не к каждому случаю.
Итак, в качестве примера, здесь я пытаюсь построить квадратичную форму c из трех переменных, не выписывая вручную все пары с I()
вокруг каждой пары.
library(tidyverse)
A <- B <- C <- 1:10
LHS <- 1:10 * 600
tb <- tibble(LHS, A, B, C)
my_eq <- as.formula(LHS ~ I(A + B + C)*I(A + B + C))
Я не нашел способа сказать, добился ли я успеха. Ни my_form_eq
, ни
terms(my_form_eq)
не кажутся вообще просветляющими.
Например, можно ли предсказать, является ли
identical(as.formula(LHS ~ I(A + B + C)*I(A + B + C)), as.formula(LHS ~ I((A + B + C)*(A + B + C)))
истинным или ложным? Я даже не могу догадаться. Или, если взять еще более простой случай, равен ~ A * I(A)
A, I(A^2)
или что-то еще? И как бы вы узнали?
Чтобы переформулировать мой вопрос, я хотел бы либо дать полное изложение того, как работает формула R, адекватно охватить каждый случай и предсказать, что каждый из них будет означать, либо, если этого не сделать, просто способ расширения любой существующей формулы на все атомы c, для которых будут оцениваться коэффициенты.