Archivo de la categoría: Consultoría

COMIENZA LA CUENTA ATRAS. III JORNADAS DE USUARIOS DE R

Por fin están en marcha las III Jornadas de Usuarios de R de España. En este enlace tenéis toda la información disponible. Para esta tercera edición hay que destacar:

  • Serán en Madrid en la Escuela de Organización Industrial
  • Habrá talleres,  bajo mi punto de vista uno de los mayores aciertos
  • Podéis participar, R tiene que salir del ámbito universitario e investigador y pasar al ámbito empresarial. Muchos podéis pensar que yo debería aplicarme el cuento…
  • Necesitan patrocinio. No sólo por temas económicos, también por la repercusion que implica el patrocinio. Todos aquellos que trabajáis en grandes organizaciones podéis poner en contacto al comité organizador  con vuestras empresas
  • También podréis realizar aportaciones voluntarias ya que la asistencia es completamente gratuita
  • Creo que es el punto en el que este foro alcanza su madurez y es el momento de que el mundo empresarial fije sus ojos en R y en la comunidad de usuarios que tiene detrás
  • Y sobre todo y más importante. Podéis conocerme en persona, por muchos asistentes que haya a mi se me ve y no sólo por el Windows 7

Creo que los ingredientes para estas nuevas jornadas garantizan el éxito. ¡Nos vemos en noviembre!

Trucos Excel. Área bajo la curva ROC

curva-roc.png

¿Curva ROC y Excel? ¡Si no tiene nada que ver! No del todo.  En ocasiones tenemos que pintar las curvas ROC y empleamos las herramientas específicas para ello, sin embargo es habitual que nuestros resultados sean presentados en Excel (demasiado habitual). En ese caso creamos nuestros datos para llevarlos a Excel y realizamos nuestro gráfico. Ya tenemos nuestra tabla y hacemos un algo muy parecido a lo que tenemos más arriba. La curva ROC es un mecanismo para evaluar nuestro modelo y compara la especificidad que es la probabilidad de clasificar mal un caso negativo frente a la sensibilidad que es la probabilidad de clasificar correctamente un caso positivo, es decir, falsos positivos frente a verdaderos positivos. El área bajo la curva ROC será un valor entre 0,5 y 1. Cuanto más próximo a 1 mejor será nuestro modelo. Queda pendiente una revisión “en condiciones” de las curvas ROC y de los gráficos lift, mucho mejores cuando tienes que presentar resultados en un área de negocio.

Entonces, ya tenemos el gráfico en Excel y nos piden hayar el área bajo la curva ROC. ¿Cómo lo hacemos esto? Mediante una simulación por método Montecarlo. Creamos números aleatorios y si están por encima de la sensibilidad pues no valen. Posteriormente sumamos los que valen entre todos los que tenemos y hemos obtenido un valor muy próximo al área bajo la curva ROC. En realidad es un método para estimar el área de un póligono. Para entender mejor como se realiza el proceso os un documento de Excel con datos simulados:

curva_roc con datos simulados. Veréis que es muy sencillo. No se puede ser más dinosaurio pero ya verás como a más de uno se le enciende la bombilla. Saludos.

El modelo multivariante en el sector asegurador. Los modelos por coberturas (V)

Debido a la pobre aceptación había dado de lado esta serie de monográficos sobre la tarifa multivariante en el sector asegurador. Pero tengo una lectora que si los seguía y como yo me debo a mis lectores continúo con la serie. Recapitulemos. Como variables dependientes tenemos la frecuencia siniestral y el coste medio de los siniestros, las variables independientes serán aquellas que compongan la estructura de nuestra tarifa, como prototipo para determinar que variables forman parte de nuestro modelo empleamos el multitarificador de ARPEM. Con este planteamiento partimos de dos modelos: el modelo de frecuencias y el modelo de costes medios. Sin embargo a la hora de ajustar es muy importante plantear un modelo para cada una de las garantías. Parece lógico que el modelo multivariante para el contenido en una tarifa de hogar no ha de ser el mismo que el modelo para el continente. O centrándonos en el modelo de autos (sobre el que está girando nuestra serie) es necesario modelizar los siniestros de responsabilidad civil por un lado, los siniestros de daños propios por otro, defensa, robo,…

En el caso de automóviles las garantías a modelizar podrían ser:

