Como realizar regressão quantílica em r
A regressão linear é um método que podemos usar para compreender a relação entre uma ou mais variáveis preditoras e uma variável de resposta .
Normalmente, quando realizamos regressão linear, queremos estimar o valor médio da variável resposta.
No entanto, poderíamos, em vez disso, usar um método conhecido como regressão quantílica para estimar qualquer valor quantílico ou percentil do valor da resposta, como o percentil 70, o percentil 90, o percentil 98, etc.
Para realizar a regressão quantílica em R, podemos usar a função rq() do pacote quantreg , que usa a seguinte sintaxe:
library (quantreg) model <- rq(y ~ x, data = dataset, tau = 0.5 )
Ouro:
- y: a variável de resposta
- x: a(s) variável(is) preditiva(s)
- dados: o nome do conjunto de dados
- tau: O percentil a ser encontrado. O padrão é a mediana (tau = 0,5), mas você pode defini-la como qualquer número entre 0 e 1.
Este tutorial fornece um exemplo passo a passo de como usar esta função para realizar regressão quantílica em R.
Passo 1: Insira os dados
Para este exemplo, criaremos um conjunto de dados contendo as horas estudadas e os resultados dos exames obtidos para 100 alunos diferentes de uma universidade:
#make this example reproducible set.seed(0) #create data frame hours <- runif(100, 1, 10) score <- 60 + 2*hours + rnorm(100, mean=0, sd=.45*hours) df <- data.frame(hours, score) #view first six rows head(df) hours score 1 9.070275 79.22682 2 3.389578 66.20457 3 4.349115 73.47623 4 6.155680 70.10823 5 9.173870 78.12119 6 2.815137 65.94716
Etapa 2: realizar a regressão quantílica
A seguir, ajustaremos um modelo de regressão quantílica usando horas estudadas como variável preditora e notas em exames como variável resposta.
Usaremos o modelo para prever o percentil 90 esperado das notas dos exames com base no número de horas estudadas:
library (quantreg) #fit model model <- rq(score ~ hours, data = df, tau = 0.9 ) #view summary of model summary(model) Call: rq(formula = score ~ hours, tau = 0.9, data = df) tau: [1] 0.9 Coefficients: coefficients lower bd upper bd (Intercept) 60.25185 59.27193 62.56459 hours 2.43746 1.98094 2.76989
A partir do resultado podemos ver a equação de regressão estimada:
Pontuação do exame do percentil 90 = 60,25 + 2,437*(horas)
Por exemplo, a pontuação do percentil 90 para todos os alunos que estudam 8 horas deveria ser 79,75:
Percentil 90 da nota do exame = 60,25 + 2,437*(8) = 79,75 .
A saída também exibe os limites de confiança superior e inferior para a interceptação e os tempos da variável preditora.
Passo 3: Visualize os resultados
Também podemos visualizar os resultados da regressão criando um gráfico de dispersão com a equação de regressão quantílica ajustada sobreposta no gráfico:
library (ggplot2) #create scatterplot with quantile regression line ggplot(df, aes(hours,score)) + geom_point() + geom_abline(intercept= coef (model)[1], slope= coef (model)[2])
Ao contrário de uma linha de regressão linear tradicional, observe que esta linha ajustada não passa pelo centro dos dados. Em vez disso, passa pelo percentil 90 estimado em cada nível da variável preditora.
Podemos ver a diferença entre a equação de regressão quantílica ajustada e a equação de regressão linear simples adicionando o argumento geom_smooth() :
library (ggplot2) #create scatterplot with quantile regression line and simple linear regression line ggplot(df, aes(hours,score)) + geom_point() + geom_abline(intercept= coef (model)[1], slope= coef (model)[2]) + geom_smooth(method=" lm ", se= F )
A linha preta apresenta a linha de regressão quantílica ajustada para o percentil 90 e a linha azul apresenta a linha de regressão linear simples, que estima o valor médio da variável resposta.
Como esperado, a linha de regressão linear simples percorre os dados e nos mostra o valor médio estimado das notas dos exames em cada nível de hora.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como realizar regressão linear simples em R
Como realizar regressão linear múltipla em R
Como realizar regressão quadrática em R