sábado, 8 de junio de 2024

SAS: un lenguaje de programación para manipular datos

Ya hemos hablado de lenguajes quizás no muy conocidos como OpenEdge ABL. En esta ocasión hablaremos de SAS Programming.

SAS (Statistical Analysis Software) es una lataforma software y un lenguaje de programación opera principalmente sobre tablas de datos. Influido por PL/1, un lenguaje de programación de propósito general adecuado para programación comercial, científica, no científica y de sistemas.

Puede usar consultas SQL para la manipulación de los datos de las tablas.

Se usa para análisis avanzado, business intelligence, gestión de datos y analítica predictiva.

Existen dos intérpretes de dicho lenguaje: uno desarrollado por SAS Institute y otro por la empresa World Programming.

/**  Hola, mundo en SAS  **/
data HolaMundo;
   msg = "Hola,mundo !!";
run;

/**  Imprimir **/
proc print data = HolaMundo;
run;

Como se puede observar la sintaxis es similar a la de PL/1.

Los tipos de datos en SAS son:

  • CHAR o CHARACTER.
  • INT32.
  • INT64.
  • NUMERIC (DOUBLE).
  • VARBINARY.
  • VARCHAR.
  • etc.

Aplicaciones de SAS Programming:

  • Análisis Estadístico: Realización de análisis descriptivo e inferencial. 
  • Modelos Predictivos: Construcción de modelos de predicción usando regresión, árboles de decisión, y técnicas de machine learning. 
  • Business Intelligence: Generación de informes y dashboards para la toma de decisiones. 
  • Gestión de Datos: Limpieza, transformación y gestión de grandes volúmenes de datos.
  • Bioestadística: Aplicaciones en investigación clínica y farmacéutica.

Componentes de SAS Programming:

  1. Data Steps:

    • DATA Step: Se utiliza para crear y manipular datasets. Incluye declaraciones para leer datos de fuentes externas, combinar y transformar datos, y preparar datos para análisis.
    • PROC Step: Procedimientos para realizar análisis estadísticos, generar informes y gráficos, gestionar datos, y realizar muchas otras tareas. Ejemplos incluyen PROC MEANS para estadísticas descriptivas, PROC REG para regresión lineal, y PROC FREQ para análisis de tablas de contingencia.
  2. Macros:

    • SAS Macro Language permite la automatización de tareas repetitivas y la personalización de código SAS. Facilita la creación de programas más dinámicos y eficientes.
  3. SAS Functions:

    • Funciones integradas que realizan operaciones sobre datos, como manipulación de strings, cálculos matemáticos, y operaciones de fecha y hora.
  4. ODS (Output Delivery System):

    • Permite la exportación de resultados a varios formatos como HTML, PDF, Excel, y otros, facilitando la presentación y distribución de resultados.
  5. Libraries:

    • SAS Libraries son colecciones de datasets. Las bibliotecas pueden ser locales (almacenadas en el equipo) o remotas (almacenadas en un servidor).

Algunos ejemplos de código:

Exportar datos a HTML (ODS):

ODS HTML FILE='output.html';
PROC PRINT DATA=mydata;
RUN;
ODS HTML CLOSE;

Uso de MACROS:

%MACRO PrintData(ds);
    PROC PRINT DATA=&ds;
    RUN;
%MEND PrintData;

%PrintData(mydata);

Uso de PROC Step:

PROC MEANS DATA=mydata;
    VAR Age Height Weight;
RUN;

Uso de DATA Step:

DATA mydata;
    INPUT Name $ Age Height Weight;
    DATALINES;
    John 25 70 180
    Jane 30 65 150
    ;
RUN;

SAS es ampliamente utilizado en industrias como la salud, finanzas, marketing, y gobierno debido a su robustez, capacidad de manejar grandes datasets y su capacidad para realizar análisis complejos.

Ejemplo 1. Crear un programa que calcule los grados Celsius.

Debemos hacer lo siguiente:

  1. Crear un dataset con los valores en grados Fahrenheit.
  2. Convertir los valores a grados Celsius con la fórmula: C=9(F32)×5
  3. Mostrar los resultados.
/* Paso 1: Crear un dataset con valores en Fahrenheit */
DATA temperature_fahrenheit;
    INPUT Fahrenheit;
    DATALINES;
    32
    68
    77
    104
    ;
RUN;

/* Paso 2: Convertir Fahrenheit a Celsius */
DATA temperature_celsius;
    SET temperature_fahrenheit;
    Celsius = (Fahrenheit - 32) * 5 / 9;
RUN;

/* Paso 3: Mostrar los resultados */
PROC PRINT DATA=temperature_celsius;
    TITLE "Conversión de Fahrenheit a Celsius";
RUN;

Ejemplo 2. Un programa que calcule el número de pulsaciones de una persona. Para este programa repetiremos el mismo procedimiento del anterior. Crearemos un dataset con valores que incluirán nombre, edad y peso de la persona; aplicaremos una fórmula ( Pulsaciones por minuto=210−(0.5×edad)−(0.11×peso en kg) ) y mostraremos el resultado.

/* Paso 1: Crear un dataset con la edad y el peso de las personas */
DATA personas;
    INPUT Nombre $ Edad Peso;
    DATALINES;
    Juan 25 70
    Maria 30 60
    Pedro 40 80
    Ana 35 55
    ;
RUN;

/* Paso 2: Calcular el número de pulsaciones por minuto */
DATA pulsaciones;
    SET personas;
    Pulsaciones = 210 - (0.5 * Edad) - (0.11 * Peso);
RUN;

/* Paso 3: Mostrar los resultados */
PROC PRINT DATA=pulsaciones;
    TITLE "Cálculo del Número de Pulsaciones por Minuto";
RUN;

El resultado de ambos programas se verá reflejado en una tabla. Y es que SAS trabaja como si todo fuera una tabla con datos procesados.

Es suficiente por el día de hoy. Se continuará en próximas entregas.

Enlaces:

https://www.sas.com/es_mx/home.html
https://altair.com/sas-language-capabilities?utm_source=worldprogramming.com&utm_medium=redirect
https://ms.mcmaster.ca/peter/s4p03/s4p03_0304/sasnotes.htm

No hay comentarios:

Publicar un comentario