• RC
• Daños con franquicia
• Daños sin franquicia
• Robo
• Incencio
• Defensa
• Asistencia
• Lunas
• Ocupantes

Esto es sólo una sugerencia/ejemplo estoy seguro de que algunos opinan que se pueden prescindir de algunas coberturas, pueden aparecer otras, en fin, son ideas personales y basadas en mi experiencia (que bonita expresión) no son axiomas y por tanto no me castiguéis por plantear esta estructura tarifaria para autos. Seguir leyendo El modelo multivariante en el sector asegurador. Los modelos por coberturas (V)

Detalles técnicos del seguro de crédito. El factor de uso del importe concedido

El seguro de crédito me sigue pareciendo muy interesante técnicamente y de vez en cuando hay que dedicarle alguna entrada en el blog. Voy a recordar viejos tiempos escribiendo sobre el factor de uso del importe concedido. Nos ponemos en antecedentes, en el seguro de crédito el riesgo es el impago de una transacción comercial. Las empresas que lo contratan tienen que disponer de información muy exacta de las ventas a crédito a sus clientes a los que llamaremos deudores. Esta información ha de estar en posesión de la compañía aseguradora que cubre la operación ya que en caso de siniestro define la cantidad máxima a indemnizar al asegurado (importe siniestral). Es decir, el asegurado “comunica” a la aseguradora el importe de la venta a su deudor y la aseguradora asume el riesgo de impago sobre un porcentaje del total, tiene un porcentaje garantizado. Un inciso, las aseguradoras de crédito, además, ofrecen información sobre deudores, gestión de recobros,… Pero la función fundamental del seguro de crédito es asumir el riesgo de impago de las transacciones de los deudores con sus asegurados; esta función es imprescindible para el desarrollo de un país, así de claro.

Pero las compañías aseguradoras de crédito se encuentran con un “problema”, es casi imposible ajustar el importe concedido a los deudores con el importe real de la venta. La aseguradora dispone de ventas globales de los asegurados, no por deudor. Además es común entre los asegurados vender por un importe menor del importe concedido, ¿por qué? porque la aseguradora garantiza un porcentaje del importe de la venta, no el total. Si no se produce el impago no conocerá el importe de la venta, la tendencia de los asegurados es asegurar ventas mayores para, en el caso de impago de su deudor, el porcentaje garantizado sobre la venta cubra la práctica totalidad de la venta. Es un poco lioso pero es una postura “muy española”, un ejemplo para facilitar la comprensión del problema:

A vende a B, C y D por valor de 100.000 € al año. La aseguradora tiene un % de garantía de las ventas del 80%. A cubre con nuestra compañía las ventas a B por 30.000 € el resto de operaciones no las cubre, luego tiene un importe concedido de 30.000 €. Si A tiene un siniestro por impago de B tendría que recibir 30.000×80% = 24.000 €, sin embargo A “miente” en sus ventas y vende por valor de 25.000 €, es decir, en realidad usa el 83% del importe condedido. A este % lo llamaremos factor de uso del importe concedido. Técnicamente es una medida de gran importancia para el seguro de crédito, ya que es una medida del importe expuesto al riesgo en las transacciones  imprescindible para la estimación de los importes siniestrales. De ahí su importancia técnica ¿Cómo calcular este factor de uso? Esto es lo problemático, si el concepto puede ser duro su estimación provoca el llanto a más de un técnico. Algún día contaré como nos podemos aproximar a este factor de uso. Saludos.

David gana a Goliat. La sentencia del caso SAS frente a WPS

Estaba esperando que saliera la sentencia. Además cabía la posibilidad de pertenecer a Goliat y tenía la boca cerrada. Y resulta que tenemos una de las sentencias más interesantes en cuanto a software se refiere:

http://www.bailii.org/ew/cases/EWHC/Ch/2010/1829.html

Yo no soy capaz de leerme eso en inglés pero el traductor de Google me ha ayudado:

Por las razones anteriormente expuestas, llego a la conclusión de la siguiente manera:i) Si bien no estoy convencido de que Pumfrey J se equivocó al concluir en Navitaire que, sobre la correcta interpretación del artículo 1 (2) de la Directiva sobre el software, derechos de autor en los programas de ordenador no protege a los lenguajes de programación de la copia, estoy de acuerdo con él que se trata de una cuestión sobre la que se requiere la orientación de la Tribunal de Justicia (véanse los párrafos 211-218 supra).

