Ajuste de distribución beta en Scipy

14

Según Wikipedia, la distribución de probabilidad beta tiene dos parámetros de forma: α y β .

Cuando llamo scipy.stats.beta.fit(x)a Python, donde xhay un montón de números en el rango , se devuelven 4 valores. Esto me parece extraño.[0,1]

Después de buscar en Google, encontré que uno de los valores de retorno debe ser 'ubicación', ya que la tercera variable es 0 si llamo scipy.stats.beta.fit(x, floc=0).

¿Alguien sabe cuál es la cuarta variable, y si las dos primeras son y ?αβ

Peter Smit
fuente
1
La documentación llama a los dos últimos parámetros de "ubicación" y "escala". Así, el cuarto es el parámetro de escala. La ubicación y la escala tienen significados estadísticos estándar. Una interpretación en este contexto se da explícitamente en el manual NIST .
whuber
Tengo exactamente el mismo problema, pero por alguna razón todos mis modelos beta tienden a "retener agua". Por ejemplo, por lo stats.beta.fit([60,61,62,72])que entiendo (0.7313395126217731, 0.7153715263378897, 58.999999999999993, 3.3500998441036982). ¿Alguna idea de lo que puedo hacer al respecto?
TheChymera
Simplemente agregue esta documentación para el método genérico de ajuste aleatorio continuo variable, que incluye algunos ejemplos usando beta.fit (): docs.scipy.org/doc/scipy/reference/generated/…
mathisfun

Respuestas:

13

A pesar de una aparente falta de documentación sobre la salida de beta.fit, sí sale en el siguiente orden:

, β , loc (límite inferior), escala (límite superior - límite inferior)αβ

jdj081
fuente
¿Es solo escupir los límites inferior y superior en función del rango de los datos, o hacer algo más?
shadowtalker
Los límites se basan en la distribución de probabilidad. es decir. La distribución normal no tiene límites, pero los datos de la muestra rara vez exceden de ~ +/-3. La distribución beta tiene límites duros, con una probabilidad de 0 fuera de esos límites. Es probable que sus datos no alcancen los límites, dependiendo de lo que esté modelando. De hecho, tratar de forzar esos límites para que coincidan con el rango de los datos puede ser problemático, ya que muchas distribuciones beta tienden a cero probabilidad en los límites. Vea esta publicación para más información sobre ese tema.
jdj081
1
Si, estoy enterado. Esos límites son siempre 0 y 1. Por lo tanto: ¿cuáles son los límites superior e inferior devueltos por esta función, y en qué se parecen a "ubicación" y "escala"? Supongo que simplemente no entiendo esta respuesta.
shadowtalker
2
La forma en que se define la distribución beta, esos límites son siempre 0 y 1. Pero la distribución beta generalizada incluye estos dos factores de escala. Los datos que modelo no caen entre 0 y 1, así que tengo que usar esos números. Si sus datos están entre 0 y 1, esas salidas deberían estar muy cerca de 0 y 1. Si sabe que sus límites son 0 y 1, puede forzarlos con los floc=0y fscale=1kwargs. Aún obtendrá esos resultados, pero serán idénticos a lo que los obliga a ser. Y es probable que cambie sus valores alfa y beta.
jdj081