Como calcular coeficientes de regressão padronizados em r
Normalmente, quando realizamos regressão linear múltipla , os coeficientes de regressão resultantes na saída do modelo não são padronizados , o que significa que eles usam os dados brutos para encontrar a linha de melhor ajuste.
model <- lm(price ~ age + sqfeet, data=df)
Porém, é possível padronizar cada variável preditora e a variável resposta (subtraindo o valor médio de cada variável dos valores originais e depois dividindo pelo desvio padrão das variáveis) e depois executar uma regressão, que resulta em coeficientes de regressão padronizados .
A maneira mais simples de calcular coeficientes de regressão padronizados em R é usar a função scale() para padronizar cada variável do modelo:
model <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df)
O exemplo a seguir mostra como calcular coeficientes de regressão padronizados na prática.
Exemplo: Como calcular coeficientes de regressão padronizados em R
Suponha que temos o seguinte conjunto de dados contendo informações sobre idade, metragem quadrada e preço de venda de 12 casas:
#create data frame df <- data. frame (age=c(4, 7, 10, 15, 16, 18, 24, 28, 30, 35, 40, 44), sqfeet=c(2600, 2800, 1700, 1300, 1500, 1800, 1200, 2200, 1800, 1900, 2100, 1300), price=c(280000, 340000, 195000, 180000, 150000, 200000, 180000, 240000, 200000, 180000, 260000, 140000)) #view data frame df age square feet price 1 4 2600 280000 2 7 2800 340000 3 10 1700 195000 4 15 1300 180000 5 16 1500 150000 6 18 1800 200000 7 24 1200 180000 8 28 2200 240000 9 30 1800 200000 10 35 1900 180000 11 40 2100 260000 12 44 1300 140000
Suponha que realizamos então uma regressão linear múltipla usando idade e metragem quadrada como variáveis preditoras e preço como variável resposta:
#fit regression model model <- lm(price ~ age + sqfeet, data=df) #view model summary summary(model) Call: lm(formula = price ~ age + sqfeet, data = df) Residuals: Min 1Q Median 3Q Max -32038 -10526 -6139 21641 34060 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 34736.54 37184.32 0.934 0.374599 age -409.83 612.46 -0.669 0.520187 sqfeet 100.87 15.75 6.405 0.000125 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 24690 on 9 degrees of freedom Multiple R-squared: 0.8508, Adjusted R-squared: 0.8176 F-statistic: 25.65 on 2 and 9 DF, p-value: 0.0001916
A partir dos resultados do modelo, podemos ver os coeficientes de regressão não padronizados :
- Interceptação: 34736,54
- Idade: -409,83
- Pés quadrados: 100,87
À primeira vista, parece que a idade tem um efeito muito maior no preço dos imóveis, uma vez que o seu coeficiente na tabela de regressão é -409,833 , em comparação com apenas 100,866 para a variável preditora da metragem quadrada.
No entanto, o erro padrão é muito maior para a idade do que para a metragem quadrada, razão pela qual o valor p correspondente é realmente grande para a idade (p = 0,520) e pequeno para a metragem quadrada (p = 0,000).
A razão para as diferenças extremas nos coeficientes de regressão deve-se às diferenças extremas nas escalas para as duas variáveis:
- Os valores para idade variam de 4 a 44 anos.
- Os valores de metragem quadrada variam de 1.200 a 2.800.
Suponha que, em vez disso, normalizemos os dados brutos e ajustemos um novo modelo de regressão:
#standardize each variable and fit regression model model_std <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df) #turn off scientific notation options(scipen= 999 ) #view model summary summary(model_std) Call: lm(formula = scale(price) ~ scale(age) + scale(sqfeet), data = df) Residuals: Min 1Q Median 3Q Max -0.5541 -0.1820 -0.1062 0.3743 0.5891 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.0000000000000002253 0.1232881457926768426 0.000 1.000000 scale(age) -0.0924421263946849786 0.1381464029075653854 -0.669 0.520187 scale(sqfeet) 0.8848591938302141635 0.1381464029075653577 6.405 0.000125 (Intercept) scale(age) scale(sqfeet)*** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.4271 on 9 degrees of freedom Multiple R-squared: 0.8508, Adjusted R-squared: 0.8176 F-statistic: 25.65 on 2 and 9 DF, p-value: 0.0001916
Os coeficientes de regressão nesta tabela são padronizados , o que significa que foram utilizados dados padronizados para ajustar este modelo de regressão.
A forma de interpretar os coeficientes da tabela é a seguinte:
- Um aumento de um desvio padrão na idade está associado a uma diminuição de 0,092 desvio padrão no preço da habitação, assumindo que a metragem quadrada permanece constante.
- Um aumento de um desvio padrão na metragem quadrada está associado a um aumento de 0,885 desvio padrão no preço da habitação, assumindo que a idade permanece constante.
Podemos agora ver que a metragem quadrada tem um efeito muito maior sobre os preços das casas do que a idade.
Nota : Os valores p para cada variável preditora são exatamente os mesmos do modelo de regressão anterior.
Ao decidir qual modelo final usar, sabemos agora que a metragem quadrada é muito mais importante para prever o preço de uma casa do que a sua idade .
Recursos adicionais
Os tutoriais a seguir fornecem informações adicionais sobre modelos de regressão:
Como ler e interpretar uma tabela de regressão
Como interpretar coeficientes de regressão
Como interpretar valores de P em regressão linear