[R-br] Regressão por mínimos quadrados parciais para dados categóricos
ASANTOS
alexandresantosbr em yahoo.com.br
Quinta Julho 10 14:59:50 BRT 2014
Boa tarde pessoal,
Estou estudando o ajuste de regressões por mínimos quadrados
parciais (PLSR) para dados categóricos, usando o pacote psl. Me deparei
com um problema de predição, se tenho os níveis de "infestado",
representado por 1 e "sadio" representado por 0, como os valores de
predição não são inteiros, posso utilizar round para saber a qual nível
pertente um novo conjunto de variáveis resposta testados?
Segue CRM:
require(pls)
#Dados artificiais
T<-as.factor(sort(rep(c("infestado", "sadio"), 100)))
y1 <- c(rnorm(100,1,0.1),rnorm(100,1,0.1))
y2 <- c(rnorm(100,10,0.3),rnorm(100,10,0.6))
y3 <- c(rnorm(100,10,2.3),rnorm(100,11,2.6))
y4 <- c(rnorm(100,5,0.5),rnorm(100,7,0.5))
y5 <- c(rnorm(100,0,0.1),rnorm(100,0,0.1))
#Cria o data frame
avaliacao <- as.numeric(T)
espectro <- cbind(y1,y2,y3,y4,y5)
dados <- data.frame(avaliacao = I(as.matrix(avaliacao)), bands =
I(as.matrix(espectro)))
#Ajuste da regressão
taumato <- plsr(avaliacao ~ bands, ncomp = 5, validation = "LOO",
data=dados)
summary(taumato)
#Gráfico de componentes
plot(taumato, plottype = "scores", comps = 1:5)
#Vaidação cruzada
taumato.cv <- crossval(taumato, segments = 10)
plot(MSEP(taumato.cv), legendpos = "topright")
summary(taumato.cv, what = "validation")
plot(taumato, xlab ="medição", ylab="predição", ncomp = 3, asp = 1,
main=" ", line = TRUE)
#Predição para 3 componentes principais
T<-as.factor(sort(rep(c("infestado", "sadio"), 50)))
y1 <- c(rnorm(100,1,0.1),rnorm(100,1,0.1))
y2 <- c(rnorm(100,10,0.3),rnorm(100,10,0.6))
y3 <- c(rnorm(100,10,2.3),rnorm(100,11,2.6))
y4 <- c(rnorm(100,5,0.5),rnorm(100,7,0.5))
y5 <- c(rnorm(100,0,0.1),rnorm(100,0,0.1))
espectro2 <- cbind(y1,y2,y3,y4,y5)
new.dados <- data.frame(bands = I(as.matrix(espectro2)))
round(predict(taumato, ncomp = 3, newdata = new.dados))##Arredondando
para ver a qual nível pertence
Obrigado,
--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
======================================================================
Mais detalhes sobre a lista de discussão R-br