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