Guía paso a paso para aplicar PLSpredict en Python
Esta guía explica cómo aplicar PLSpredict en Python usando los datos originales del
cuestionario, incluyendo el ítem PPCA como único indicador del constructo PCA. El objetivo
es evaluar el poder predictivo del modelo PLS-SEM replicando el enfoque propuesto por
Hair et al. y Shmueli et al.
Paso 1: Preparar los datos
- Reúne la matriz de datos original del cuestionario.
- Incluye todos los ítems observados que forman los constructos (PSE, SQ, CS, DH, etc.).
- Incluye el ítem PPCA, que representa el constructo dependiente PCA.
- Incluye variables de segmentación si vas a comparar grupos (por ejemplo, sexo, hábito de
ahorro).
- Formato recomendado: archivo .csv o .xlsx con columnas para cada ítem y filas para cada
participante.
Paso 2: Cargar los datos en Python
Usa pandas para leer el archivo:
import pandas as pd
data = pd.read_csv('tus_datos.csv') # o
pd.read_excel('tus_datos.xlsx')
Paso 3: Separar variables predictoras y variable dependiente
X: todos los ítems que forman los constructos independientes (PSE, SQ, CS, DH).
Y: el ítem PPCA, que representa el constructo dependiente PCA.
X = data[['PSE1', 'PSE2', 'SQ1', 'CS1', 'DH1', ...]]
Y = data['PPCA']
Paso 4: Entrenar el modelo PLS
Usa PLSRegression de scikit-learn:
from sklearn.cross_decomposition import PLSRegression
pls = PLSRegression(n_components=2)
[Link](X, Y)
Paso 5: Validación cruzada y predicción
Divide los datos en entrenamiento y prueba:
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2,
random_state=42)
[Link](X_train, Y_train)
Y_pred = [Link](X_test)
Paso 6: Calcular métricas de error
Evalúa el poder predictivo del modelo:
from [Link] import mean_squared_error,
mean_absolute_error
rmse = mean_squared_error(Y_test, Y_pred, squared=False)
mae = mean_absolute_error(Y_test, Y_pred)
print(f'RMSE: {rmse}')
print(f'MAE: {mae}')
Paso 7: Comparar con regresión lineal múltiple
Entrena un modelo benchmark y compara los errores:
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
[Link](X_train, Y_train)
Y_pred_lr = [Link](X_test)
rmse_lr = mean_squared_error(Y_test, Y_pred_lr, squared=False)
mae_lr = mean_absolute_error(Y_test, Y_pred_lr)
print(f'RMSE (Regresión Lineal): {rmse_lr}')
print(f'MAE (Regresión Lineal): {mae_lr}')
Paso 8: Interpretar resultados
- Si el RMSE y MAE del modelo PLS son menores o iguales a los del benchmark, el modelo
tiene buen poder predictivo.
- Si son mayores, el modelo tiene bajo poder predictivo.
Paso 9 (Opcional): Comparar por grupos
Si ya validaste la invarianza con MICOM, puedes repetir los pasos anteriores por grupo (por
ejemplo, hombres ahorradores vs. mujeres ahorradoras).