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

Ajuste el objeto de distribución de probabilidad a datos

Descripción

ejemplo

pd = fitdist(x,distname) crea un objeto de distribución de probabilidad mediante el ajuste de la distribución especificada por los datos en el 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 empalme iterativo.

ejemplo

[pdca,gn,gl] = fitdist(x,distname,'By',groupvar) crea objetos de distribución de probabilidad al ajustar 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 variable de agrupación,.pdcagngl

ejemplo

[pdca,gn,gl] = fitdist(x,distname,'By',groupvar,Name,Value) Devuelve los argumentos de salida anteriores utilizando 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 empalme 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 al encajarlo en 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 del parámetro son los intervalos de confianza del 95% para los parámetros de distribución.

Trace 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 kernel encajando en los datos. Utilice la función del kernel Epanechnikov.

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

Trace 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 encajándolos con los datos, agrupados por sexo de pacientes.

gender = hospital.Sex; [pdca,gn,gl] = fitdist(x,'Normal','By',gender)
pdca = 1x2 cell array
    {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, agrupada por género de 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]  

Calcule el PDF de cada distribución.

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

Trace los archivos PDF 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 kernel encajándolos con los datos, agrupados por sexo de pacientes. Utilice una función de kernel triangular.

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 de 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  

Calcule el PDF de cada distribución.

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

Trace los archivos PDF 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 un vector de columna. omite los valores.fitdistNaNx Además, cualquier valor en el vector de censura o el vector de frecuencia causa ignorar 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 determina el tipo del objeto de distribución de probabilidad devuelto.distname

Nombre de distribuciónDescripciónObjeto de distribución
'Beta'La distribución betaBetaDistribution
'Binomial'Distribución binomialBinomialDistribution
'BirnbaumSaunders'La distribución de Birnbaum-SaundersBirnbaumSaundersDistribution
'Burr'La distribución de BurrBurrDistribution
'Exponential'Distribución exponencialExponentialDistribution
'ExtremeValue'La distribución de valor extremoExtremeValueDistribution
'Gamma'Distribución gammaGammaDistribution
'GeneralizedExtremeValue'Distribución de valor extremo generalizadoGeneralizedExtremeValueDistribution
'GeneralizedPareto'La distribución generalizada de ParetoGeneralizedParetoDistribution
'HalfNormal'Distribución media-normalHalfNormalDistribution
'InverseGaussian'La distribución gaussiana inversaInverseGaussianDistribution
'Kernel'Distribución del kernelKernelDistribution
'Logistic'La distribución logísticaLogisticDistribution
'Loglogistic'La distribución loglogísticaLoglogisticDistribution
'Lognormal'La distribución lognormalLognormalDistribution
'Nakagami'La distribución de NakagamiNakagamiDistribution
'NegativeBinomial'Distribución binomial negativaNegativeBinomialDistribution
'Normal'La distribución normalNormalDistribution
'Poisson'La distribución de PoissonPoissonDistribution
'Rayleigh'La distribución de RayleighRayleighDistribution
'Rician'Distribución de RicianRicianDistribution
'Stable'Distribución estableStableDistribution
'tLocationScale'Distribución de escala de ubicaciónttLocationScaleDistribution
'Weibull'La distribución de WeibullWeibullDistribution

Variable de agrupación, especificada como una 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 en 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 una variable de agrupación para ajustar una distribución a los datos por género.Gender'Male''Female'Gender

Se puede usar 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 agrupamiento especificadas.

Por ejemplo, si se trata de un vector lógico con valores para no fumadores y para fumadores, la especificación de 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 de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

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

Indicador lógico para los datos censurados, especificado 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

omite los valores de este vector de censura.fitdistNaN Además, cualquier valor en o el vector de frecuencia causa ignorar los valores correspondientes en el vector de censura.NaNxfitdist

Este argumento sólo es válido si es,,,,,,,,,,,,,, o.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 para los elementos correspondientes.x El valor predeterminado es un vector de s, lo que indica que cada uno de los valores solo aparece una vez.1x

omite los valores de este vector de frecuencia.fitdistNaN Además, cualquier valor en o el vector de censura causa ignorar los valores correspondientes en el vector de frecuencia.NaNxfitdist

Tipos de datos: single | double

Parámetros de control para el algoritmo de empalme iterativo, especificado como el par separado por comas que consta de una estructura que se crea utilizando.'Options'statset

Tipos de datos: struct

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

Tipos de datos: single | double

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

Tipos de datos: single | double

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

Tipos de datos: single | double

Tipo de kernel más suave, especificado como el par separado por comas que consta de uno de los siguientes:'Kernel'

  • 'normal'

  • 'box'

  • 'triangle'

  • 'epanechnikov'

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

Soporte de densidad de kernel, 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 sobre toda la línea real.
'positive'La densidad está restringida a valores positivos.

Alternativamente, puede especificar un vector de dos elementos que dé límites finitos más bajos y superiores para el soporte de la densidad.

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

Tipos de datos: single | double | char | string

Ancho de banda de la ventana de suavizado del kernel, especificada como el par separado por comas que consta de un valor escalar.'Width' El valor predeterminado que utiliza 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 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 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 vectores de caracteres de celda.

Agrupar niveles de variable, 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 ajusta a la mayoría de distribuciones utilizando estimación de máxima verosimilitud.fitdist Dos excepciones son las distribuciones normales y lognormal 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 que pueda importar datos desde el espacio de trabajo y ajustar interactivamente una distribución de probabilidad a esos datos.Distribución 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 de Fitter de distribución utilizando o haga clic en 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.

Introducido en R2009a