J'essaie de lancer une régression dont les scores ont régressé avec un mannequin féminin (en prenant une valeur de 0 ou 1) et j'ai également un pays pour cette femme. J'essaie de créer un effet fixe sur la régression où j'ai une interaction féminine avec le pays, mais chaque méthode que j'essaie ne fonctionne pas car je multiplie le numérique avec un facteur

J'ai essayé d'utiliser des fastdummies, mais cela n'a pas fonctionné. J'ai également essayé d'utiliser la méthode country-1 et d'essayer de multiplier avec les femmes sans succès.

#first wrong
olss1= lm(pv1math ~ female + I(ggi*female) + factor(country) +  factor(year) + I(female * factor(country)), data = f1)
# second wrong
olss1= lm(pv1math ~ female + I(ggi*female) + factor(country) +  factor(year) + factor( female * country ), data = f1)

Les messages d'erreur sont que je ne peux pas multiplier le facteur par un numérique

1
king_sules 4 nov. 2019 à 03:04

1 réponse

L'opérateur * dans la formule donnera des interactions ainsi que des termes d'ordre inférieur. Voici un exemple:

country <- c("A", "A", "A", "B", "B", "B")
female <- c(1, 1, 0, 1, 0, 1)
y <- 1:6

fm <- lm(y ~ country * female)
fm

donnant:

Call:
lm(formula = y ~ country * female)

Coefficients:
    (Intercept)         countryB           female  countryB:female  
            3.0              2.0             -1.5              1.5  

Nous pouvons également vérifier la matrice du modèle

model.matrix(fm)

donnant

  (Intercept) countryB female countryB:female
1           1        0      1               0
2           1        0      1               0
3           1        0      0               0
4           1        1      1               1
5           1        1      0               0
6           1        1      1               1
attr(,"assign")
[1] 0 1 2 3
attr(,"contrasts")
attr(,"contrasts")$country
[1] "contr.treatment"
1
G. Grothendieck 4 nov. 2019 à 00:30