El sobremuestreo ¿mejora mi estimación?

El sobremuestreo (oversampling) es una técnica de muestreo que se emplea habitualmente cuando tenemos una baja proporción de casos positivos en clasificaciones binomiales. Los modelos pueden “despreciar” los casos positivos por ser muy pocos y nuestro modelo no funcionaría. Para incrementar el número de casos positivos se emplea el sobremuestreo. Ejemplos habituales pueden ser los modelos de fraude: un 99% de las compras son correctas y un 1% son fraudulentas. Si realizo un modelo sin tratar este desequilibrio, el algoritmo puede estar seguro al 99% de que todas las compras son correctas, ignorando el fraude. En este caso hemos de realizar un sobremuestreo para incrementar nuestros casos de fraude y poder detectar los patrones. ...

6 de noviembre de 2011 · rvaquerizo

Comparamos los programas electorales de PP y PSOE con R

Replicamos el post anterior sobre el análisis del programa electoral del PP y lo comparamos con el programa electoral del PSOE. Programas electorales que presentan estos partidos políticos españoles de cara a las elecciones del 20-N. No vamos a entrar en el contenido de ambos programas; sólo nos limitamos a representar gráficamente su contenido con nubes de palabras. Programa del PSOE: Programa del PP: Esto que veis es el análisis más completo que hay sobre los programas electorales. Lo malo (o lo bueno) es que cada uno ha de sacar sus propias conclusiones. Yo he sacado alguna impresión interesante. ...

3 de noviembre de 2011 · rvaquerizo

Chart Tools un add in imprescindible para Excel

El add-in JWalk Chart Tools de Excel, que os podéis descargar aquí, nos ofrece una serie de funcionalidades que pueden ayudarnos a trabajar con gráficos en Excel. Una vez descargado y activado el add-in, al seleccionar un gráfico podemos emplear este complemento. En la primera pestaña podemos añadir etiquetas personalizadas a nuestros gráficos de Excel, algo que ya realizamos con macros: Basta con seleccionar la serie y elegir el rango de datos que contiene las etiquetas. Para trabajar con etiquetas tenemos otro add-in de Excel que os recomiendo que descarguéis: el XY Chart Labeler. ...

28 de octubre de 2011 · rvaquerizo

Trucos SAS. Operaciones con tablas de dimensiones con SAS

Algunos llaman a las tablas de dimensiones tablas de lookup; yo me niego. Con SAS ya hemos visto cómo crear cruces de tablas de dimensiones con tablas de hechos a través de formatos; bajo mi punto de vista, el método más eficiente. Pero hoy quería traeros un ejemplo de cruce de tabla pequeña con tabla grande a través de array multidimensionales con SAS. Se trata de guardar los valores de la tabla pequeña en un array temporal multidimensional cuando leemos la tabla grande. Para ilustrar esta tarea, he preparado un ejemplo: ...

25 de octubre de 2011 · rvaquerizo

Gráficos de barras y líneas en dos ejes con R

Aunque no es recomendable crear gráficos con 2 ejes, hoy quería mostraros un gráfico muy común realizado con R. Se trata del gráfico de barras y líneas para un factor. Las barras serán un valor de exposición del factor y las líneas pueden ser una frecuencia siniestral y estarán en un eje secundario. Con esto crearemos nuestro gráfico de barras y líneas en dos ejes. Simulamos los datos para crear el gráfico con R: ...

26 de septiembre de 2011 · rvaquerizo

Trucos Excel. Unir varios Excel en uno

Tenía pendiente revisar una de las entradas más visitadas del blog. Trata la problemática de unir varios Excel en uno solo. En el caso concreto, servía para unir varios Excel generados por SAS a través de una macro en SAS. En la entrada de hoy, quiero trabajar con un ejemplo que os podéis descargar aquí en formato RAR. De los archivos que comparto, el más interesante es el que llamamos unir_varios_excel.xlsm: se trata de un archivo Excel para macros que contiene un par de macros más que interesantes. Un pantallazo de este libro de Excel: ...

