phreg

cox

Descripción

La acción 'cox' del conjunto de acciones 'phreg' (Proportional Hazards Regression) se utiliza para ajustar un modelo de regresión de riesgos proporcionales de Cox. Este modelo es fundamental en el análisis de supervivencia para investigar la relación entre el tiempo de supervivencia de los sujetos y una o más variables predictoras.

phreg.cox / alpha=double, attributes={{name='variable-name', format='string', formattedLength=integer, label='string', nfd=integer, nfl=integer}, ...}, class={{vars={'variable-name-1', ...}, countMissing=TRUE | FALSE, descending=TRUE | FALSE, ignoreMissing=TRUE | FALSE, levelizeRaw=TRUE | FALSE, maxLev=integer, order='FORMATTED' | 'FREQ' | 'FREQFORMATTED' | 'FREQINTERNAL' | 'INTERNAL', param='EFFECT' | 'GLM' | 'REFERENCE', ref='FIRST' | 'LAST' | double | 'string', split=TRUE | FALSE}, ...}, classGlobalOpts={countMissing=TRUE | FALSE, descending=TRUE | FALSE, ignoreMissing=TRUE | FALSE, levelizeRaw=TRUE | FALSE, maxLev=integer, order='FORMATTED' | 'FREQ' | 'FREQFORMATTED' | 'FREQINTERNAL' | 'INTERNAL', param='EFFECT' | 'GLM' | 'REFERENCE', ref='FIRST' | 'LAST' | double | 'string', split=TRUE | FALSE}, classLevelsPrint=TRUE | FALSE, clb=TRUE | FALSE, code={casOut={caslib='string', compress=TRUE | FALSE, indexVars={'variable-name-1', ...}, label='string', lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat='DVR' | 'INHERIT' | 'STANDARD', name='table-name', promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy='DEFER' | 'NOREDIST' | 'REBALANCE', threadBlockSize=64-bit-integer, timeStamp='string', where={'string-1', ...}}, comment=TRUE | FALSE, cumHaz=TRUE | FALSE, fmtWdth=integer, indentSize=integer, labelId=integer, lineSize=integer, noTrim=TRUE | FALSE, quantProb={double-1, ...}, showTime=TRUE | FALSE, survival=TRUE | FALSE, tabForm=TRUE | FALSE, timePoint={double-1, ...}}, collection={{name='string', vars={'variable-name-1', ...}, details=TRUE | FALSE}, ...}, corrB=TRUE | FALSE, covB=TRUE | FALSE, display={caseSensitive=TRUE | FALSE, exclude=TRUE | FALSE, excludeAll=TRUE | FALSE, keyIsPath=TRUE | FALSE, names={'string-1', ...}, pathType='LABEL' | 'NAME', traceNames=TRUE | FALSE}, freq='variable-name', hessian=TRUE | FALSE, lassoRho=double, lassoSteps=integer, lassoTol=double, logLikeNull=TRUE | FALSE, model={depVars={{name='variable-name'}, ...}, effects={{vars={'string-1', ...}, interaction='BAR' | 'CROSS' | 'NONE', maxInteract=integer, nest={'string-1', ...}}, ...}, censor='variable-name', censVals={double-1, ...}, clb=TRUE | FALSE, entry='variable-name', include=integer | {{effect-1}, ...}, informative=TRUE | FALSE, lassoRho=double, lassoSteps=integer, lassoTol=double, offset='variable-name', ss3=TRUE | FALSE, start=integer | {{effect-1}, ...}}, multipass=TRUE | FALSE, nClassLevelsPrint=integer, noStdErr=TRUE | FALSE, optimization={absConv=double, absFConv=double, absGConv=double, absXConv=double, fConv=double, fConv2=double, gConv=double, gConv2=double, itHist='NONE' | 'SUMMARY', maxFunc=double, maxIter=double, maxTime=double, minIter=integer, technique='CONGRA' | 'DBLDOG' | 'DUQUANEW' | 'NEWRAP' | 'NMSIMP' | 'NONE' | 'NRRIDG' | 'TRUREG', xConv=double}, output={casOut={caslib='string', compress=TRUE | FALSE, indexVars={'variable-name-1', ...}, label='string', lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat='DVR' | 'INHERIT' | 'STANDARD', name='table-name', promote=TRUE | FALSE, replace=TRUE | FALSE, replication=integer, tableRedistUpPolicy='DEFER' | 'NOREDIST' | 'REBALANCE', threadBlockSize=64-bit-integer, timeStamp='string', where={'string-1', ...}}, copyVars='ALL' | 'ALL_MODEL' | 'ALL_NUMERIC' | {'variable-name-1', ...}, cumHaz='string', dfBeta='string', ld='string', resDev='string', resMart='string', resSch='string', resSco='string', role='string', stdXBeta='string', survival='string', wtResSch='string', xBeta='string'}, outputTables={groupByVarsRaw=TRUE | FALSE, includeAll=TRUE | FALSE, names={'string-1', ...} | {key-1={casouttable-1}, ...}, repeated=TRUE | FALSE, replace=TRUE | FALSE}, partByFrac={seed=integer, test=double, validate=double}, partByVar={name='variable-name', test='string', train='string', validate='string'}, polynomial={{name='string', vars={'variable-name-1', ...}, degree=integer, details=TRUE | FALSE, labelStyle={expand=TRUE | FALSE, exponent='string', includeName=TRUE | FALSE, productSymbol='NONE' | 'string'}, mDegree=integer, noSeparate=TRUE | FALSE, standardize={method='MOMENTS' | 'MRANGE' | 'WMOMENTS', options='CENTER' | 'CENTERSCALE' | 'NONE' | 'SCALE', prefix='NONE' | 'string'}}, ...}, selection={method='BACKWARD' | 'FORWARD' | 'LASSO' | 'NONE' | 'STEPWISE', candidates=integer | 'ALL', choose='AIC' | 'AICC' | 'DEFAULT' | 'NONE' | 'SBC' | 'VALIDATE', details='ALL' | 'NONE' | 'STEPS' | 'SUMMARY', elasticNetOptions={absFConv=double, fConv=double, gConv=double, lambda={double-1, ...}, mixing={double-1, ...}, numLambda=integer, rho=double, solver='ADMM' | 'BFGS' | 'LBFGS' | 'NLP'}, enscale=TRUE | FALSE, ensteps=integer, fast=TRUE | FALSE, hierarchy='DEFAULT' | 'NONE' | 'SINGLE' | 'SINGLECLASS', kappa={double-1, ...}, L2=double, L2HIGH=double, L2LOW=double, maxEffects=integer, maxSteps=integer, minEffects=integer, plots=TRUE | FALSE, relaxed=TRUE | FALSE, select='AIC' | 'AICC' | 'DEFAULT' | 'SBC' | 'SL', slEntry=double, slStay=double, stop='AIC' | 'AICC' | 'DEFAULT' | 'NONE' | 'SBC' | 'SL' | 'VALIDATE', stopHorizon=integer}, spline={{name='string', vars={'variable-name-1', ...}, basis='BSPLINE' | 'TPF_DEFAULT' | 'TPF_NOINT' | 'TPF_NOINTANDNOPOWERS' | 'TPF_NOPOWERS', dataBoundary=TRUE | FALSE, degree=integer, details=TRUE | FALSE, knotMax=double, knotMethod={equal=integer, list={double-1, ...}, listWithBoundary={double-1, ...}, multiscale={endScale=integer, startScale=integer}, rangeFractions={double-1, ...}}, knotMin=double, naturalCubic=TRUE | FALSE, separate=TRUE | FALSE, split=TRUE | FALSE}, ...}, ss3=TRUE | FALSE, strata='variable-name', strataMissing=TRUE | FALSE, table={name='table-name', caslib='string', computedOnDemand=TRUE | FALSE, computedVars={{name='variable-name', format='string', formattedLength=integer, label='string', nfd=integer, nfl=integer}, ...}, computedVarsProgram='string', dataSourceOptions={key-1=any-list-or-data-type-1, ...}, groupBy={{name='variable-name', format='string', formattedLength=integer, label='string', nfd=integer, nfl=integer}, ...}, groupByMode='NOSORT' | 'REDISTRIBUTE', importOptions={fileType='ANY' | 'AUDIO' | 'AUTO' | 'BASESAS' | 'CSV' | 'DELIMITED' | 'DOCUMENT' | 'DTA' | 'ESP' | 'EXCEL' | 'FMT' | 'HDAT' | 'IMAGE' | 'JMP' | 'LASR' | 'PARQUET' | 'SOUND' | 'SPSS' | 'VIDEO' | 'XLS', fileType-specific-parameters}, orderBy={{name='variable-name', format='string', formattedLength=integer, label='string', nfd=integer, nfl=integer}, ...}, singlePass=TRUE | FALSE, vars={{name='variable-name', format='string', formattedLength=integer, label='string', nfd=integer, nfl=integer}, ...}, where='where-expression', whereTable={name='table-name', casLib='string', dataSourceOptions={adls_noreq-parameters | ...}, importOptions={fileType='ANY' | ...}, vars={{name='variable-name', ...}}, where='where-expression'}}, weight='variable-name'
Parámetros
ParámetroDescripción
alphaEspecifica el nivel de significancia para construir todos los intervalos de confianza.
attributesCambia los atributos de las variables utilizadas en esta acción.
classNombra las variables de clasificación que se utilizarán como variables explicativas en el análisis.
classGlobalOptsLista las opciones que se aplican a todas las variables de clasificación.
classLevelsPrintCuando se establece en False, suprime la visualización de los niveles de clase.
clbCuando se establece en True, muestra los límites de confianza superior e inferior para las estimaciones de los parámetros.
codeEscribe código de paso DATA de SAS para calcular los valores predichos del modelo ajustado.
collectionDefine un conjunto de variables que se tratan como un único efecto con múltiples grados de libertad.
corrBCuando se establece en True, muestra la matriz de correlación de los parámetros.
covBCuando se establece en True, muestra la matriz de covarianza de los parámetros.
displayEspecifica una lista de tablas de resultados para enviar al cliente para su visualización.
freqNombra la variable numérica que contiene la frecuencia de ocurrencia para cada observación.
hessianCuando se establece en True, utiliza el Hessiano analítico en lugar del Hessiano de diferencias finitas.
lassoRhoEspecifica el parámetro de regularización base para el método LASSO.
lassoStepsEspecifica el número máximo de pasos para el método LASSO.
lassoTolEspecifica el criterio de convergencia para el método LASSO.
logLikeNullCuando se establece en True, muestra el -2 log-verosimilitud del modelo NULO.
modelNombra la variable dependiente, los efectos explicativos y las opciones del modelo.
multipassCuando se establece en True, niveliza la tabla de datos de entrada cada vez que se lee.
nClassLevelsPrintLimita la visualización de los niveles de clase. El valor 0 suprime todos los niveles.
noStdErrCuando se establece en True, no calcula la matriz de covarianza ni ninguna estadística que dependa de ella.
optimizationEspecifica la técnica y las opciones para realizar la optimización.
outputCrea una tabla en el servidor que contiene estadísticas a nivel de observación, calculadas después de ajustar el modelo.
outputTablesLista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
partByFracEspecifica las fracciones de los datos que se utilizarán para la validación y la prueba.
partByVarNombra la variable y sus valores para particionar los datos en roles de entrenamiento, validación y prueba.
polynomialEspecifica un efecto polinómico.
selectionEspecifica el método y las opciones para realizar la selección del modelo.
splineExpande variables en bases de spline cuya forma depende de los parámetros especificados.
ss3Cuando se establece en True, realiza pruebas de efectos de Tipo 3.
strataNombra la variable que identifica los estratos para un análisis estratificado.
strataMissingCuando se establece en True, permite valores perdidos como valores válidos de la variable STRATA.
tableEspecifica la tabla de datos de entrada.
weightNombra la variable numérica que se utilizará para realizar un análisis ponderado de los datos.
Creación de datos de ejemplo para análisis de supervivencia

