Pular para o conteúdo principal
Documentos
Compartir
LinkedIn
Facebook
Twitter
Copy
Gerenciamento de dados em REntrada de dados em RGráficos em RDocumentação RInterface REstatísticas em R

Análise de função discriminante no R

O pacote MASS contém funções para realizar análises de funções discriminantes lineares e quadráticas. A menos que as probabilidades anteriores sejam especificadas, cada uma assume probabilidades anteriores proporcionais (ou seja, as probabilidades anteriores são baseadas nos tamanhos das amostras). Nos exemplos abaixo, as letras minúsculas são variáveis numéricas e as letras maiúsculas são fatores categóricos.

Função discriminante linear

# Linear Discriminant Analysis with Jacknifed Prediction

library(MASS)
fit <- lda(G ~ x1 + x2 + x3, data=mydata,
   na.action="na.omit", CV=TRUE)
fit # show results

O código acima executa um LDA, usando a exclusão de dados ausentes em listas. CV=TRUE gera previsões jacknifed (ou seja, deixa um de fora). O código abaixo avalia a precisão da previsão.

# Assess the accuracy of the prediction
# percent correct for each category of G
ct <- table(mydata$G, fit$class)
diag(prop.table(ct, 1))
# total percent correct
sum(diag(prop.table(ct)))

lda() imprime funções discriminantes com base em variáveis centralizadas (não padronizadas). A "proporção de traço" impressa é a proporção da variação entre classes que é explicada por funções discriminantes sucessivas. Não são produzidos testes de significância. Consulte a seção sobre MANOVA para obter informações sobre esses testes.

Função discriminante quadrática

Para obter uma função discriminante quadrática, use qda( ) em vez de lda( ). A função discriminante quadrática não pressupõe a homogeneidade das matrizes de variância-covariância.

# Quadratic Discriminant Analysis with 3 groups applying
#
resubstitution prediction and equal prior probabilities.
library(MASS)
fit <- qda(G ~ x1 + x2 + x3 + x4, data=na.omit(mydata),
  prior=c(1,1,1)/3))

Observe a maneira alternativa de especificar a exclusão em lista dos dados ausentes. A ressubstituição (usando os mesmos dados para derivar as funções e avaliar sua precisão de previsão) é o método padrão, a menos que CV=TRUE seja especificado. A re-substituição será excessivamente otimista.

Visualizando os resultados

Você pode plotar cada observação no espaço das duas primeiras funções discriminantes lineares usando o código a seguir. Os pontos são identificados com o ID do grupo.

# Scatter plot using the 1st two discriminant dimensions
plot(fit) # fit from lda

Gráfico discriminante linear de pontos

O código a seguir exibe histogramas e gráficos de densidade para as observações em cada grupo na primeira dimensão discriminante linear. Há um painel para cada grupo e todos eles aparecem alinhados no mesmo gráfico.

# Panels of histograms and overlayed density plots
# for 1st discriminant function
plot(fit, dimen=1, type="both") # fit from lda

histograma de lda/gráfico de densidade

A função partimat( ) do pacote klaR pode exibir os resultados de uma classificação linear ou quadrática de 2 variáveis por vez.

# Exploratory Graph for LDA or QDA
library(klaR)
partimat(G~x1+x2+x3,data=mydata,method="lda")

gráfico partimat

Você também pode produzir uma matriz de gráfico de dispersão com codificação de cores por grupo.

# Scatterplot for 3 Group Problem
pairs(mydata[c("x1","x2","x3")], main="My Title ", pch=22,
   bg=c("red", "yellow", "blue")[unclass(mydata$G)])

scatterplot matrix

Premissas do teste

Consulte Pressupostos da (M)ANOVA para obtermétodos de avaliação da normalidade multivariada e da homogeneidade das matrizes de covariância.

Para praticar

Para praticar o aprimoramento das previsões, experimente o curso Aprendizado supervisionado em R</a >