6

Estoy ajustando algunos datos con un ajuste lineal. Quiero ponderar las barras de error. Hasta este punto, he estado usando bulldogs fitting.py. Su linear_fit hace que las regresiones lineales ponderadas sean muy sencillas. Lamentablemente, los datos con los que estoy trabajando tienen errores en las direcciones X e Y.Ajuste lineal de Python con barras de error múltiples

Me preguntaba cómo, tanto en la práctica (en Python) y teóricamente (en términos estadísticos), esto se haría.

+2

Teóricamente, esto es [Mínimos cuadrados totales] (http://en.wikipedia.org/wiki/Total_least_squares) - llamada [Regresión de Deming] (http://en.wikipedia.org/wiki/Deming_regression) en el caso de 2 variables. – tiwo

Respuesta

3

Hay un par de opciones:

  1. scipy.optimize.leastsq (para el total least squares)
  2. scipy.odr (para Deming regression).

Ambas soluciones darán cuenta de un error independiente en las direcciones X e Y (la matriz scld en odr).

+1

¿cómo leastsq toma los errores en la dirección xey? No puedo encontrar los parámetros. – sauerburger

+0

es ese xtol? Perdón, realmente debería mejorar esta respuesta para tener un ejemplo. –

+0

creo que xtol es solo un pequeño valor para determinar cuándo detener el algo. supongo que solo funciona con scipy.odr. – sauerburger

0

Puede usar la función scipy.optimize.fmin() (see this example) para minimizar la función de mérito (que debe definir) que calcula las desviaciones al cuadrado en las direcciones xey.

+0

El enlace anterior al ejemplo de Stefano Messina está roto. – Rohit

+0

@aging_gorrila Disculpe, no sé por qué, arreglé el enlace, ahora lo trae a la página del tutorial scipy.optimize. –

Cuestiones relacionadas