É errado escolher recursos com base no valor-p?

12

Existem várias postagens sobre como selecionar recursos. Um dos métodos descreve a importância do recurso com base nas estatísticas t. Em R varImp(model)aplicado no modelo linear com características padronizadas , o valor absoluto da estatística t para cada parâmetro do modelo é usado. Então, basicamente escolhemos um recurso com base em suas estatísticas t, significando o quão preciso é o coeficiente. Mas a precisão do meu coeficiente me diz algo sobre as habilidades preditivas do recurso?

Pode acontecer que meu recurso tenha um estatístico t baixo, mas ainda melhoraria (digamos) a precisão do modelo? Se sim, quando alguém iria querer excluir variáveis ​​com base nas estatísticas t? Ou isso fornece apenas um ponto de partida para verificar as habilidades preditivas de variáveis ​​não importantes?

Alina
fonte
3
Para um teste de uma amostra da média, a estatística t é simplesmente a média da amostra dividida pelo erro padrão estimado (desvio padrão da amostra dividido pela raiz quadrada do tamanho da amostra). Essa estatística por si só não depende de nenhuma hipótese em particular. Derivando valor ap a partir dessa estatística não dependem de uma hipótese.
Dan Hicks
@ DanHicks eu editei minha pergunta.
Alina
Eu não estou muito familiarizado com o sinal de intercalação, mas parece que varImp()se destina a ser uma função informativa ou de diagnóstico e não usada diretamente para seleção ou eliminação de recursos.
David25272

Respostas:

11

A estatística t pode ter quase nada a dizer sobre a capacidade preditiva de um recurso, e não deve ser usada para filtrar preditores ou permitir que preditores entrem em um modelo preditivo.

Valores P dizem que características espúrias são importantes

Considere a seguinte configuração de cenário em R. Vamos criar dois vetores, o primeiro é simplesmente lançamentos aleatórios de moedas:5000

set.seed(154)
N <- 5000
y <- rnorm(N)

O segundo vetor é de observações, cada uma atribuída aleatoriamente a uma das 500 classes aleatórias de tamanho igual:5000500

N.classes <- 500
rand.class <- factor(cut(1:N, N.classes))

Agora, ajustamos um modelo linear para prever o que é ydado rand.classes.

M <- lm(y ~ rand.class - 1) #(*)

O correto valor para todos os coeficientes é zero, nenhum deles tem qualquer poder de previsão. No entanto, muitos deles são significativos no nível de 5%

ps <- coef(summary(M))[, "Pr(>|t|)"]
hist(ps, breaks=30)

Histograma dos valores de p

De fato, devemos esperar que cerca de 5% deles sejam significativos, mesmo que não tenham poder preditivo!

Os valores P falham ao detectar recursos importantes

Aqui está um exemplo na outra direção.

set.seed(154)
N <- 100
x1 <- runif(N)
x2 <- x1 + rnorm(N, sd = 0.05)
y <- x1 + x2 + rnorm(N)

M <- lm(y ~ x1 + x2)
summary(M)

Eu criei dois preditores correlacionados , cada um com poder preditivo.

M <- lm(y ~ x1 + x2)
summary(M)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   0.1271     0.2092   0.608    0.545
x1            0.8369     2.0954   0.399    0.690
x2            0.9216     2.0097   0.459    0.648

Os valores p falham em detectar o poder preditivo de ambas as variáveis ​​porque a correlação afeta a precisão com que o modelo pode estimar os dois coeficientes individuais a partir dos dados.

As estatísticas inferenciais não existem para dizer sobre o poder preditivo ou a importância de uma variável. É um abuso dessas medidas usá-las dessa maneira. Existem opções muito melhores disponíveis para seleção de variáveis ​​em modelos lineares preditivos, considere usar glmnet.

(*) Observe que estou deixando uma interceptação aqui, portanto, todas as comparações são com a linha de base de zero, não com a média do grupo da primeira classe. Essa foi a sugestão do @ whuber.

Como levou a uma discussão muito interessante nos comentários, o código original foi

rand.class <- factor(sample(1:N.classes, N, replace=TRUE))

e

M <- lm(y ~ rand.class)

o que levou ao seguinte histograma

Histograma distorcido de valores-p

Matthew Drury
fonte
2
Hmm, por que essa distribuição de valor p não é uniforme?
Ameba diz Reinstate Monica
4
Uau, como você escolheu o número da semente? Qualquer outro resultado em ps quase uniforme ...
psychOle
3
Eu tento usar sempre a mesma semente para esse tipo de coisa: en.wikipedia.org/wiki/154_(album)
Matthew Drury
9
Você está realizando os testes errados: está comparando 499 médias do grupo com a média do primeiro grupo. Com a semente 154, a média do primeiro grupo de 1,18 ... é extraordinariamente alta (o que pode acontecer porque o tamanho do grupo 5 é muito pequeno), portanto a maioria dos outros tem efeitos significativamente negativos. Corrija-o executando o modelo lm(y ~ rand.class - 1). Isso não altera a validade de todas as suas observações (+1). Para ser ainda mais convincente, equilibre os tamanhos dos grupos:rand.class <- cut(1:N, N.classes)
whuber
1
Claro: / 100% esperava que o @whuber aparecesse e dissesse algo completamente claro e óbvio que eu havia perdido. Eu vou consertar isso agora.
Matthew Drury
2

A estatística t é influenciada pelo tamanho do efeito e pelo tamanho da amostra. Pode ser que o tamanho do efeito seja diferente de zero, mas o tamanho da amostra não seja grande o suficiente para torná-lo significativo.

t=(x¯s)n

x¯sn

No seu caso, qualquer recurso com efeito diferente de zero melhorará o desempenho, mas talvez você não tenha dados suficientes para tornar significativo o valor p desse recurso.

Hugh
fonte
4
Não acho que seja verdade que qualquer recurso com efeito diferente de zero melhore o desempenho. Talvez isso seja verdade nos dados de treinamento, mas certamente não está nos dados de teste .
Matthew Drury
@MatthewDrury Você está dizendo que não temos métodos para inferir medições populacionais a partir de amostras?
Todd D
Não, mas é verdade que recursos espúrios podem interferir na sua capacidade de fazer isso bem.
Matthew Drury