Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

fitdist

Ajustar el objeto de distribución de probabilidad a los datos

Descripción

ejemplo

pd = fitdist(x,distname) crea un objeto de distribución de probabilidad ajustando la distribución especificada por los datos del vector de columna.distnamex

ejemplo

pd = fitdist(x,distname,Name,Value) crea el objeto de distribución de probabilidad con opciones adicionales especificadas por uno o más argumentos de par nombre-valor. Por ejemplo, puede indicar datos censurados o especificar parámetros de control para el algoritmo de ajuste iterativo.

ejemplo

[pdca,gn,gl] = fitdist(x,distname,'By',groupvar) crea objetos de distribución de probabilidad ajustando la distribución especificada por los datos en función de la variable de agrupación.distnamexgroupvar Devuelve una matriz de celdas de objetos de distribución de probabilidad ajustados, , una matriz de celdas de etiquetas de grupo y una matriz de celdas de niveles de variables de agrupación, .pdcagngl

ejemplo

[pdca,gn,gl] = fitdist(x,distname,'By',groupvar,Name,Value) devuelve los argumentos de salida anteriores mediante opciones adicionales especificadas por uno o varios argumentos de par nombre-valor. Por ejemplo, puede indicar datos censurados o especificar parámetros de control para el algoritmo de ajuste iterativo.

Ejemplos

contraer todo

Cargue los datos de ejemplo. Cree un vector que contenga los datos de peso de los pacientes.

load hospital x = hospital.Weight;

Cree un objeto de distribución normal acondicionándolo a los datos.

pd = fitdist(x,'Normal')
pd =    NormalDistribution    Normal distribution        mu =     154   [148.728, 159.272]     sigma = 26.5714   [23.3299, 30.8674]  

Los intervalos junto a las estimaciones de parámetros son los intervalos de confianza del 95% para los parámetros de distribución.

Trazar el pdf de la distribución.

x_values = 50:1:250; y = pdf(pd,x_values); plot(x_values,y,'LineWidth',2)

Cargue los datos de ejemplo. Cree un vector que contenga los datos de peso de los pacientes.

load hospital x = hospital.Weight;

Cree un objeto de distribución del núcleo ateándolo a los datos. Utilice la función de kernel Epanechnikov.

pd = fitdist(x,'Kernel','Kernel','epanechnikov')
pd =    KernelDistribution      Kernel = epanechnikov     Bandwidth = 14.3792     Support = unbounded  

Trazar el pdf de la distribución.

x_values = 50:1:250; y = pdf(pd,x_values); plot(x_values,y)

Cargue los datos de ejemplo. Cree un vector que contenga los datos de peso de los pacientes.

load hospital x = hospital.Weight;

Cree objetos de distribución normales adaptándolos a los datos, agrupados por sexo del paciente.

gender = hospital.Sex; [pdca,gn,gl] = fitdist(x,'Normal','By',gender)
pdca=1×2 cell
    {1x1 prob.NormalDistribution}    {1x1 prob.NormalDistribution}

gn = 2x1 cell array
    {'Female'}
    {'Male'  }

gl = 2x1 cell array
    {'Female'}
    {'Male'  }

La matriz de celdas contiene dos objetos de distribución de probabilidad, uno para cada grupo de género.pdca La matriz de celdas contiene dos etiquetas de grupo.gn La matriz de celdas contiene dos niveles de grupo.gl

Vea cada distribución en la matriz de celdas para comparar la media, y la desviación estándar, , agrupadas por sexo del paciente.pdcamusigma

female = pdca{1}  % Distribution for females
female =    NormalDistribution    Normal distribution        mu = 130.472   [128.183, 132.76]     sigma = 8.30339   [6.96947, 10.2736]  
male = pdca{2}  % Distribution for males
male =    NormalDistribution    Normal distribution        mu = 180.532   [177.833, 183.231]     sigma = 9.19322   [7.63933, 11.5466]  

Calcular el pdf de cada distribución.

x_values = 50:1:250; femalepdf = pdf(female,x_values); malepdf = pdf(male,x_values);

Trazar los pdfs para una comparación visual de la distribución de peso por género.

figure plot(x_values,femalepdf,'LineWidth',2) hold on plot(x_values,malepdf,'Color','r','LineStyle',':','LineWidth',2) legend(gn,'Location','NorthEast') hold off

Cargue los datos de ejemplo. Cree un vector que contenga los datos de peso de los pacientes.

load hospital x = hospital.Weight;

Cree objetos de distribución del núcleo aficionándolos a los datos, agrupados por sexo del paciente. Utilice una función triangular del núcleo.

gender = hospital.Sex; [pdca,gn,gl] = fitdist(x,'Kernel','By',gender,'Kernel','triangle');

Vea cada distribución en la matriz de celdas para ver las distribuciones del kernel para cada género.pdca

