R - Problemas para predecir valores

 
Vista:

Problemas para predecir valores

Publicado por sebastian (1 intervención) el 10/08/2021 21:40:03
Estimada Comunidad

Estoy generando un modelo de regresión con el metodo PLS, con una partición de datos para el entrenamiento, el problema es que al obtener los datos predichos estos me aparecen como NULL nose si me faltara algo.

Copio el Scritp para ver si me pueden ayudar a detectar el error

## Cargar libreria

library(lattice)
library(ggplot2)
library(caret)


## Cargar Datos del Modelo

setwd("E:/06.Diplomado_Geomatica/Modulo_10_RAvanzado/Práctico Módolo X") ## Se debe de cambiar el directorio de trabajo

data <- read.csv('Monteoscuro_practico.csv')


## Dividir Datos

idx2 <- createDataPartition(data$Biomasa, p = 0.6, list = F)
length(idx2)

# particionar los datos usando los datos generados
entrenar2 <- data[idx2, ]
validar2 <- data[-idx2, ]

nrow(entrenar2)+nrow(validar2) == nrow(data)

#Metodo Train
# definir las variables independientes (X) y la dependiente (Y)
X <- data[, 4:20]
Y <- data$Biomasa

# usar la función trainControl() para definir el típo de validación corzada
# K-fold (method = 'cv') con k = 10 (number = 10)
tr_control <- trainControl(method = 'cv', number = 10)

### Metodo PLS


PLS <- train(X, Y, method = "pls", tuneLength=17, trControl = tr_control,
preProcess = c("center", "scale"), metric = "RMSE")
# Segun el modelo, el mejor valor para ncomp es 9.
# podemos ver resultados de varios índices de ajuste para cada modelo PLS
PLS$results

# Valores observados y predichos en todas las repeticiones del modelo
pred_data_pls <-PLS$predict
# podemos seleccionar solo los valores del mejor modelo; ncomp = 13
idx2 <- which(pred_data_pls$ncomp == 13)
# seleccionar en los datos
pred_data_pls <- pred_data_pls[idx2,]

# plot de predichos vs observados
plot(pred_data_pls$obs, pred_data_pls$pred, xlab='Observados', ylab='Predichos', main='PLS',
xlim=c(0,350), ylim=c(0,350))
abline(0,1)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder