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
alpha Especifica el nivel de significancia para construir todos los intervalos de confianza.
attributes Cambia los atributos de las variables utilizadas en esta acción.
class Nombra las variables de clasificación que se utilizarán como variables explicativas en el análisis.
classGlobalOpts Lista las opciones que se aplican a todas las variables de clasificación.
classLevelsPrint Cuando se establece en False, suprime la visualización de los niveles de clase.
clb Cuando se establece en True, muestra los límites de confianza superior e inferior para las estimaciones de los parámetros.
code Escribe código de paso DATA de SAS para calcular los valores predichos del modelo ajustado.
collection Define un conjunto de variables que se tratan como un único efecto con múltiples grados de libertad.
corrB Cuando se establece en True, muestra la matriz de correlación de los parámetros.
covB Cuando se establece en True, muestra la matriz de covarianza de los parámetros.
display Especifica una lista de tablas de resultados para enviar al cliente para su visualización.
freq Nombra la variable numérica que contiene la frecuencia de ocurrencia para cada observación.
hessian Cuando se establece en True, utiliza el Hessiano analítico en lugar del Hessiano de diferencias finitas.
lassoRho Especifica el parámetro de regularización base para el método LASSO.
lassoSteps Especifica el número máximo de pasos para el método LASSO.
lassoTol Especifica el criterio de convergencia para el método LASSO.
logLikeNull Cuando se establece en True, muestra el -2 log-verosimilitud del modelo NULO.
model Nombra la variable dependiente, los efectos explicativos y las opciones del modelo.
multipass Cuando se establece en True, niveliza la tabla de datos de entrada cada vez que se lee.
nClassLevelsPrint Limita la visualización de los niveles de clase. El valor 0 suprime todos los niveles.
noStdErr Cuando se establece en True, no calcula la matriz de covarianza ni ninguna estadística que dependa de ella.
optimization Especifica la técnica y las opciones para realizar la optimización.
output Crea una tabla en el servidor que contiene estadísticas a nivel de observación, calculadas después de ajustar el modelo.
outputTables Lista los nombres de las tablas de resultados para guardar como tablas CAS en el servidor.
partByFrac Especifica las fracciones de los datos que se utilizarán para la validación y la prueba.
partByVar Nombra la variable y sus valores para particionar los datos en roles de entrenamiento, validación y prueba.
polynomial Especifica un efecto polinómico.
selection Especifica el método y las opciones para realizar la selección del modelo.
spline Expande variables en bases de spline cuya forma depende de los parámetros especificados.
ss3 Cuando se establece en True, realiza pruebas de efectos de Tipo 3.
strata Nombra la variable que identifica los estratos para un análisis estratificado.
strataMissing Cuando se establece en True, permite valores perdidos como valores válidos de la variable STRATA.
table Especifica la tabla de datos de entrada.
weight Nombra 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?

Escenarios asociados

Caso de uso
Análisis de Eficacia de Tratamiento y Generación de Código de Puntuación

Una empresa farmacéutica está finalizando un ensayo clínico de Fase III. Necesitan analizar el tiempo de supervivencia de los pacientes bajo un Nuevo Tratamiento frente al Están...

Caso de uso
Predicción de Abandono (Churn) Masivo con Selección de Variables LASSO

Un operador de telecomunicaciones tiene una base de datos masiva de clientes con cientos de métricas de comportamiento (minutos usados, datos, quejas, antigüedad, etc.). Quieren...

Caso de uso
Análisis de Fiabilidad de Maquinaria con Datos Faltantes (Edge Case)

Una planta industrial analiza el tiempo hasta el fallo de motores. El análisis debe ser estratificado por 'Ubicación de Fábrica' para controlar el ambiente. Sin embargo, los sen...