female = pdca{1}  % Distribution for females
female =    KernelDistribution      Kernel = triangle     Bandwidth = 4.25894     Support = unbounded  
male = pdca{2}  % Distribution for males
male =    KernelDistribution      Kernel = triangle     Bandwidth = 5.08961     Support = unbounded  

Calcular el pdf de cada distribución.

x_values = 50:1:250; femalepdf = pdf(female,x_values); malepdf = pdf(male,x_values);

Trazar los pdfs para una comparación visual de la distribución de peso por género.

figure plot(x_values,femalepdf,'LineWidth',2) hold on plot(x_values,malepdf,'Color','r','LineStyle',':','LineWidth',2) legend(gn,'Location','NorthEast') hold off

Argumentos de entrada

contraer todo

Datos de entrada, especificados como vector de columna. ignora los valores de .fitdistNaNx Además, cualquier valor en el vector de censura o vector de frecuencia hace que ignore los valores correspondientes en .NaNfitdistx

Tipos de datos: double

Nombre de distribución, especificado como uno de los siguientes vectores de caracteres o escalares de cadena. La distribución especificada por determina el tipo del objeto de distribución de probabilidad devuelto.distname

Nombre de la distribuciónDescripciónObjeto de distribución
'Beta'Distribución betaBetaDistribution
'Binomial'Distribución binomialBinomialDistribution
'BirnbaumSaunders'Distribución Birnbaum-SaundersBirnbaumSaundersDistribution
'Burr'Distribución de burresBurrDistribution
'Exponential'Distribución exponencialExponentialDistribution
'ExtremeValue'Distribución de valor extremoExtremeValueDistribution
'Gamma'Distribución gammaGammaDistribution
'GeneralizedExtremeValue'Distribución generalizada del valor extremoGeneralizedExtremeValueDistribution
'GeneralizedPareto'Distribución generalizada de ParetoGeneralizedParetoDistribution
'HalfNormal'Distribución seminormalHalfNormalDistribution
'InverseGaussian'Distribución gaussiana inversaInverseGaussianDistribution
'Kernel'Distribución del núcleoKernelDistribution
'Logistic'Distribución logísticaLogisticDistribution
'Loglogistic'Distribución logísticaLoglogisticDistribution
'Lognormal'Distribución lognormalLognormalDistribution
'Nakagami'Distribución NakagamiNakagamiDistribution
'NegativeBinomial'Distribución binomial negativaNegativeBinomialDistribution
'Normal'Distribución normalNormalDistribution
'Poisson'Distribución de PoissonPoissonDistribution
'Rayleigh'Distribución de RayleighRayleighDistribution
'Rician'Distribución ricianaRicianDistribution
'Stable'Distribución estableStableDistribution
'tLocationScale'Distribución ubicación-escalattLocationScaleDistribution
'Weibull'Distribución de WeibullWeibullDistribution

Variable de agrupación, especificada como matriz categórica, vector lógico o numérico, matriz de caracteres, matriz de cadenas o matriz de celdas de vectores de caracteres. Cada valor único de una variable de agrupación define un grupo.

Por ejemplo, si es una matriz de celdas de vectores de caracteres con valores y , puede usar como variable de agrupación para ajustar una distribución a los datos por género.Gender'Male''Female'Gender

Se puede utilizar más de una variable de agrupación especificando una matriz de celdas de variables de agrupación. Las observaciones se colocan en el mismo grupo si tienen valores comunes de todas las variables de agrupación especificadas.

Por ejemplo, si es un vector lógico con valores para no fumadores y para fumadores, especificar la matriz de celdas divide las observaciones en cuatro grupos:Smoker01{Gender,Smoker} Fumador Masculino, No Fumador Masculino, Fumador Femenino y No Fumador Femenino.

Ejemplo: {Gender,Smoker}

Tipos de datos: categorical | logical | single | double | char | string | cell

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: ajusta un objeto de distribución del núcleo a los datos en el uso de una función de kernel triangular.fitdist(x,'Kernel','Kernel','triangle')x

Marca lógica para datos censurados, especificada como el par separado por comas que consta de y un vector de valores lógicos que tiene el mismo tamaño que el vector de entrada.'Censoring'x El valor es cuando el elemento correspondiente en es una observación censurada por la derecha y cuando el elemento correspondiente es una observación exacta.1x0 El valor predeterminado es un vector de s, que indica que todas las observaciones son exactas.0

ignora cualquier valor de este vector de censura.fitdistNaN Además, cualquier valor en o el vector de frecuencia hace que ignore los valores correspondientes en el vector de censura.NaNxfitdist

Este argumento sólo es válido si es , , , , , , , , , , , , , , .distname'BirnbaumSaunders''Burr''Exponential''ExtremeValue''Gamma''InverseGaussian''Kernel''Logistic''Loglogistic''Lognormal''Nakagami''Normal''Rician''tLocationScale''Weibull'

