He estado usando Matlab para realizar mínimos cuadrados sin restricciones (mínimos cuadrados ordinarios) y genera automáticamente los coeficientes, el estadístico de prueba y los valores p.
Mi pregunta es, al realizar mínimos cuadrados restringidos (coeficientes estrictamente no negativos), solo genera los coeficientes, SIN estadísticas de prueba, valores p.
¿Es posible calcular estos valores para garantizar la importancia? ¿Y por qué no está directamente disponible en el software (o cualquier otro software para el caso?)
Respuestas:
La resolución de mínimos cuadrados no negativos (NNLS) se basa en un algoritmo que lo hace diferente de los mínimos cuadrados regulares.
Expresión algebraica para error estándar (no funciona)
Con mínimos cuadrados regulares, puede expresar valores p utilizando una prueba t en combinación con estimaciones de la varianza de los coeficientes.
Esta expresión para la varianza muestral de la estimación de los coeficientes es La varianza de los errores generalmente será desconocida pero se puede estimar usando los residuos. Esta expresión puede derivarse algebraicamente a partir de la expresión de los coeficientes en términos de las medidasθ^ Va r ( θ^) = σ2( XTX)- 1 σ y
Esto implica / supone que el puede ser negativo, por lo que se descompone cuando los coeficientes están restringidos.θ
Inverso de la matriz de información de Fisher (no aplicable)
La varianza / distribución de la estimación de los coeficientes también se aproxima asintóticamente a la matriz de información de Fisher observada :
Pero no estoy seguro de si esto se aplica bien aquí. La estimación de NNLS no es una estimación imparcial.
Método Monte Carlo
Cada vez que las expresiones se vuelven demasiado complicadas, puede usar un método computacional para estimar el error. Con el Método Monte Carlo , simula la distribución de la aleatoriedad del experimento simulando repeticiones del experimento (recalculando / modelando nuevos datos) y, a partir de esto, calcula la varianza de los coeficientes.
Lo que podría hacer es tomar las estimaciones observadas de los coeficientes del modelo y la varianza residual y, basándose en este cálculo de datos nuevos (un par de miles de repeticiones, pero depende de la precisión que desee) de la cual puede observar la distribución (y la variación y derivar de esto la estimación del error) para los coeficientes. (y hay esquemas más complicados para realizar este modelado)θ^ sigmaσ^
fuente
Si estaría de acuerdo con RI, creo que también podría usar
bbmle
lamle2
función 's para optimizar la función de probabilidad de mínimos cuadrados y calcular intervalos de confianza del 95% en los coeficientes nnls no negativos. Además, puede tener en cuenta que sus coeficientes no pueden ser negativos al optimizar el registro de sus coeficientes, de modo que en una escala de transformación inversa nunca puedan volverse negativos.Aquí hay un ejemplo numérico que ilustra este enfoque, aquí en el contexto de desconvolucionar una superposición de picos cromatográficos en forma de gauss con ruido gaussiano sobre ellos: (cualquier comentario es bienvenido)
Primero simulemos algunos datos:
Deconvolucionemos ahora la señal ruidosa medida
y
con una matriz con bandas que contiene una copia desplazada del núcleo de desenfoque en forma gaussiana conocidobM
(esta es nuestra matriz de covariable / diseño).Primero, desconvolucione la señal con mínimos cuadrados no negativos:
Ahora optimicemos la probabilidad logarítmica negativa de nuestro objetivo de pérdida gaussiana, y optimicemos el registro de sus coeficientes para que en una escala de transformación inversa nunca puedan ser negativos:
No he tratado de comparar el rendimiento de este método en relación con el arranque no paramétrico o paramétrico, pero seguramente es mucho más rápido.
También me sentí inclinado a pensar que debería poder calcular los intervalos de confianza de Wald para los
nnls
coeficientes no negativos basados en la matriz de información de Fisher observada, calculada en una escala de coeficiente transformada logarítmica para hacer cumplir las restricciones de no negatividad y evaluada en lasnnls
estimaciones.Creo que esto es así, y de hecho debería ser formalmente idéntico a lo que hice
mle2
anteriormente:Los resultados de estos cálculos y los devueltos
mle2
son casi idénticos (pero mucho más rápidos), por lo que creo que esto es correcto, y correspondería a lo que estábamos haciendo implícitamente conmle2
...Simplemente reajustar las covariables con coeficientes positivos en un
nnls
ajuste utilizando un ajuste de modelo lineal regular, por cierto, no funciona, ya que dicho ajuste de modelo lineal no tendría en cuenta las restricciones de no negatividad y, por lo tanto, daría lugar a intervalos de confianza sin sentido que podrían ser negativos. Este documento, "Inferencia exacta de selección posterior al modelo para detección marginal" de Jason Lee y Jonathan Taylor, también presenta un método para hacer inferencia posterior a la selección del modelo en coeficientes nnls no negativos (o LASSO) y utiliza distribuciones gaussianas truncadas para eso. Sin embargo, no he visto ninguna implementación abiertamente disponible de este método para ajustes nnls: para los ajustes LASSO existe la Inferencia selectivapaquete que hace algo así. Si alguien tuviera una implementación, ¡hágamelo saber!En el método anterior, uno también podría dividir los datos en un conjunto de entrenamiento y validación (por ejemplo, observaciones pares e impares) e inferir las covariables con coeficientes positivos del conjunto de entrenamiento y luego calcular los intervalos de confianza y los valores p del conjunto de validación. Eso sería un poco más resistente contra el sobreajuste, aunque también causaría una pérdida de potencia, ya que solo se usaría la mitad de los datos. No lo hice aquí porque la restricción de no negatividad en sí misma ya es bastante efectiva para evitar el sobreajuste.
fuente
Para ser más específico con respecto al método de Monte Carlo @Martijn referido, puede usar Bootstrap, un método de remuestreo que implica el muestreo de los conjuntos de datos múltiples de datos originales (con reemplazo) para estimar la distribución de los coeficientes estimados y, por lo tanto, cualquier estadística relacionada, incluyendo intervalos de confianza y valores p.
El método ampliamente utilizado se detalla aquí: Efron, Bradley. "Métodos Bootstrap: otra mirada a la navaja". Avances en estadísticas. Springer, Nueva York, NY, 1992. 569-593.
Matlab lo ha implementado, consulte https://www.mathworks.com/help/stats/bootstrp.html, particularmente la sección titulada Bootstrapping a Regression Model.
fuente