ii) Aunque yo no estoy convencido de que Pumfrey J se equivocó al concluir en Navitaire que, sobre la correcta interpretación del artículo 1 (2) de la Directiva sobre el software, derechos de autor en los programas de ordenador no protege a las interfaces que se copie en que esto puede lograrse sin descompilar el código objeto, considero que esta es también una cuestión sobre la que se requiere la orientación de la Tribunal de Justicia (véanse los párrafos 219-227 supra).

iii) Aunque yo no estoy convencido de que Pumfrey J se equivocó al concluir en Navitaire que, sobre la correcta interpretación del artículo 1 (2) de la Directiva sobre el software, derechos de autor en los programas de ordenador no protege a las funciones de los programas de la copia, y aunque su decisión sobre ese punto fue confirmada por el Tribunal de Apelación de Nueva, considero que esta es también una cuestión sobre la que se requiere la orientación de la TJCE (véanse los párrafos 228-238 supra).

iv) En el supuesto de que la interpretación Pumfrey J del artículo 1 (2) de la Directiva sobre el software era correcta, WPL no ha vulnerado los derechos de autor de SAS Institute en los componentes de SAS mediante la producción de WPS (véanse los párrafos 245-250 supra).

v) considero que el razonamiento que sustenta la interpretación Pumfrey J del artículo 1 (2) de la Directiva sobre el software también se aplica el artículo 2 (a) de la Directiva sobre Sociedad de la Información, pero de nuevo se trata de una cuestión sobre la que se requiere la orientación de la TJCE (véanse los párrafos 251-256 supra).

vi) En el supuesto de que el artículo 2 (a) de la Directiva sobre Sociedad de la Información debe ser interpretado de la misma manera en que el artículo 1 (2) de la Directiva sobre el software, WPL no ha vulnerado los derechos de autor SAS Institute en los Manuales de SAS mediante la producción o pruebas WPS (véanse los párrafos 257-267 supra).

vii) la utilización WPL de la edición de SAS aprendizaje queda fuera del alcance de los términos de las licencias pertinentes (véanse los párrafos 276-290 supra).

viii) La interpretación del artículo 5 (3) de la Directiva sobre el software es otra cuestión sobre la que se requiere la orientación de la Tribunal de Justicia (véanse los párrafos 291-311 y 314 supra).

ix) En la interpretación del artículo 5 (3), que estoy a favor, use WPL de la edición de aprendizaje es en el artículo 5 (3), y en la medida en que los términos de la licencia evitar que esto son nulos y sin valor, con el resultado de que ninguno de los actos WPL se quejó de un incumplimiento de contrato o de la violación del derecho de autor excepto, quizá, un (véanse los párrafos 313-315 arriba).

x) WPL ha infringido los derechos de autor en los Manuales de SAS de forma sustancial a la reproducción en el Manual de WPL (véanse los párrafos 317-319 supra).

xi) WPL no ha vulnerado los derechos de autor en los Manuales de SAS mediante la presentación de las Guías de WPS (véanse los párrafos 320-329 supra).

Atención a la frase la Directiva sobre el software era correcta, WPL no ha vulnerado los derechos de autor de SAS Institute en los componentes de SAS mediante la producción de WPS. Bueno, pues parece que al gigante le ha salido un duro competidor pero sobre todo hay una sentencia muy interesante sobre “la apertura del código cerrado”.

Sin duda alguna la noticia del verano.

Curso de lenguaje SAS con WPS. Variables

El elemento fundamental de los conjuntos de datos SAS son las variables. Ya las hemos referenciado en capítulos anteriores. Éstas pueden ser numéricas o alfanuméricas. Las variables se pueden crear, eliminar o se pueden recodificar. Todo esto siempre lo haremos mediante pasos DATA. Disponemos de un amplio número de funciones para que todas las variables se ajusten a nuestras necesidades.
Las variables tienen los siguientes atributos:

  • Nombre: no pueden exceder de 32 caracteres o empezar por un número ni tener espacios en blanco
  • Tipo: Numérica o alfanumérica ($)
  • Longitud:  máximo 8 bytes para numérica y 1 – 32,000 para alfnumérica
  • Formato salida de la variable: Por defecto para num BEST12. para numéricas y $w. para alfanumérica
  • Formato de entrada: similar al formato de salida
  • Etiqueta

