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.

random

Simular respuestas para el modelo de regresión lineal generalizada

Sintaxis

ysim = random(mdl,Xnew)
ysim = random(mdl,Xnew,Name,Value)

Descripción

ysim = random(mdl,Xnew) simula las respuestas del modelo lineal generalizado a los datos en.mdlXnew

ysim = random(mdl,Xnew,Name,Value) simula respuestas con opciones adicionales especificadas por uno o más argumentos de par.Name,Value

Argumentos de entrada

mdl

Modelo lineal generalizado, especificado como un objeto completo construido mediante o, o un objeto compactado construido medianteGeneralizedLinearModelfitglmstepwiseglmCompactGeneralizedLinearModel compact.

Xnew

Puntos en los que predice las respuestas.mdl

  • Si es una matriz de tabla o DataSet, debe contener los nombres de predictor en.Xnewmdl

  • Si es una matriz numérica, debe tener el mismo número de variables (columnas) que se usó para crear.Xnewmdl Además, todas las variables utilizadas en la creación deben ser numéricas.mdl

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

'BinomialSize'

El valor del parámetro binomial para cada fila de los datos de entrenamiento. puede ser un vector de la misma longitud que, o un escalar que se aplica a cada fila.nBinomialSizeXnew El valor predeterminado produce valores que son proporciones previstas.1ysim Utilice sólo si es apto para una distribución binomial.BinomialSizemdl

Predeterminado: 1

'Offset'

Valor del desfase para cada fila de. puede ser un vector de la misma longitud que, o un escalar que se aplica a cada fila.XnewOffsetXnew El desfase se utiliza como un predictor adicional con un valor de coeficiente fijado en.1 En otras palabras, si es el vector de coeficiente ajustado, y es la función de enlace,blink

.link(ysim) = Offset + Xnew * b

Predeterminado: zeros(size(Xnew,1))

Argumentos de salida

ysim

Vector de valores simulados en.Xnew

genera utilizando valores aleatorios con la media dada por el modelo ajustado, y con la distribución utilizada.Aleatorioysimmdl Los valores en son condicionales independientes en los predictores.ysim Para binomial y Poisson encaja, genera con la distribución especificada sin ajuste para cualquier dispersión estimada.Aleatorioysim

Ejemplos

expandir todo

Cree un modelo lineal generalizado y simule su respuesta a nuevos datos.

Genere datos artificiales para el modelo, números aleatorios de Poisson con uno de los predictores subyacentes.X

rng('default') % reproducible X = rand(20,1); mu = exp(1 + 2*X); y = poissrnd(mu);

Cree un modelo de regresión lineal generalizado de datos de Poisson.

mdl = fitglm(X,y,'y ~ x1','distr','poisson');

Cree puntos para la predicción.

Xnew = (0:.05:1)';

Simular respuestas en los nuevos puntos.

ysim = random(mdl,Xnew);

Trace los valores simulados junto con los valores originales.

plot(X,y,'rx',Xnew,ysim,'bo',...     Xnew,feval(mdl,Xnew),'g-') legend('Data','Simulated','Fitted Mean',...      'Location','best')

Entrenar un modelo lineal generalizado y, a continuación, generar código a partir de una función que extrae respuestas aleatorias del modelo dados los nuevos Datos predictores.

Genere datos artificiales, concretamente:

  • .

  • Y .

  • .

rng('default') % For reproducibility x = 1 + randn(100,1)*0.5; beta = -2; p = exp(1 + x*beta)./(1 + exp(1 + x*beta)); % Inverse logit n = 10; y = binornd(n,p,100,1); 

Cree un modelo de regresión lineal generalizado de datos binomiales. Especifique un tamaño de muestra binomial de 10.

mdl = fitglm(x,y,'y ~ x1','Distribution','Binomial','BinomialSize',n); 

Guarde el modelo lineal generalizado ajustado en el archivo.GLMMdl.mat

saveCompactModel(mdl,'GLMMdl'); 

En la carpeta actual, defina una función llamada así:myrandomGLM.m

  • Acepta mediciones con columnas correspondientes a los argumentos de par nombre-valor y válidosX

  • Carga el modelo lineal generalizado ajustado enGLMMdl.mat

  • Simula las respuestas del modelo GLM cargado

 function y = myrandomGLM(x,varargin) %#codegen %MYRANDOMGLM Simulate response using GLM model  %   MYRANDOMGLM simulates responses for the n observations in the n-by-1 %   vector x using the GLM model stored in the MAT-file GLMMdl.mat, and %   then returns the simulations in the n-by-1 vector y. CompactMdl = loadCompactModel('GLMMdl'); narginchk(1,Inf); y = random(CompactMdl,x,varargin{:}); end   

Genere una función MEX desde.myrandomGLM.m Especifique los Datos predictores en la muestra y 10 para el parámetro binomial.Xn Dado que C utiliza la tipificación estática, debe determinar las propiedades de todas las variables en los archivos de MATLAB® en tiempo de compilación.codegen Para designar argumentos como constantes de tiempo de compilación, utilice.coder.Constant

codegen -config:mex myrandomGLM -args {x,coder.Constant('BinomialSize'),coder.Constant(n)} 

genera el archivo MEX en la carpeta actual.codegenmyrandomGLM_mex.mexw64 La extensión de archivo depende de su plataforma.

Simular respuestas utilizando la función MEX.

ysim = myrandomGLM_mex(x,'BinomialSize',n); 

Trace los valores simulados y los datos en la misma figura.

figure; plot(x,y,'bo',x,ysim,'r*'); legend('Observed responses','Simulated responses'); xlabel('x'); ylabel('y'); 

Las respuestas observadas y simuladas parecen estar distribuidas de manera similar.

Alternativas

Para las predicciones sin ruido aleatorio, utilice predict O feval.

Capacidades ampliadas

Introducido en R2012a