Este bloque de código crea una tabla en memoria llamada 'mycas.heart'. Esta tabla contiene datos simulados sobre la supervivencia de pacientes con insuficiencia cardíaca, incluyendo el tiempo hasta el evento, el estado del evento (censurado o no) y varias covariables como edad, colesterol y presión arterial. Estos datos son adecuados para ajustar un modelo de riesgos proporcionales de Cox.

¡Copiado!
1DATA mycas.heart;
2 call streaminit(123);
3 DO i = 1 to 100;
4 Time = rand('UNIFORM') * 10;
5 STATUS = (rand('UNIFORM') > 0.5);
6 Age = 50 + rand('NORMAL') * 10;
7 Cholesterol = 200 + rand('NORMAL') * 30;
8 BP = 120 + rand('NORMAL') * 15;
9 OUTPUT;
10 END;
11RUN;

Ejemplos

Este ejemplo ajusta un modelo de riesgos proporcionales de Cox básico para predecir el tiempo de supervivencia ('Time') en función de la edad ('Age'), utilizando el estado de censura ('Status').

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 phreg.cox /
3 TABLE={name='heart'},
4 model={depVars={{name='Time', event='Status(0)'}}, effects={{vars={'Age'}}}}
5 ;
6RUN;
Resultado :
La salida incluirá tablas que resumen el modelo, como 'Información del Modelo', 'Resumen del Procesamiento de Datos' y 'Estimaciones de Parámetros', mostrando el coeficiente de riesgo para la variable 'Age'.