Tipos de datos: logical

Frecuencia de observación, especificada como el par separado por comas que consta de y un vector de valores enteros no negativos que tiene el mismo tamaño que el vector de entrada.'Frequency'x Cada elemento del vector de frecuencia especifica las frecuencias de los elementos correspondientes en .x El valor predeterminado es un vector de s, que indica que cada valor solo aparece una vez.1x

ignora cualquier valor de este vector de frecuencia.fitdistNaN Además, cualquier valor en o el vector de censura hace que ignore los valores correspondientes en el vector de frecuencia.NaNxfitdist

Tipos de datos: single | double

Parámetros de control para el algoritmo de ajuste iterativo, especificados como el par separado por comas que consta de y una estructura que se crea mediante .'Options'statset

Tipos de datos: struct

Número de ensayos para la distribución binomial, especificado como el par separado por comas que consta de y un valor entero positivo.'NTrials' Debe especificar como para utilizar esta opción.distname'Binomial'

Tipos de datos: single | double

Parámetro umbral para la distribución generalizada de Pareto, especificado como el par separado por comas que consta de y un valor escalar.'Theta' Debe especificar como para utilizar esta opción.distname'GeneralizedPareto'

Tipos de datos: single | double

Parámetro de ubicación para la distribución seminormal, especificado como el par separado por comas que consta de y un valor escalar.'mu' Debe especificar como para utilizar esta opción.distname'HalfNormal'

Tipos de datos: single | double

Tipo más suave del núcleo, especificado como el par separado por comas que consta de y uno de los siguientes:'Kernel'

  • 'normal'

  • 'box'

  • 'triangle'

  • 'epanechnikov'

Debe especificar como para utilizar esta opción.distname'Kernel'

Soporte de densidad del núcleo, especificado como el par separado por comas que consta de y , , o un vector de dos elementos.'Support''unbounded''positive'

'unbounded'La densidad puede extenderse a toda la línea real.
'positive'La densidad está restringida a valores positivos.

Como alternativa, puede especificar un vector de dos elementos que dé límites inferiory superior finito para el soporte de la densidad.

Debe especificar como para utilizar esta opción.distname'Kernel'

Tipos de datos: single | double | char | string

Ancho de banda de la ventana de suavizado del núcleo, especificado como el par separado por comas que consta de y un valor escalar.'Width' El valor predeterminado utilizado por es óptimo para estimar las densidades normales, pero es posible que desee elegir un valor más pequeño para revelar características como varios modos.fitdist Debe especificar como para utilizar esta opción.distname'Kernel'

Tipos de datos: single | double

Argumentos de salida

contraer todo

Distribución de probabilidad, devuelta como un objeto de distribución de probabilidad. La distribución especificada por determina el tipo de clase del objeto de distribución de probabilidad devuelto.distname

Objetos de distribución de probabilidad del tipo especificado por , devueltos como una matriz de celdas.distname

Etiquetas de grupo, devueltas como una matriz de celdas de vectores de caracteres.

Agrupar niveles de variables, devueltos como una matriz de celdas de vectores de caracteres que contienen una columna para cada variable de agrupación.

Algoritmos

La función se adapta a la mayoría de las distribuciones utilizando la estimación de máxima verosimilitud.fitdist Dos excepciones son las distribuciones normales y lognormales con datos sin censura.

  • Para la distribución normal sin censura, el valor estimado del parámetro sigma es la raíz cuadrada de la estimación imparcial de la varianza.

  • Para la distribución lognormal sin censura, el valor estimado del parámetro sigma es la raíz cuadrada de la estimación imparcial de la varianza del registro de los datos.

Funcionalidad alternativa

Aplicación

La aplicación abre una interfaz gráfica de usuario para importar datos del área de trabajo y ajustar interactivamente una distribución de probabilidad a esos datos.Creador Fitter A continuación, puede guardar la distribución en el espacio de trabajo como un objeto de distribución de probabilidad. Abra la aplicación Administrador de distribución con , o haga clic en Fiordo de distribución en la pestaña Aplicaciones.distributionFitter

Referencias

[1] Johnson, N. L., S. Kotz, and N. Balakrishnan. Continuous Univariate Distributions. Vol. 1, Hoboken, NJ: Wiley-Interscience, 1993.

[2] Johnson, N. L., S. Kotz, and N. Balakrishnan. Continuous Univariate Distributions. Vol. 2, Hoboken, NJ: Wiley-Interscience, 1994.

[3] Bowman, A. W., and A. Azzalini. Applied Smoothing Techniques for Data Analysis. New York: Oxford University Press, 1997.

Capacidades ampliadas

Introducido en R2009a