Un tipo muy especial de variable es el valor perdido o missing. Por defecto la representación del missing para una variable numérica es . y ‘ ‘ para una variable alfanumérica. Para todas las variables podemos emplear operadores de comparación (por ejemplo en sentencias IF) y/o operadores lógicos. Los operadores de comparación son:

  • = EQ
  • ^= NE
  • ¬= NE
  • ~= NE
  • > GT
  • < LT
  • >= GE
  • <= LE
  • IN

Los operadores lógicos son:

  • & AND
  • | OR
  • ! OR
  • ¦ OR
  • ¬ NOT
  • ˆ NOT
  • ~ NOT

Variables numéricas:

Son las variables que representan números, son medidas de cada observación de nuestro ataset. Dentro de las numéricas se incluyen las variables de fecha y hora (un tipo muy especial). Su longitud va esde los 2 a los 8 bytes. El formato que tienen por defecto es BEST12. que es el formato de 12 bytes que SAS considera más adecuado para una variable numérica. La forma más común de representar las variables numéricas es w.[d] donde w representa la longitud de la parte entera y d la longitud de la parte decimal. Seguir leyendo Curso de lenguaje SAS con WPS. Variables

Curso de lenguaje SAS con WPS. Ejecuciones

Hasta la fecha nos hemos aproximado al interfaz de WPS y hemos ejecutado algunos script para trabajar con conjuntos de datos SAS y sobre todo entender que hace el paso DATA, también hemos analizado que son y como trabajan las librerías WPS. En nuevas entregas nos seguiremos centrando en el trabajo con dataset temporales y permanentes. La intención es conocer bien que hace DATA y establecer una metodología de trabajo con WPS. SAS es un lenguaje orientado a la gestión de datos y las personas acostumbradas a programar en otros lenguajes pueden tener muchos problemas conceptuales. Al final, con este manual intentaremos ayudar a todos aquellos que trabajáis con SAS a crear un método que permita a nuestros procesos SAS que funcionen de la forma más óptima para ganar tiempo y espacio en disco los dos elementos más importantes cuando manejamos grandes volúmenes de datos.

Lo más habitual en SAS es la lectura de otros conjuntos de datos para crear subconjuntos de registros o de variables o crear y modificar variables. La sintaxis habitual Seguir leyendo Curso de lenguaje SAS con WPS. Ejecuciones

Curso de lenguaje SAS con WPS. Lectura de ficheros de texto

Leer ficheros de texto con lenguaje SAS no es sencillo debido a la escasa flexibilidad de SAS.  La cosa se complica cuando leemos texto con WPS. Empleando el asistente de SAS y haciendo recall podemos leer ficheros con bastante comodidad. Eso no lo podemos hacer con WPS porque no dispone de asistente ni nada parecido al EFI de SAS. Así que tenemos que tantear con INPUT hasta conseguir leer el fichero correctamente. Pero esta entrada nos permite conocer mejor como funciona el paso DATA. Más adelante veremos como hacerlo con el PROC IMPORT. El primer ejemplo importa un fichero de texto de este tipo:

1 ,479.70055858 ,760.70972521 ,198.59444871 ,75.189163012 ,372.82062293 ,
2 ,754.21879802 ,343.8333852 ,253.53378256 ,398.35220966 ,532.53241281 ,
3 ,554.54856463 ,190.96417175 ,827.15448683 ,537.47661437 ,656.19086086 ,
4 ,377.5517132 ,180.89431253 ,519.43704743 ,814.11889932 ,812.06014837 ,

No tiene cabeceras está delimitado por comas, tiene 6 variables: id, importe1,.., importe5. Conocemos la estructura, el delimitador y las variables:


data importes;
infile "D:\raul\wordpress\curso sas\muestra1.txt" dlm=',';
input id importe1 importe2 importe3 importe4 importe5;
run;

Si estuviera delimitado por tabuladores trabajamos con dlm:


data importes;
infile "D:\raul\wordpress\curso sas\muestra2.txt" dlm='09'x;
input id importe1 importe2 importe3 importe4 importe5;
run;

Es el ejemplo más sencillo DATA genera un dataset que lee de un INFILE y con INPUT creamos un vector de variables que en la terminología de SAS se denomina PDV. Seguir leyendo Curso de lenguaje SAS con WPS. Lectura de ficheros de texto