Como usar a função predict() com lm() em r


A função lm() em R pode ser usada para ajustar modelos de regressão linear.

Depois de ajustarmos um modelo, podemos usar a função predizer() para prever o valor da resposta de uma nova observação .

Esta função usa a seguinte sintaxe:

prever (objeto, novos dados, tipo = “resposta”)

Ouro:

  • objeto: O nome do ajuste do modelo usando a função glm()
  • newdata: O nome do novo quadro de dados para fazer previsões
  • type: O tipo de previsão a ser feita.

O exemplo a seguir mostra como usar a função lm() para ajustar um modelo de regressão linear em R e, em seguida, como usar a função predizer() para prever o valor de resposta de uma nova observação que o modelo nunca viu antes.

Exemplo: Usando a função Predict() com lm() em R

Suponha que temos o seguinte quadro de dados em R que contém informações sobre vários jogadores de basquete:

 #create data frame
df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40),
                 fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1),
                 points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30))

#view data frame
df

   minutes fouls points
1 5 5 6
2 10 5 8
3 13 3 8
4 14 4 7
5 20 2 14
6 22 1 10
7 26 3 22
8 34 2 24
9 38 1 28
10 40 1 30

Suponha que queiramos aplicar o seguinte modelo de regressão linear múltipla usando minutos jogados e total de faltas para prever o número de pontos marcados por cada jogador:

pontos = β 0 + β 1 (minutos) + β 2 (faltas)

Podemos usar a função lm() para adaptar este modelo:

 #fit multiple linear regression model
fit <- lm(points ~ minutes + fouls, data=df)

#view summary of model
summary(fit)

Call:
lm(formula = points ~ minutes + fouls, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-3.5241 -1.4782 0.5918 1.6073 2.0889 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -11.8949 4.5375 -2.621 0.0343 *  
minutes 0.9774 0.1086 9.000 4.26e-05 ***
fouls 2.1838 0.8398 2.600 0.0354 *  
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.148 on 7 degrees of freedom
Multiple R-squared: 0.959, Adjusted R-squared: 0.9473 
F-statistic: 81.93 on 2 and 7 DF, p-value: 1.392e-05

Usando os coeficientes dos resultados do modelo, podemos escrever a equação de regressão ajustada:

pontos = -11,8949 + 0,9774 (minutos) + 2,1838 (faltas)

Podemos então usar a função prever() para prever quantos pontos um jogador que jogar por 15 minutos e cometer 3 faltas no total irá marcar:

 #define new observation
newdata = data. frame (minutes=15, fouls=3)

#use model to predict points value
predict(fit, newdata)

       1 
9.317731

O modelo prevê que este jogador marcará 9,317731 pontos.

Observe que também podemos fazer várias previsões ao mesmo tempo se tivermos um quadro de dados contendo várias novas observações.

Por exemplo, o código a seguir mostra como usar o modelo de regressão ajustado para prever os valores dos pontos de três jogadores:

 #define new data frame of three cars
newdata = data. frame (minutes=c(15, 20, 25),
                     fouls=c(3, 2, 1))

#view data frame
newdata

  minutes fouls
1 15 3
2 20 2
3 25 1

#use model to predict points for all three players
predict(model, newdata)

        1 2 3 
 9.317731 12.021032 14.724334 

Veja como interpretar o resultado:

  • O número esperado de pontos para o jogador com 15 minutos e 3 faltas é de 9,32 .
  • O número esperado de pontos para o jogador com 20 minutos e 2 faltas é 12,02 .
  • Os pontos esperados para o jogador com 25 minutos e 1 falta são 14,72 .

Notas sobre o uso de predizer()

Os nomes das colunas no novo quadro de dados devem corresponder exatamente aos nomes das colunas no quadro de dados que foram usados para criar o modelo.

Observe que em nosso exemplo anterior, o quadro de dados que usamos para criar o modelo continha os seguintes nomes de colunas para nossas variáveis preditoras:

  • minutos
  • erros

Portanto, quando criamos o novo quadro de dados chamado newdata, também nomeamos as colunas:

  • minutos
  • erros

Se os nomes das colunas não corresponderem, você receberá a seguinte mensagem de erro :

 Error in eval(predvars, data, env)

Tenha isso em mente ao usar a função prever() .

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 polinomial em R
Como criar um intervalo de previsão em R

Add a Comment

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