Este ejemplo más complejo ajusta un modelo de Cox utilizando la selección de variables por pasos ('stepwise') para identificar los predictores más significativos entre 'Age', 'Cholesterol' y 'BP'. Además, el modelo se estratifica por la variable 'Sex' (asumiendo que existe en los datos) para permitir diferentes funciones de riesgo base para cada estrato.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 phreg.cox /
3 TABLE={name='heart'},
4 class={{vars={'Sex'}}},
5 model={depVars={{name='Time', event='Status(0)'}}, effects={{vars={'Age', 'Cholesterol', 'BP'}}}},
6 strata='Sex',
7 selection={method='STEPWISE', slEntry=0.15, slStay=0.15}
8 ;
9RUN;
Resultado :
La salida mostrará el proceso de selección paso a paso, incluyendo las tablas 'Resumen de Selección'. La tabla final 'Estimaciones de Parámetros' mostrará los coeficientes solo para las variables que permanecieron en el modelo después del proceso de selección. También se mostrará una tabla 'Información de Estratos' que indica los estratos utilizados.

Este ejemplo ajusta un modelo de Cox y genera una tabla de salida ('cox_output') que contiene varias estadísticas de diagnóstico a nivel de observación, como los residuos de martingala, de Schoenfeld y de puntuación, así como el predictor lineal (X*Beta). Estas estadísticas son útiles para evaluar el ajuste del modelo y verificar sus supuestos.

