El coeficiente de correlación de diagrama de probabilidad (PPCC) es una técnica gráfica para identificar el parámetro de forma que mejor describe el conjunto de datos. La mayor parte del análisis estadístico se ha realizado asumiendo la forma de la distribución en mente. Sin embargo, estas suposiciones pueden ser cuestionadas porque a veces las distribuciones pueden tener formas muy diferentes dependiendo del parámetro de forma. Por lo tanto, es mejor encontrar el parámetro de forma como parte del análisis, para que podamos estar más seguros acerca de la distribución de la población.
El gráfico PPCC se forma usando los siguientes ejes:
- Eje vertical : Coeficiente de correlación del diagrama de probabilidad
- Eje horizontal : valor del parámetro de forma
El objetivo principal de la gráfica PPCC es primero encontrar un buen valor del parámetro de forma. Además de calcular el parámetro de forma de la distribución, el gráfico PPCC se puede utilizar para decidir qué familia distribucional es la más adecuada.
El gráfico PPCC responde a las siguientes preguntas:
- a
La gráfica PPCC Turquía-lambda, con parámetro de forma λ, es particularmente útil para distribuciones simétricas. Indica si una distribución es de cola corta o larga y además puede indicar varias distribuciones comunes. Específicamente,
- λ =-1, la distribución es aproximadamente de Cauchy .
- λ = 0, la distribución es exactamente logística.
- λ = 0,14, la distribución es aproximadamente normal.
- λ = 0,5, la distribución tiene forma de U.
- λ = 1, la distribución es exactamente uniforme.
Si el gráfico PPCC de Turquía-Lambda da un valor máximo = 0,14, entonces podemos concluir que la distribución normal es una buena aproximación para los datos. Si el valor máximo es < 0,14, significa que una distribución de cola larga, como la exponencial doble o la logística, sería una mejor opción. Si el valor máximo es -1, implica una distribución de cola muy larga como la de Cauchy. Si el valor máximo es > 0,14, implica una distribución de cola muy corta, como Beta o Uniforme.
Implementación
- En esta implementación, generaremos diferentes distribuciones y verificaremos su valor de parámetro de forma de Turquía-Lambda, y trazaremos gráficos de PPCC. Estoy usando Google Colaboratory, que contiene algunas bibliotecas preinstaladas como scipy, numpy, statsmodel, seaborn, etc. Sin embargo, estas bibliotecas se pueden instalar fácilmente usando pip install en el entorno local.
Python3
# import libraries import numpy as np import matplotlib.pyplot as plt import scipy.stats as sc import seaborn as sns # generate different distributions sample_size = 10000 standard_norm = np.random.normal(size=sample_size) cauchy_dist = sc.cauchy.rvs(loc=1, scale=10, size=sample_size) logistic_dist = np.random.logistic(size=sample_size) uniform_dist = np.random.uniform(size= sample_size) beta_dist = np.random.beta(a=1, b=1, size=sample_size) # Normal Distribution fig, ax = plt.subplots(1, 2, figsize=(12, 7)) sns.histplot(standard_norm,kde=True, color ='blue',ax=ax[0]) sc.ppcc_plot(standard_norm, -5,5, plot=ax[1]) shape_param_normal = sc.ppcc_max(standard_norm) ax[1].vlines(shape_param_normal,0,1, colors='red') print("shape parameter of normal distribution is ", shape_param_normal) # Cauchy Distribution fig, ax = plt.subplots(1, 2, figsize=(12, 7)) sns.histplot(cauchy_dist, color ='blue',ax=ax[0]) ax[0].set_xlim(-40,40) sc.ppcc_plot(cauchy_dist, -5,5, plot=ax[1]) shape_param_cauchy = sc.ppcc_max(cauchy_dist) ax[1].vlines(shape_param_cauchy,0,1, colors='red') print('shape parameter of cauchy distribution is ',shape_param_cauchy) # Logistic Distribution fig, ax = plt.subplots(1, 2, figsize=(12, 7)) sns.histplot(logistic_dist, color ='blue',ax=ax[0]) sc.ppcc_plot(logistic_dist, -5,5, plot=ax[1]) shape_param_logistic = sc.ppcc_max(logistic_dist) ax[1].vlines(shape_param_logistic,0,1, colors='red') print("shape parameter of logistic is ",shape_param_logistic) # Uniform Distribution fig, ax = plt.subplots(1, 2, figsize=(12, 7)) sns.histplot(uniform_dist, color ='green',ax=ax[0]) sc.ppcc_plot(uniform_dist, -5,5, plot=ax[1]) shape_para_uniform =sc.ppcc_max(uniform_dist) ax[1].vlines(shape_para_uniform,0,1, colors='red') print("shape parameter of uniform distribution is ",shape_para_uniform) # Beta Distribution fig, ax = plt.subplots(1, 2, figsize=(12, 7)) sns.histplot(beta_dist, color ='blue',ax=ax[0]) sc.ppcc_plot(beta_dist, -5,5, plot=ax[1]) shape_para_beta =sc.ppcc_max(beta_dist) ax[1].vlines(shape_para_beta,0,1, colors='red') print("shape parameter of beta distribution is :",shape_para_beta)
shape parameter of normal distribution is 0.14139046072745928
shape parameter of cauchy distribution is -0.8555566289941865
shape parameter of logistic is 0.003792036190661425
shape parameter of uniform distribution is 1.0681942803525217
shape parameter of beta distribution is : 0.9158983492057267