Una forma de garantizar esto es asegurarse de haber codificado todas las cosas que hace para adaptarse al modelo, incluso "retoques". De esta manera, cuando ejecuta el proceso repetidamente, por ejemplo, mediante validación cruzada, mantiene las cosas coherentes entre las ejecuciones. Esto asegura que todas las posibles fuentes de variación sean capturadas por el proceso de validación cruzada.
La otra cosa de vital importancia es asegurarse de tener una muestra representativa en ambos conjuntos de datos. Si su conjunto de datos no es representativo del tipo de datos que espera utilizar para predecir, entonces no hay mucho que pueda hacer. Todos los modelos se basan en la suposición de que la "inducción" funciona: las cosas que no hemos observado se comportan como las que hemos observado.
Como regla general, manténgase alejado de los procedimientos de ajuste de modelos complejos a menos que (i) sepa lo que está haciendo y (ii) haya probado los métodos más simples y descubra que no funcionan y cómo el método complejo soluciona problemas con el método simple "Simple" y "complejo" significan en el sentido de "simple" o "complejo" para la persona que hace la adaptación. La razón por la que esto es tan importante es que le permite aplicar lo que me gusta llamar una "prueba de detección" a los resultados. ¿El resultado se ve bien? No puede "oler" los resultados de un procedimiento que no comprende.
NOTA: la siguiente parte, bastante larga, de mi respuesta se basa en mi experiencia, que se encuentra en el área , con posiblemente grande. Estoy casi seguro de que lo que sigue a continuación no se aplicaría a los casos oN>>p p N≈p N<p
Cuando tiene una muestra grande, la diferencia entre usar y no usar una observación dada es muy pequeña, siempre que su modelado no sea demasiado "local". Esto se debe a que la influencia de un punto de datos dado es generalmente del orden de . Por lo tanto, en conjuntos de datos grandes, los residuos que se obtienen al "mantener" el conjunto de datos de prueba son básicamente los mismos que los residuos que se obtienen al usarlo en el conjunto de datos de entrenamiento. Puedes mostrar esto usando mínimos cuadrados ordinarios. El residuo que obtiene al excluir la ésima observación (es decir, cuál sería el error del conjunto de prueba si colocamos la observación en el conjunto de prueba) es , donde es el residuo de entrenamiento, y1Nietesti=(1−hii)−1etrainietrainihiies el apalancamiento del punto de datos . Ahora tenemos que , donde es el número de variables en la regresión. Ahora si , entonces es extremadamente difícil para cualquier ser lo suficientemente grande como para hacer una diferencia apreciable entre el conjunto de prueba y los errores del conjunto de entrenamiento. Podemos tomar un ejemplo simplificado, supongamos que (intersección y variable), matriz de diseño es (conjuntos de entrenamiento y prueba), y el apalancamiento esi∑ihii=ppN>>phiip=21N×pX
hii=xTi(XTX)−1xi=1Ns2x(1xi)(x2¯¯¯¯¯−x¯¯¯−x¯¯¯1)(1xi)=1+x~2iN
Donde , y . Finalmente, es la variable predictiva estandarizada, y mide cuántas desviaciones estándar es de la media. Por lo tanto, sabemos desde el principio que el error del conjunto de prueba será mucho mayor que el error del conjunto de entrenamiento para las observaciones "en el borde" del conjunto de entrenamiento. Pero esto es básicamente ese problema representativo nuevamente: las observaciones "en el borde" son menos representativas que las observaciones "en el medio". Además, esto es para ordenar . Entonces, si tienes observaciones, incluso six¯¯¯=N−1∑ixix2¯¯¯¯¯=N−1∑ix2is2x=x2¯¯¯¯¯−x¯¯¯2x~i=xi−x¯¯¯sxxi1N100x~i=5 (un valor atípico en el espacio x según la mayoría de las definiciones), esto significa , y el error de prueba se subestima por un factor de solo . Si tiene un conjunto de datos grande, digamos , es aún más pequeño, , que es menor que . De hecho, para observaciones, necesitaría una observación de para hacer una del error del conjunto de prueba, utilizando el error del conjunto de entrenamiento.hii=261001−26100=74100100001−26100001%10000x~=5025%
Entonces, para grandes conjuntos de datos, el uso de un conjunto de pruebas no solo es ineficiente, sino que también es innecesario, siempre que . Esto aplica para OLS y también aplica aproximadamente para GLM (los detalles son diferentes para GLM, pero la conclusión general es la misma). En más de dimensiones, los "valores atípicos" están definidos por las observaciones con puntajes grandes de "componente principal". Esto se puede mostrar escribiendo Donde es la matriz de vectores propios (ortogonales) para , con matriz de valores propios . Obtenemos dondeN>>p2hii=xTiEET(XTX)−1EETxiEXTXΛhii=zTiΛ−1zi=∑pj=1z2jiΛjjzi=ETxies el puntaje del componente principal para .xi
Si su conjunto de prueba tiene observaciones, obtendrá una versión matricial , donde y son las filas de la matriz de diseño en el conjunto de prueba. Entonces, para la regresión OLS, ya sabe cuáles habrían sido los errores del "conjunto de prueba" para todas las posibles divisiones de los datos en conjuntos de entrenamiento y prueba. En este caso ( ), no hay necesidad de dividir los datos en absoluto. Puede informar los errores del conjunto de pruebas "mejor caso" y "peor caso" de casi cualquier tamaño sin tener que dividir los datos. Esto puede ahorrarle mucho tiempo y recursos a la PC.ketest{k}=(Ik−H{k})−1etrain{k}H{k}=X{k}(XTX)−1XT{k}X{k}N>>p
Básicamente, todo esto se reduce al uso de un término de penalización, para tener en cuenta la diferencia entre errores de entrenamiento y prueba, como BIC o AIC. Esto logra efectivamente el mismo resultado que lo que hace el uso de un conjunto de prueba, sin embargo, no está obligado a tirar información potencialmente útil. Con el BIC, está aproximando la evidencia para el modelo, que se ve matemáticamente como:
p(D|MiI)=p(y1y2…yN|MiI)
Tenga en cuenta que en este procedimiento, no podemos estimar ningún parámetro interno: cada modelo debe especificarse completamente o tener sus parámetros internos integrados. Sin embargo, podemos hacer que esto parezca validación cruzada (usando una función de pérdida específica) usando repetidamente la regla del producto y luego tomando el registro del resultado:Mi
p(D|MiI)=p(y1|MiI)p(y2…yN|y1MiI)
=p(y1|MiI)p(y2|y1MiI)p(y3…yN|y1y2MiI)
=⋯=∏i=1Np(yi|y1…yi−1MiI)
⟹log[p(D|MiI)]=∑i=1Nlog[p(yi|y1…yi−1MiI)]
Esto sugiere una forma de validación cruzada, pero cuando el conjunto de entrenamiento se actualiza constantemente, una observación a la vez desde el conjunto de prueba, similar al filtro de Kalman. Predecimos la siguiente observación del conjunto de prueba usando el conjunto de entrenamiento actual, medimos la desviación del valor observado usando la probabilidad de registro condicional y luego actualizamos el conjunto de entrenamiento para incluir la nueva observación. Pero tenga en cuenta que este procedimiento digiere completamente todos los datos disponibles, al tiempo que se asegura de que cada observación se pruebe como un caso "fuera de muestra". También es invariante, ya que no importa lo que llames "observación 1" u "observación 10"; el resultado es el mismo (los cálculos pueden ser más fáciles para algunas permutaciones que para otras). La función de pérdida también es "adaptativa" en que si definimos L iLi=log[p(yi|y1…yi−1MiI)] , entonces la nitidez de depende de , porque la función de pérdida se actualiza constantemente con nuevos datos.Lii
Sugeriría que evaluar modelos predictivos de esta manera funcionaría bastante bien.