[R-es] Manejo de valores perdidos usando predict con CHAID

Oscar Benitez oscar.benitez1962 en gmail.com
Mar Jul 14 21:22:09 CEST 2015


Hola
Estoy tratando de aplicar probabilidades mediante predict a una base de
prueba y no consigo manejar los valores perdidos.

No tengo problemas en la generación de las probabilidades, el comando es:

#genera las probabilidades en prueba
prob.P.T1 <- predict(chaid2.T1, pruebaT1, type="prob")

El data frame 'pruebaT1' tiene 33527 registros
La matriz 'prob.P.T1' tiene 66724 elementos, o sea 33362 registros. Esto me
dice que hay algunos casos para los cuales no fué capaz de establecer la
probabilidad. Esperaba esa situación.

El problema es cuando trato de unir las probabilidades desde la matriz al
data frame. El comando:

pruebaT1$prob.T1<-prob.P.T1[,2]

Me da el siguiente error

Error in `$<-.data.frame`(`*tmp*`, "prob.T1", value = c(0.42910447761194,
 :
  replacement has 33362 rows, data has 33527


El comando

prueba.T1<-merge(pruebaT1, prob.P.T1[,2],by="row.names",
                    all.x = TRUE)

No da error, pero no estoy seguro que la unión por el número de fila sea
correcto. Estuve inspeccionando la matriz resultante del predict y no veo
saltos en la numeración de las filas....

Para poner un ejemplo,

Digamos que en mi dataframe 'pruebaT1´tengo lo siguiente

  RowN Var1 Var2  1 a 1  2 b 2  3 a 3  4 b 4  5 a 1  6 b
 7 a 3  8 b 4  9 a 1  10 b 2

Cuando aplico la función predict a estos datos obtengo solamente 9 filas,
lo cual es correcto. Pero cuando las veo con el comando:

view(prob.T1)

las filas están numeradas de 1 a 9...

Eso me lleva a preguntarme si el comando merge es el mejor para estos
casos....

Para que quede claro, lo que quiero que ocurra es lo siguiente:

  RowN Var1 Var2 prob.T1  1 a 1 0.03  2 b 2 0.05  3 a 3 0.06  4 b 4 0.03  5
a 1 0.05  6 b
NA  7 a 3 0.03  8 b 4 0.03  9 a 1 0.05  10 b 2 0.06

Y no encuentro la manera de hacerlo.

Cualquier sugerencia es bienvenida.
Gracias de antemano,
Oscar

-- 
Oscar Benitez

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es