Primero de todo, yo no sé nada acerca de Stein-Haff estimador distinto a lo que yo vi desde un par de segundos de búsqueda en Google en https://stat.duke.edu/~berger/papers/yang.pdf , que contiene la cita: "Este estimador tiene dos problemas. En primer lugar, la forma intuitiva compatible con el pedido de $\phi_1 \geq \phi_2 \geq \dots \geq \phi_p$ es frecuentemente violado. Segundo, y más grave, algunas de las $\phi_i$ incluso puede ser negativo. Stein sugiere un isotonizing algoritmo para evitar estos problemas. ... Los detalles de este isotonizing algoritmo se puede encontrar en Lin y Perlman (1985)".
Que referencia es: LIN, S. P. y PERLMAN,M. D. (1985). Monte Carlo comparación de los cuatro estimadores para una matriz de covarianza. En el Análisis Multivariante 6 (P. R. Krishnaiah, ed.) 411-429. North-Holland, Amsterdam.
Sin embargo, yo sé acerca de la optimización. Isotonizing restricciones pueden ser colocados en un problema de mínimos cuadrados, lo que lo convierte en un (linealmente restringida) convexa de Programación Cuadrática (QP) problema, que es fácil de formular y resolver numéricamente usando fuera de la plataforma de software. Si una L^1 norma se utiliza para la regresión, o incluso un L^1 pena de ser añadido a un L^2 objetivo, que es todavía un QP convexos. En el caso en el que el objetivo es únicamente L^1, que en realidad podría ser un problema de Programación Lineal (LP) problema, que es un caso especial de un QP convexos.
Como para el negativo autovalores, suponiendo que los que todavía son posibles después de la adición de la isotonizing restricciones, que pueden ser tratados mediante la imposición de un semidefinite restricción en la matriz de covarianza. I. e., imponer la restricción de que el mínimo autovalor $\geq 0$. En realidad se podría establecer un mínimo autovalor valor distinto de 0 si así lo desea, y usted tendría que hacer esto si desea asegurarse de que la matriz de covarianza es nonsingular como parecen sugerir es deseada o requerida. Además de este semidefinite restricción vueltas todo el problema de optimización en un convexo semidefinite programa (SDP), o técnicamente, algo convertible en ella.
Formular y resolver numéricamente un convexo SDP, es decir, el objetivo en su elección de la norma (L^p para cualquier $p \geq 1$), además de cualquier objetivo de la pena en su elección de la norma $(p \geq 1)$ que no tiene por qué ser la misma que la otra norma, además de isotonizing (lineal) las restricciones, además de semi-definida restricción, es MUY fácil y sencillo de usar una herramienta como CVX http://cvxr.com/cvx/ . Esto debe ser muy rápido de ejecutar, a menos que la dimensión de la matriz de covarianza (lo que se llama p, no se lo que me llama p) en los miles o más. YALMIP http://users.isy.liu.se/johanl/yalmip/ se podría utilizar en lugar de CVX (que sólo permite la formulación y solución de problemas de optimización convexa, excepto opcional para la especificación de número entero restricciones). YALMIP permite una mayor elección de la optimización de solucionadores de problemas y un mayor rango de problemas (no convexa) que pueden ser formulados y resueltos de CVX, pero tiene una empinada curva de aprendizaje.