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, un 1% son fraudulentas. Si realizo un modelo puedo estar seguro al 99% de que todas mis compras son correctas, en este caso hemos de realizar un sobremuestreo para incrementar nuestros casos de fraude y poder detectar los patrones.

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_psoe.jpg

Programa del PP:

programa_pp.jpg

Esto que véis 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. A continuación tenéis el código empleado para realizar estos gráficos. Emplea la librería snippets que nos dio a conocer Jose Luis para la realización de la nube de palabras. Recordad que tenéis que guardar en modo texto los programas electorales de ambos partidos y modificar la ubicación de los ficheros:

Análisis del programa electoral del Partido Popular antes de las elecciones en España

Ya empleamos R en alguna entrada anterior para analizar textos. Ahora nos metemos con el programa electoral del Partido Popular a 20 días de las elecciones en España. En este link podéis descargaros el programa del Partido Popular. Lejos de lo insustanciales que suelen ser este tipo de documentos y alguna frase mítica del tipo «Crecimiento sin empleo no es recuperación» nos limitaremos a contar las palabras que emplean en este programa.

Chart Tools un add in imprescindible para Excel

El add-in jk-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:

chart-tools-1.png

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. Con Chart Tools además podemos cambiar el tamaño de los gráficos de una hoja. Así todos nos quedarán iguales…

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 como 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 arrays 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:

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

grafico_actuarial_r.png

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:

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 sólo. 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 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:

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.

transfomacion_kettle.png

Lo primero que tenemos que hacer es crear una conexión a nuestra BBDD. Hace tiempo ya hablamos de esta labor con Postgres. Una vez creada la conexión comprobamos su correcto funcionamiento y el primer paso será una Entrada Tabla donde seleccionaremos la tabla que deseamos describir:

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 link. 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:

Números aleatorios con SAS

En un sólo 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;

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 con las palabras

#que componen este vector

texto_split = strsplit(texto, split=" ")

texto_columnas = data.frame(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 3 líneas podemos hacer cosas muy interesantes los lectores habituales ya sabrán por donde voy y como obtener los debates del Congreso de los Diputados. Saludos.

Lecciones de economía de un ignorante. La prima de riesgo (y la madre que la parió)

El término prima de riesgo está todo el día y a todas horas en los informativos españoles. La bolsa baja porque la prima de riesgo sube, ahora baja, ahora estamos por encima de Italia, luego por debajo, los franceses asustados,… En fin «los mercados» nos tienen asustados porque están locos, algunos llaman a esto volatilidad que suena más técnico. Y los menos puestos os preguntaréis ¿que es la prima de riesgo? Pues aquí estoy yo para transmitir mi ignorancia. Me centro en la zona Euro.