Eu vi em um tutorial sobre modelagem de regressão o seguinte comando:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
O que exatamente esse comando faz e qual é o papel de ~
(til) no comando?
Eu vi em um tutorial sobre modelagem de regressão o seguinte comando:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
O que exatamente esse comando faz e qual é o papel de ~
(til) no comando?
Respostas:
A coisa à direita de <-
é um formula
objeto. É freqüentemente usado para denotar um modelo estatístico, onde a coisa à esquerda da ~
é a resposta e as coisas à direita da ~
são as variáveis explicativas. Então, em inglês, você diria algo como "A espécie depende do comprimento da sépala, largura da sépala, comprimento da pétala e largura da pétala" .
A myFormula <-
parte dessa linha armazena a fórmula em um objeto chamado myFormula
para que você possa usá-la em outras partes do seu código R.
Outros usos comuns de objetos de fórmula em R
O lattice
pacote as utiliza para especificar as variáveis a serem plotadas .
O ggplot2
pacote os utiliza para especificar painéis para plotagem .
O dplyr
pacote os utiliza para avaliação não padrão .
lazyeval
vinheta dá uma boa introdução para o que a fórmula é
R define um ~
operador (til) para uso em fórmulas. As fórmulas têm todos os tipos de usos, mas talvez o mais comum seja para regressão:
library(datasets)
lm( myFormula, data=iris)
help("~")
ou help("formula")
vai te ensinar mais.
@ Spacedman cobriu o básico. Vamos discutir como isso funciona.
Primeiro, sendo um operador, observe que é essencialmente um atalho para uma função (com dois argumentos):
> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs
Isso pode ser útil saber para uso em, por exemplo, apply
comandos de família.
Segundo, você pode manipular a fórmula como texto :
oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )
Terceiro, você pode manipulá-lo como uma lista :
myFormula[[2]]
myFormula[[3]]
Finalmente, existem alguns truques úteis com fórmulas (veja help("formula")
mais):
myFormula <- Species ~ .
Por exemplo, a versão acima é igual à versão original, pois o ponto significa "todas as variáveis ainda não utilizadas". Isso examina o data.frame que você usa em sua eventual chamada de modelo, vê quais variáveis existem no data.frame, mas não são explicitamente mencionadas na sua fórmula e substitui o ponto pelas variáveis ausentes.
Species~.
, espécie é a única variável que foi usada. Portanto, depende de todas as outras variáveis no data.frame.
myFormula <- Species ~ .
. Quando dot ainda é substituído por variáveis de data.frame? Você poderia dar um exemplo