PROC FREQ en SAS, como su nombre, nos da los recuentos de frecuencia, así como otros estadísticos que ayudan en el análisis de los datos. Pero el procedimiento Proc Freq puede hacer algo más que dar el recuento.
Contenido de la página
¿Qué es PROC FREQ?
PROC FREQ es un procedimiento para analizar el recuento de datos. Se utiliza para obtener recuentos de frecuencias para una o más variables individuales o para crear tablas de dos vías (tabulaciones cruzadas) a partir de dos variables.
PROC FREQ también se utiliza para realizar pruebas estadísticas sobre datos de recuento.
PROC MEANS es otro procedimiento de SAS, que puede utilizar para calcular estadísticas descriptivas como encontrar la media, la desviación estándar, los valores mínimos y máximos, y muchos más cálculos estadísticos.
Proc freq puede ser el primer procedimiento en el que pensaría cuando el resultado necesario es un recuento. Para el propósito de este tutorial, he tomado el ejemplo del conjunto de datos SASHELP.HEARTS. Aquí, se puede utilizar para encontrar el número de sujetos con bp_status=’Normal’, contar el número de sujetos MASCULINO y FEMENINO en el conjunto de datos.
¿Pero qué pasa si el resultado que se necesita no es necesariamente un recuento? Proc freq puede ser una herramienta útil para propósitos distintos al conteo. Los siguientes son sólo algunos de los tipos comunes de preguntas que pueden surgir y que encajan en esta categoría:
- ¿Qué porcentaje de Hombres y Mujeres tienen enfermedades del corazón?
- ¿Cuál es el recuento de sujetos que murieron debido al colesterol alto?
- ¿Cuál es la causa de muerte de los sujetos?
- ¿Quiénes son los sujetos impactados?
- ¿Algunos sujetos tienen registros no únicos?
- BY Proporciona análisis separados para cada grupo BY
- EXACT Solicita pruebas exactas.
- OUTPUT Solicita un conjunto de datos de salida.
- TABLAS Especifica tablas y solicita análisis.
- TEST Solicita pruebas para medidas de asociación y acuerdo.
- WEIGHT Identifica una variable de peso.
El proc freq puede no ser el primer método pensado para responder a preguntas como estas, pero puede ser una opción muy rápida y eficiente de utilizar.
¿Por qué el proc freq puede ser un buen candidato para estas respuestas rápidas? En primer lugar, en estos casos, hay menos mecanografía que otros métodos. Esto puede ahorrar tiempo, así como reducir los errores tipográficos.
Además, es posible que ya haya algunas freqs en marcha para comprobar un problema cuando surjan más preguntas. Así que obtener los resultados de los recuentos de frecuencia existentes en lugar de procesar los datos puede ser un siguiente paso lógico.
Finalmente, utilizando los conjuntos de datos de salida proporcionados por proc freq, hay listas fácilmente disponibles de valores únicos, combinaciones y recuentos.
Sintaxis de PROC FREQ
Declaraciones de PROC FREQ
Opciones del PROC FREQ
El PROC FREQ tiene varias peticiones de salida posibles. La más común es la opción OUT= que se utiliza para crear un conjunto de datos SAS de una tabulación particular.
Las opciones para la declaración de la tabla van seguidas de una barra. La «/» resuelve la ambigüedad de si la palabra que se utiliza es un nombre de variable o una palabra clave de SAS y así la «/» le dice a SAS que los argumentos para la tabla terminan y lo que está después de las opciones es para modificar el comportamiento por defecto de la declaración.
Otro ejemplo es la opción NOCOL cuando se utiliza, solicita a SAS que no muestre los porcentajes de las columnas.
Ejemplo de PROC FREQ
A continuación se muestra un uso básico de PROC FREQ en SAS, para obtener recuentos del número de Estudiantes observados en cada categoría de Género.
proc freq data=sashelp.class;table sex;run;
Tablas edad*peso / CHISQ;
La declaración anterior solicita que se informe del chi-cuadrado y de las estadísticas relacionadas para la tabulación cruzada A*B.
Escenario 1. ¿Cuál es el recuento de hombres y mujeres con el estado de bp_alto y el estado de peso de sobrepeso?
Para este tipo de escenarios, se podrían utilizar los pasos de datos y Sorts o proc SQL es otra opción. Un paso de datos podría ser el primer pensamiento para una solución. Esto implica primero, ordenar las necesidades de datos usando proc sort. Luego se deben seleccionar los registros de interés y de sexo único (paso de datos). Luego la salida del registro (proc print).
¡Pero proc freq puede responder a esta pregunta en un bloque de código sin un paso de datos! Un proc freq puede ser usado con una sentencia WHERE para subsetar al estado de bp y peso.
proc freq data=sashelp.heart;where bp_status='High' and weight_status='Overweight';tables sex /nocum;run;
Se puede utilizar entonces una sentencia TABLES de sexo para obtener una lista única del género incluido en ese subconjunto. La opción NOCUM se utiliza para excluir la frecuencia acumulada del resultado.
Escenario 2: ¿Qué productos se vieron afectados por el valor de la predicción?
Para este escenario, he utilizado el conjunto de datos SASHELP.PRDSALE. Imagine que se ha encontrado que hay algunos productos en los que el precio de venta real es mayor que el precio predicho.
La primera pregunta es probable: ¿Cuáles son esos productos que tienen el real mayor que el predicho?
Pero este es el tipo de pregunta en el que los resultados pueden llevar a muchas preguntas de seguimiento y el alcance de la investigación y el análisis puede ampliarse requiriendo pasos de codificación adicionales para llegar a la causa raíz del problema.
Independientemente del método que se siga, la investigación comenzará con un conjunto de datos que contenga tanto los datos de laboratorio como la fecha de consentimiento informado para su comparación.
Esta pregunta puede responderse trabajando dentro de un paso de datos o utilizando el método proc freq.
Método de paso de datos:
Trabajando dentro de un paso de datos, si el conjunto de datos no está ya ordenado, vendría primero un proc sort y luego un paso de datos para seleccionar los valores únicos del producto de interés.
proc sort data=sashelp.prdsale out=sale;by product;run;data unique_product(keep=product);set sale(where=(actual > predict));by product;if first.product;run;
Método proc freq:
Trabajando con un proc freq, podríamos simplemente hacer un freq con USUBJID en la sentencia TABLES además de utilizar la sentencia WHERE para subsetar a los registros con issue:
proc freq data=sashelp.prdsale;where actual gt predict;tables product /list missing nocum;run;
Una.Way Frequency Tables
Puede utilizar PROC FREQ para producir tablas de la frecuencia/conteo por categoría y realizar en los conteos.
Utilizando la opción ORDER=FREQ
proc freq data=data.flighttravelers order=freq;table day_of_booking;run;
- PROC FREQ en el ejemplo anterior incluye la opción ORDER=FREQ.
- Usar la opción ORDER=FREQ le ayuda a realizar rápidamente un análisis de qué categorías tienen más y menos recuentos.
- La columna «Frecuencia» da el recuento del número de veces que la variable day_of_booking toma el valor de la columna.
- La columna «Porcentaje» es el porcentaje del total.
- Las columnas «Frecuencia acumulada» y «Porcentaje» informan de un aumento del recuento y del porcentaje para los valores de day_of_booking.
Se utiliza este tipo de insights para conocer la distribución de las categorías en su conjunto de datos.
Por ejemplo, en estos datos, 28 personas han reservado vuelos en domingo.
Utilizando la opción ORDER=FORMATTED.
Usando la opción ORDER=FORMATTED puedes controlar el orden en el que se mostrarán las categorías en la tabla.
Antes de usar esta opción, necesitas crear un formato personalizado para definir el orden que quieres en la salida.
proc freq order=formatted data=data.flighttravelers;tables day_of_booking;title "Example of PROC FREQ with Formatted Values";format day_of_booking $dayfmt.;run;
Si los datos ya están resumidos puede utilizar la sentencia WEIGHT para indicar las variables que representan el recuento.
proc freq;weight count;title 'Reading Summarized Count data';tables category;run;
PESO COUNT indica a PROC FREQ que los datos de la variable COUNT son recuentos. Aunque hay dos registros para CENTS, el programa es capaz de combinar el PESO en una sola categoría CENTS (252 CENTS).
Prueba de bondad de ajuste utilizando PROC FREQ en SAS
PROC FREQ en SAS también puede utilizarse para probar la bondad de ajuste de la tabla de una vía. Una prueba de bondad de ajuste de una sola población es una prueba que se utiliza para determinar si la distribución de frecuencias observadas en los datos de la muestra representa el número esperado de ocurrencias para la población.
Suponiendo que el número de observaciones es fijo.
Las hipótesis que se prueban son las siguientes:
- H:0 La población sigue la distribución hipotetizada.
- H: a La población no sigue la distribución hipotetizada.
Una prueba de chi-cuadrado es una de las pruebas de bondad de ajuste. Se puede tomar una decisión basada en el valor p asociado a ese estadístico.
Un valor p bajo indica que los datos no siguen la distribución hipotetizada, o teórica.
Si el valor p es suficientemente bajo (normalmente <0.05), rechazará la hipótesis nula.
La sintaxis para realizar una prueba de bondad de ajuste es la siguiente:
PROC FREQ;
Variable de tablas / CHISQ TESTP=(lista de ratios);
Ejemplo:
Una aerolínea operaba vuelos diarios a varias ciudades de la India. Uno de los problemas de esta aerolínea son las preferencias alimentarias de los pasajeros. El director de operaciones del capitán cocinero cree que el 35% de sus pasajeros prefieren comida vegetariana, el El 20% comida baja en calorías y el 5% solicita comida para diabéticos.
Se eligió al azar una muestra de 500 pasajeros para analizar las preferencias alimentarias y los datos se muestran a continuación.
Realizaremos una prueba CHI-SQURE para comprobar si la creencia del Capitán Cook es verdadera al alfa=0.05
Tipo de alimento | Vegetariano | No vegetariano | Bajo enCalorías | Diabético |
---|---|---|---|---|
Número de pasajeros | 190 | 185 | 90 | 35 |
Solución:
proc freq data=airlines order=data;weight no_of_passengers;title 'goodness of fit analysis';tables foodtype / nocum chisq testp=(0.35 0.40 0.20 0.05);run;
- Los datos se resumen como por el PESO Número_de_pasajeros.
- El ORDER=DATA se utiliza para ordenar los datos como en el conjunto de datos de entrada. Las frecuencias se basan en la variable Tipo_de_alimentos.
- Las sentencias /NOCUM CHISQ y TESTP= se utilizan para calcular la prueba de bondad de ajuste.
- Las relaciones de la prueba se basan en el porcentaje de progenie esperado de cada una de las cuatro categorías.
- La opción NOCUM solicita una tabla sin la columna acumulativa.
Nota: debe utilizar la opción ORDER=DATA para asegurarse de que las proporciones hipotetizadas que aparecen en la sentencia TESTP= coinciden correctamente con las categorías de los datos de entrada.
El valor p de la prueba chi-cuadrado(p=7,4107) es mayor que el valor crítico(a=0,05), por lo que concluimos que la creencia del Capitán Cook sobre las preferencias alimentarias es cierta.
Prueba de Independencia Chi-Cuadrado – Analizando tablas de dos vías usando PROC FREQ en SAS
Usando PROC FREQ en SAS podemos realizar la prueba de Independencia Chi-Cuadrado, probamos si dos o más grupos son estadísticamente independientes o no.
La sentencia TABLES con dos o más variables listadas y separadas por un asterisco crea una tabla de tabulación cruzada para relacionar dos variables.
La tabla de tabulación cruzada se suele llamar tabla de contingencia.
El recuento del número de ocurrencias en una muestra a través de dos variables de agrupación crea una tabulación cruzada.
En el siguiente ejemplo queremos determinar la relación entre el delito y el consumo de alcohol.
La variable independiente es el DELITO y la variable dependiente es el BEBEDOR.
Así, el enunciado de la Tabulación Cruzada será
Crime*DRINKER
La hipótesis nula y alternativa en este caso es:
- h_0 : Las variables son independientes lo que significa que no hay asociación de crimen y consumo de alcohol
- h_a : Las variables son dependientes, lo que significa que la tasa de criminalidad depende del consumo de alcohol
proc freq data=drinkers;weight count;tables crime*drinker/chisq expected norow nocol nopercent;title 'chi square analysis of a contingency table';run;
Por defecto, la tabla mostrará cuatro números en cada celda son la frecuencia global, el porcentaje global, el porcentaje de la fila y el porcentaje de la columna como a continuación.
El EXPECTED especifica que los valores esperados deben ser incluidos en la tabla, y NOROW, NOCOL, y NOPERCENT le dicen a SAS que excluya estos valores de la tabla.
Observe las estadísticas de la salida. El valor de chi-cuadrado es 49,5660 y p<0,0001.
Por lo tanto, se rechaza la hipótesis nula, es decir, no hay asociación (independencia) y se concluye que hay evidencia de una relación entre el estado de consumo de alcohol y el tipo de delito cometido.
La mayoría de los valores esperados se acercan a los valores observados, mientras que en el caso de Fraude el valor observado(63) es diferente al esperado(109.14).
Esta información lleva a la conclusión de que los implicados en el fraude son menos propensos a beber alcohol.
Calcular el riesgo relativo utilizando PROC FREQ en SAS
Las tablas de contingencia de dos en dos se utilizan a menudo mientras se examina una medida de riesgo. En un examen médico, este tipo de tablas se construyen cuando una variable representa la presencia o ausencia de la enfermedad y la otra indica algún factor de riesgo.
Una medida de este riesgo en un estudio de casos y controles se denomina odds ratio (OR).
En un estudio de casos y controles, un investigador toma una muestra de sujetos y busca en el tiempo cualquier exposición o no exposición a la enfermedad.
En un estudio de cohortes, los sujetos se seleccionan por la presencia o ausencia de riesgo y luego se observan a lo largo del tiempo para ver si desarrollan un resultado, la medida de este riesgo se llama riesgo relativo (RR).
La relación ODDS es cuántas veces más probable es encontrar una exposición en alguien con enfermedad en comparación con encontrar la exposición en alguien sin la enfermedad.
El riesgo relativo indica cuántas veces más o menos probable es que una persona expuesta desarrolle un resultado en relación con una persona no expuesta.
En cualquier caso, una medida de riesgo (OR o RR) igual a 1 indica que no hay riesgo.
Una medida de riesgo diferente a 1 representa un riesgo. Suponiendo que el resultado estudiado sea indeseable.
- Medida de riesgo >1 indica un aumento del riesgo del resultado.
- Medida de riesgo <1 implica un riesgo reducido del resultado.
- Medida de riesgo = 1 indica que no hay riesgo.
En PROC FREQ, la opción para calcular los valores de OR o RR es RELRISK y aparece como una opción de la sentencia TABLES como se muestra aquí:
TABLES CHOLESTROLDIET*OUTCOME / CHISQ RELRISK;
Ejemplo
proc freq data=HeartDisese order=data;title 'Case-Control Study of High Fat/Cholesterol Diet';TABLES CHOLESTROLDIET*OUTCOME / CHISQ RELRISK;exact pchi or;weight Total;run;
La frecuencia nos indica cuántos sujetos tenemos en la dieta BAJA en colesterol con resultado NO/SÍ de enfermedad cardíaca.
Interpretando la primera fila, tenemos 6 sujetos con Colesterol BAJO que NO tienen enfermedad cardiaca mientras que 2 sujetos con Colesterol BAJO tienen Enfermedad Cardiaca.
La frecuencia indica el valor real al valor observado.
El porcentaje es el porcentaje global que indica que entre todos los sujetos el 26,09 % de las personas están en la dieta BAJA de colesterol y no tienen Enfermedad del Corazón.
El porcentaje de la fila nos dice el porcentaje de sujetos que están en la dieta BAJA de colesterol NO tiene enfermedad del corazón de los 8 sujetos que están en la dieta BAJA de colesterol. es decir, el 75% de las personas que están en la dieta BAJA en colesterol no tienen enfermedades del corazón.
Porcentaje COL nos dice el porcentaje de sujetos que no tienen enfermedades del corazón está en la dieta BAJA en colesterol. es decir, 6 de cada 10 que es el 60%. mientras que hay un 80% de personas que tienen enfermedades del corazón están en la dieta ALTA en colesterol.
La interpretación del test CHI-SQUARE nos dice la asociación de estas variables entre lo esperado y lo observado.
La estadística Chi-Cuadrado (4.9597) son menores que el valor P(0.0259) lo que indica que, hay una asociación entre lo esperado y lo observado.
La Advertencia
Una de las suposiciones de la prueba CHI- CUADRADO es que el valor observado en cada celda debe ser mayor que 5. En el ejemplo anterior, tenemos 4 y 2 que son menores que 5. En estos casos, es más apropiado utilizar la prueba exacta de Fisher.
La prueba exacta de Fisher (0.0393) que es estadísticamente significativo a un 5% de alfa. por lo que podemos decir que hay una asociación y que quizás una dieta ALTA en grasas está asociada a un ALTO riesgo de enfermedades del corazón.
La afirmación EXACTA es para el PICHI que significa el valor P para el CHI-SQUARE da como resultado la tabla de abajo.
- text{Odds ratio} = frac {text{ods de exposición en un grupo}}{text{ods de exposición no en un grupo}}
- Frac {6/2} {4/11} = 8,25
Razón de odds – 8,25 con un límite de confianza del 95% lo que significa que las probabilidades de tener una enfermedad del corazón es 8 veces más que las personas que no tienen una enfermedad del corazón
El riesgo relativo de 2,88 indica que la enfermedad del corazón es 2,88 veces más en el grupo de ALTA GRASA. (Riesgo aumentado).
El riesgo relativo de 0,34 nos dice que, Hay un riesgo disminuido (0,34 veces Menos)de colesterol BAJO y enfermedad cardíaca.
Como hemos especificado EXACTAMENTE en Ratio ODDs, obtendremos la última tabla como a continuación.
La odds ratio es la misma que la anterior que es de 8.25 pero también da el límite de confianza exacto.
Descargue Proc-Freq, archivos de ejercicios,…