2015-04-05 15 views
1

Я хотел бы вывести условия взаимодействия из нескольких регрессий в одной строке и называть это «Взаимодействие». До сих пор у меня есть то, что условия взаимодействия отображаются в двух разных строках, называемых «Взаимодействие» (см. Код ниже).Как выводить несколько переменных в одной строке с помощью stargazer в R

Этот вопрос уже задан здесь, но мой счет не достаточно высок, чтобы его проголосовать или прокомментировать: https://stackoverflow.com/questions/28859569/several-coefficients-in-one-line.

library("stargazer") 
stargazer(attitude) 
stargazer(attitude, summary=FALSE) 
# 2 OLS models with Interactions 
linear.1 <- lm(rating ~ complaints + privileges + complaints*privileges 
      , data=attitude) 
linear.2 <- lm(rating ~ complaints + learning + complaints*learning, data=attitude) 
stargazer(linear.1, linear.2, title="Regression Results", type="text", 
     covariate.labels=c("Complaints", "Privileges", "Interaction", "Learning", "Interaction")) 

Благодарим за помощь.

ответ

2

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

Это предостережение Теперь говорится, что вы можете сделать это, изменив содержимое lm объектов:

# copy objects just for demonstration 
m1 <- linear.1 
m2 <- linear.2 

# see names of coefficients 
names(m1$coefficients) 
# [1] "(Intercept)"   "complaints"   "privileges"   "complaints:privileges" 
names(m2$coefficients) 
# [1] "(Intercept)"   "complaints"   "learning"   "complaints:learning" 

# replace names 
names(m1$coefficients)[names(m1$coefficients) == "complaints:privileges"] <- "interaction" 
names(m2$coefficients)[names(m2$coefficients) == "complaints:learning"] <- "interaction" 

Результат:

> stargazer(m1, m2, title="Regression Results", type="text") 

Regression Results 
========================================================== 
            Dependent variable:  
           ---------------------------- 
             rating   
            (1)   (2)  
---------------------------------------------------------- 
complaints      1.114**   0.307  
           (0.401)  (0.503) 

privileges      0.434     
           (0.570)     

learning          -0.171  
               (0.570) 

interaction      -0.007   0.006  
           (0.008)  (0.009) 

Constant       -7.737  31.203  
           (27.409)  (31.734) 

---------------------------------------------------------- 
Observations      30   30  
R2        0.692   0.713  
Adjusted R2      0.657   0.680  
Residual Std. Error (df = 26)  7.134   6.884  
F Statistic (df = 3; 26)  19.478***  21.559*** 
========================================================== 
Note:       *p<0.1; **p<0.05; ***p<0.01 
+0

Спасибо, это было именно то, что мне было нужно. Причина, почему в моем случае это не вводит в заблуждение, заключается в том, что в моих регрессиях у меня есть разные наборы из 2 регрессоров и их взаимодействия (т. Е. (X1, x2, x1 * x2) и (x2, x3, x2 * x3)). Извините за то, что вы выбрали плохой пример с тремя регрессорами и одним взаимодействием здесь. – cIph3r