21 de septiembre de 2011 · rvaquerizo

Univariantes de campos de nuestra BBDD con Kettle

El Kettle no sólo puede servirnos para subir y bajar tablas a nuestra BBDD. También puede ayudarnos a describir las tablas de nuestras BBDD de una forma muy sencilla. El paso Univariate Statistics será nuestro aliado para esta sencilla tarea. Lo primero que tenemos que hacer es crear una conexión a nuestra BBDD. Hace tiempo ya hablamos de esta labor con PostgreSQL. Una vez creada la conexión, comprobamos su correcto funcionamiento; el primer paso será una Entrada Tabla donde seleccionaremos la tabla que deseamos describir: ...

12 de septiembre de 2011 · rvaquerizo

Análisis de textos con R

Vamos a replicar un ejemplo ya presentado con WPS en esta misma bitácora. Tratamos de hacer algo tan sencillo como contar palabras y, para ello, empleamos de nuevo un debate del Congreso de los Diputados de España. Estas intervenciones las transformamos en un fichero de texto que vosotros podéis descargaros de este enlace. Bien, partimos de un archivo de texto de Windows y con él vamos a crear un data.frame de R que contendrá las palabras empleadas en esa sesión del Congreso español. Pasamos a analizar el código empleado: ...

5 de septiembre de 2011 · rvaquerizo

Números aleatorios con SAS

En un solo paso data quiero mostraros las funciones más habituales para generar números aleatorios con SAS. Una entrada para que os copiéis el código y lo analicéis con SAS. Quiero que sirva de guía para que recordéis las funciones más empleadas; además, será muy útil para los que se estén iniciando en el uso de SAS: data aleatorios; drop a b raiz n p; raiz = 20; do i = 1 to 2000; * DISTRIBUCIÓN UNIFORME; uniforme = ranuni(raiz); * ALEATORIO ENTRE 2 NUMEROS; a = 2; b = 10; aleatorio_entre = a + (b - a) * ranuni(raiz); * NORMAL(0,1); normal = rannor(raiz); * NORMAL(a,b); normal_a_b = b * rannor(raiz) + a; * POISSON MEDIA a; poisson = ranpoi(raiz, a); * BINOMIAL TAMAÑO n Y PROBABILIDAD p; n = 10; p = 0.5; binomial_n_p = ranbin(raiz, n, p); * EXPONENCIAL 1; exponencial_1 = ranexp(raiz); * GAMMA(a); gamma_l = rangam(raiz, a); * VALORES ALEATORIOS ENTRE 1 Y 5 CON PROBABILIDADES p1 p2 ...; valores = rantbl(raiz, 0.3, 0.1, 0.2, 0.2, 0.6); output; end; run;

27 de agosto de 2011 · rvaquerizo

Trucos R. De string a data.frame de palabras

Manejo de textos con R en este truco. Partimos de un vector de string y deseamos dividir ese string en palabras y, posteriormente, crear un data.frame de una sola columna con tantos elementos como palabras tenga nuestro vector de cadenas de texto. Es decir, vamos a transformar un texto en una tabla de palabras. Veamos una posible situación: # Este es nuestro elemento inicial texto <- c("Este es el elemento ", "que me gustaría", " poner en una tabla") # Tenemos que generar un data frame con las palabras # que componen este vector texto_split <- strsplit(texto, split = " ") texto_columnas <- data.frame(palabra = unlist(texto_split)) Un código sencillo donde destaca el uso de la función strsplit para crear una lista de palabras con los elementos del vector inicial. Es importante el uso de unlist para realizar el proceso correctamente. Con estas tres líneas podemos hacer cosas muy interesantes; los lectores habituales ya sabrán por dónde voy y cómo obtener los debates del Congreso de los Diputados. Saludos.

9 de agosto de 2011 · rvaquerizo