Código SAS® / CAS Código en espera de validación por la comunidad
¡Copiado!
1PROC CAS;
2 phreg.cox /
3 TABLE={name='heart'},
4 model={depVars={{name='Time', event='Status(0)'}}, effects={{vars={'Age', 'Cholesterol'}}}},
5 OUTPUT={casOut={name='cox_output', replace=true}, copyVars={'i', 'Time', 'Status'}, resMart='Martingale', resSch='Schoenfeld', resSco='Score', xBeta='Xbeta'}
6 ;
7RUN;
Resultado :
No se mostrarán resultados en la ventana de salida, pero se creará una nueva tabla CAS llamada 'cox_output' en la caslib activa. Esta tabla contendrá las variables originales copiadas y las nuevas columnas para cada una de las estadísticas de residuos solicitadas ('Martingale', 'Schoenfeld_Age', 'Schoenfeld_Cholesterol', etc.) y el predictor lineal ('Xbeta').

FAQ

¿Cuál es el propósito de la acción `phreg.cox` en SAS Viya?
¿Cómo puedo especificar el modelo de regresión en la acción `cox`?
¿Qué métodos de selección de variables ofrece la acción `phreg.cox`?
¿Es posible realizar un análisis estratificado con esta acción?
¿Cómo puedo generar código SAS DATA step para puntuar nuevos datos con el modelo ajustado?
¿Qué son los parámetros `alpha` y `clb` y para qué se utilizan?