Stargazer и r: как выстроить строки для коэффициентов с одним и тем же именем с несколькими полиномиальными регрессиями - PullRequest
1 голос
/ 13 октября 2019

Я бы хотел, чтобы мой стол был более сжатым. У меня есть 4 полиномиальных регрессии, которые имеют одинаковые переменные, но используют разные степени. Обратите внимание, что я создаю вывод с HTML, а не с латексом. Приведенный ниже код лучше всего описывает мою проблему:

Это мой код:

library(stargazer)
attach(mtcars)

preg1 = lm(mpg~poly(disp, 1))
preg2 = lm(mpg~poly(disp, 2))
preg3 = lm(mpg~poly(disp, 3))
preg4 = lm(mpg~poly(disp, 4))

stargazer(preg1, preg2, preg3, preg4, type="html", align=TRUE,
          covariate.labels=c("X1", 
                             "X1", "X2", 
                             "X1", "X2", "X3", 
                             "X1", "X2", "X3","X4"))

однако он выдает следующее:

https://imgur.com/a/ikVfqZv

Iотредактировал HTML-код, чтобы привести пример вывода, который мне нужен:

https://imgur.com/a/4cCCiJC

однако, неэффективно редактировать через грязный HTML Stargazer каждый раз, когда мне нужно сделать это

1 Ответ

0 голосов
/ 14 октября 2019

Это «альтернатива», а не решение. Я создаю новый столбец в mtcars для каждой степени полиномиальной формы, а затем применяю регрессию к этим новым столбцам:

library(stargazer)
library(dplyr)
attach(mtcars)

mtcars2 <- mtcars %>%
  mutate("disp2" = disp^2, "disp3" = disp^3, "disp4" = disp^4)

attach(mtcars2)

test1 = lm(mpg~disp)
test2 = lm(mpg~disp + disp2)
test3 = lm(mpg~disp + disp2 + disp3)
test4 = lm(mpg~disp + disp2 + disp3 + disp4)

stargazer(test1, test2, test3, test4, type="html", align=TRUE)

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

Примечание: очевидно , poly решает проблему корреляции между переменными вразличные степени: Однако обратите внимание, что q, I(q^2) и I(q^3) будут коррелированными, и коррелированные переменные могут вызвать проблемы. Использование poly () позволяет избежать этого, создавая ортогональные полиномы, поэтому я собираюсь использовать первый вариант.

Это делает мою альтернативу снова менее полезной.

...