Como criar variáveis fictícias em r (passo a passo)


Uma variável fictícia é um tipo de variável que criamos na análise de regressão para que possamos representar uma variável categórica como uma variável numérica que assume um de dois valores: zero ou um.

Por exemplo, suponha que temos o seguinte conjunto de dados e queremos usar a idade e o estado civil para prever a renda :

Para usar o estado civil como variável preditora em um modelo de regressão, precisamos convertê-lo em uma variável dummy.

Como esta é atualmente uma variável categórica que pode assumir três valores diferentes (“Solteiro”, “Casado” ou “Divorciado”), precisamos criar k -1 = 3-1 = 2 variáveis fictícias.

Para criar esta variável fictícia, podemos deixar “Single” como valor base, pois ele aparece com mais frequência. Então, aqui está como converteríamos o estado civil em variáveis fictícias:

Este tutorial fornece um exemplo passo a passo de como criar variáveis fictícias para este conjunto de dados exato em R e, em seguida, realizar análise de regressão usando essas variáveis fictícias como preditores.

Etapa 1: crie os dados

Primeiro, vamos criar o conjunto de dados em R:

 #create data frame
df <- data. frame (income=c(45000, 48000, 54000, 57000, 65000, 69000,
                          78000, 83000, 98000, 104000, 107000),
                 age=c(23, 25, 24, 29, 38, 36, 40, 59, 56, 64, 53),
                 status=c('Single', 'Single', 'Single', 'Single',
                          'Married', 'Single', 'Married', 'Divorced',
                          'Divorced', 'Married', 'Married'))

#view data frame
df

   income age status
1 45000 23 Single
2 48000 25 Single
3 54000 24 Single
4 57000 29 Single
5 65000 38 Married
6 69000 36 Single
7 78000 40 Married
8 83000 59 Divorced
9 98000 56 Divorced
10 104000 64 Married
11 107000 53 Married

Etapa 2: criar as variáveis fictícias

A seguir, podemos usar a função ifelse() em R para definir variáveis fictícias e então definir o quadro de dados final que gostaríamos de usar para construir o modelo de regressão:

 #create dummy variables
married <- ifelse (df$status == ' Married ', 1, 0)
divorced <- ifelse (df$status == ' Divorced ', 1, 0)

#create data frame to use for regression
df_reg <- data. frame (income = df$income,
                     age = df$age,
                     married = married,
                     divorced = divorced)

#view data frame
df_reg

   income age married divorced
1 45000 23 0 0
2 48000 25 0 0
3 54000 24 0 0
4 57000 29 0 0
5 65000 38 1 0
6 69000 36 0 0
7 78000 40 1 0
8 83000 59 0 1
9 98000 56 0 1
10 104000 64 1 0
11 107000 53 1 0

Etapa 3: realizar regressão linear

Finalmente, podemos usar a função lm() para ajustar um modelo de regressão linear múltipla:

 #create regression model
model <- lm (income ~ age + married + divorced, data=df_reg)

#view regression model output
summary(model)

Call:
lm(formula = income ~ age + married + divorced, data = df_reg)

Residuals:
    Min 1Q Median 3Q Max 
-9707.5 -5033.8 45.3 3390.4 12245.4 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept) 14276.1 10411.5 1.371 0.21266   
age 1471.7 354.4 4.152 0.00428 **
married 2479.7 9431.3 0.263 0.80018   
divorced -8397.4 12771.4 -0.658 0.53187   
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8391 on 7 degrees of freedom
Multiple R-squared: 0.9008, Adjusted R-squared: 0.8584 
F-statistic: 21.2 on 3 and 7 DF, p-value: 0.0006865

A linha de regressão ajustada é:

Renda = 14.276,1 + 1.471,7*(idade) + 2.479,7*(casado) – 8.397,4*(divorciado)

Podemos usar esta equação para encontrar a renda estimada de um indivíduo com base em sua idade e estado civil. Por exemplo, uma pessoa de 35 anos e casada teria uma renda estimada de US$ 68.264 :

Renda = 14.276,2 + 1.471,7*(35) + 2.479,7*(1) – 8.397,4*(0) = $ 68.264

Veja como interpretar os coeficientes de regressão na tabela:

  • Intercepto: O intercepto representa a renda média de uma pessoa solteira com zero anos. Obviamente você não pode ter zero anos, então não faz sentido interpretar a interceptação por si só neste modelo de regressão específico.
  • Idade: Cada ano de aumento na idade está associado a um aumento médio de US$ 1.471,70 na renda. Como o valor p (0,004) é inferior a 0,05, a idade é um preditor de renda estatisticamente significativo.
  • Casado: Uma pessoa casada ganha em média US$ 2.479,70 a mais do que uma pessoa solteira. Como o valor p (0,800) não é inferior a 0,05, esta diferença não é estatisticamente significativa.
  • Divorciado: Uma pessoa divorciada ganha em média $ 8.397,40 menos do que uma pessoa solteira. Como o valor p (0,532) não é inferior a 0,05, esta diferença não é estatisticamente significativa.

Como ambas as variáveis dummy não foram estatisticamente significativas, poderíamos remover o estado civil como preditor do modelo, uma vez que não parece agregar valor preditivo à renda.

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *