R:Obter o valor de p para todos os coeficientes de regressão linear múltipla (incl.referência de nível)
-
21-12-2019 - |
Pergunta
Exemplo
Eu tenho uma regressão linear, que se encaixa numérica variável dependente com 3 factor explicativo de variáveis.Cada fator de variáveis tem 2 níveis.
install.packages("robustbase")
install.packages("MASS")
require(robustbase)
require(MASS)
# Example data
data(npk)
df= npk[,-1]
str(df)
# 'data.frame': 24 obs. of 4 variables:
# $ N : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...
# $ P : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...
# $ K : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...
# $ yield: num 49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...
set.seed(0)
model <- lmrob(yield ~ N + P + K - 1, data= df)
Tarefa
Eu quero acessar o p-valores para cada coeficiente da model
objecto.Para evitar uma desnecessária interceptar eu já estou usando - 1
na fórmula.
summary(model)$coefficients
# Estimate Std. Error t value Pr(>|t|)
# N0 54.644672 2.400075 22.7678995 8.972084e-16
# N1 60.166737 1.966661 30.5933467 2.858276e-18
# P1 -1.059299 2.139443 -0.4951286 6.259053e-01
# K1 -3.905052 2.226012 -1.7542822 9.469295e-02
Parece que a linha de base (de referência) níveis de P
e K
são ocultados.
Pergunta
Como posso alterar o código para acessar o p-valores também para P0
e K0
como os coeficientes para o model
objeto?
Nota: Eu não tenho certeza se isso faz diferença para a solução, que eu realmente estou usando em meu real problema lmrob
como robusto função de regressão, assim, decidi que a melhor mantê-lo neste exemplo pode ser reproduzido.
Solução
Os p-valores que são estimados são:
coef(summary(model))[, 4]
Em relação a níveis de referência, o que a modelo está usando tratamento de contrastes, então os valores dos níveis de referência são todos zero, portanto, a sua não tem sentido pedir para o seu p-valores.