jueves, 21 de noviembre de 2013

Macro ReplaceInAll - VBA Excel

He decido retomar el blog para compartir algunas herramientas que he creado yo y que me son de mucha utilidad.

Habitualmente trabajo con Microsoft Office, así que he aprendido a programar un poco en VBA para solucionarme algunos problemas en el día a día.

En este caso, me he dado cuenta de que con frecuencia quiero cambiar algo (normalmente, una palabra) de la fórmula de muchas celdas de Excel, que no tienen por qué ser adyacentes. Por ejemplo: Cambiar todas las referencias a $B$4 por $J$5, o por ejemplo cambiar todas las fórmulas de "AVERAGE" a "MIN"

Hasta ahora, tenía que cambiarlo manualmente. Gracias al siguiente macro, puedo cambiar el texto de todas las celdas que tenga seleccionadas:

Sub ReplaceInAll()
Dim xcell As Range
Dim Otxt As String, Ftxt As String
Otxt = InputBox("Introduce el texto a buscar y sustituir en todas las celdas seleccionadas:" & vbCr & vbCr & "ESTA ACCIÓN NO SE PUEDE DESHACER", "Sustituye en las fórmulas")
If Otxt <> "" Then
    Ftxt = InputBox("Introduce el texto a introducir en lugar de '" & Otxt & "':", "Sustituye en las fórmulas")
    If Ftxt = "" Then If MsgBox("Eliminar todas las ocurrencias de '" & Otxt & "'?" & vbCr & vbCr & "ESTA ACCION NO SE PUEDE DESHACER", vbExclamation + vbOKCancel) <> vbOK Then Exit Sub
    For Each xcell In Selection
        xcell.Formula = Replace(xcell.Formula, Otxt, Ftxt, , , vbTextCompare)
    Next xcell
End If
End Sub
Para usarlo sólo hay que copiarlo en un módulo en el editor de VBA de Excel y ejecutarlo.



Espero que resulte útil!

jueves, 25 de octubre de 2012

Estudio de alternativas


En el mundo anglosajón los estudios de alternativas, o estudios multicriterio, se hacen de forma distinta de como se hacen aquí. Creo que entre otras cosas, es por motivos culturales, de cómo se sacan adelante los proyectos en España y como se sacan en los países sajones.

He hecho este esquema sobre cómo se estudian distintas alternativas en EEUU, en inglés, por supuesto!


SCREENING PROCESS
1.       Purpose and needs document.
                    I.     Main purpose of the project.
                  II.     Needs: issues the project should address.
                III.     Goals: product-by of the purpose and needs. General statements, usually relating the following fields: Access, Capacity, Community, Environment, Implementation, Infrastructure, Mobility, Safety and Security.
                IV.     Objectives: concrete things to achieve in order to accomplish the goals.
2.       Define a variety of alternatives to consider:
                    I.      Define a full range of relevant transportation elements, grouped in different categories (alignments, interchanges, lane types or local system improvements, for example).
·        Each element represents a different option or alternative to be assessed.
·        Elements can range from road expansions in different configurations to new infrastructures (LRT, BRT), alignment displacements, changing lane types (HOV, HOT) or cross section modifications. Any action that impacts transportation can be considered.
·        This elements are to be evaluated and filtered through stages I and II of the screening process (Initial screening and Comparative screening), rejecting those options that do not meet the criteria set for each stage of the screening process, for each Goal.
                  II.     Remaining elements are combined to form project alternatives (full corridor alternatives, for example).
·        Each alternative define a potential project-to-be to be assessed.
·        Formed alternatives are to be evaluated and filtered as a whole through stages III and IV of the screening process (Detailed screening and alternative refinement).
                III.     Some elements might not be evaluated as stand-alone alternatives, since they do not individually address project purpose and needs, but could be combined with other alternatives as necessary to improve overall operations. (Transportation demand management –TDM- or Transportation system management – TSM- to reduce transportation demand, for example)
                IV.     To make the list more manageable, some categories or even the project as a whole can be divided in sections (four sections to consider different alignments, for example.).
3.       Screening process:
                    I.     Initial screening (of Alternative Elements): Qualification Evaluation.
·        Define Initial Screening Evaluation Criteria for each Goal.
·        For each element, evaluate whether it complies with the criteria set.
·        Yes/No answers.
·        Discard Elements that do not comply with any of the goals (any “No”). Provide reasons for elimination and summarize in an easy to compare table.
·        Submit results to public opinion.
                  II.     Comparative screening (of Alternative Elements): Qualitative Evaluation.
·        Define Comparative Screening Evaluation Criteria for each Goal.
·        Define Evaluation Measures: For each criterion in the evaluation criteria for each Goal, define what will it take for any Element in a category to meet the criterion in a good, better or the best way (Ex. Any element in the Alignment category will be considered to meet the “Provides access to local residences” criterion for the “Access” Goal in a good way if the alignment is located outside of the corridor, in a better way if it located partially in the corridor, and in the best way if it is located entirely in the corridor).
·        Evaluation Measures can be absolute, or relative between alternatives (Ex. An element can be considered “Best” under an environmental criterion if it has no relevant impacts -absolute- or if it has the least impacts among considered Elements -relative-).
·        Some categories of elements may not be evaluated under every Criterion for each Goal: some criteria are not suitable to evaluate certain categories (i.e. it might not be interesting to evaluate “interchanges“ category by “Minimizes project costs” criterion under Implementation Goal):
·        Evaluate Elements that were not eliminated in the Initial Screening, rating them good/better/best depending on the Evaluation Measures the Element meets for each Criterion.
·        Discard unreasonable alternatives. Provide reasons for elimination and summarize in an easy to compare table.
·        Present results to the public.
ð The remaining elements after the two first screening levels are combined to form several alternatives for the project as a whole (i.e. alternatives for the corridor, not its single elements). Those consolidated alternatives are to be evaluated in the next screening levels.
                III.     Detailed screening (of Corridor Alternatives): Quantitative evaluation.
·        Define Detailed Screening Evaluation Criteria for each Goal. Use statements that are easy to quantify. Clearly state how to measure each alternative as well as any assumptions to be made for each Criterion (i.e. Travel times will be measured from existing traffic model in 2025. or the cost ratios to be used).
·        The objective is to be able to define each alternative comprehensibly and numerically.
·        Measure each alternative to quantify its performance for each criterion. Measure by sections if the study was divided by sections: Each section may need a different alternative.
·        Answers will generally be numbers, although certain criteria might need to be assessed qualitatively instead (good/better/best) if they are difficult to measure (i.e. Daily tons of CO mobile source emissions).
·        Discard Elements that score unsatisfactory records. Provide reasons for elimination and summarize the results.
·        Submit results to public opinion. Further recommendations for discarding or modifying alternatives can be made.
                IV.     Alternative refinement (of Corridor Alternatives).
·        Remaining alternatives are developed in more detail and further analyzed.
·        This screening level should consider Engineering Feasibility, potential effects on social, environmental and economic resources (Resource-Specific Evaluation), and an analysis of capital, operation and maintenance costs (Cost Analysis).
·        Specific tables can be prepared in order to compare different alternatives on specific issues, measuring them by convenient criteria.
·        Even at this last screening level, some alternatives can be discarded just because they do not meet the initial purpose and needs.
·        The result is a series of reasonable build alternatives that have been fully evaluated.
ð The screening process can be applied to any decision process. A simplified version (maybe with only I and II screening levels) can also be applied to some lesser elements like Interchange forms within an alternative.
ð They key aspect when comparing this process with the Spanish one is that this process is an ongoing, living effort, with continuous modifications as stakeholders meet and make comments, whereas Spanish process seeks maximum clarity and objectiveness, resulting in a much more rigid system.

lunes, 3 de septiembre de 2012

Modelos de probabilidad I: Distribuciones discretas

Dado que estoy repasando mis apuntes de estadística, creo que sería útil aprovechar y hacer una lista resumen de las variables aleatorias o distribuciones estadísticas mas útiles en ingeniería.

Es fácil encontrar información en internet sobre la formulación, esperanza, varianza y otros momentos de cada modelo, así que aquí me limitaré a recopilar los modelos mas interesantes, con su representación, una breve descripción y un enlace al artículo correspondiente a la wikipedia.

La idea es crear una lista de referencia y consulta que tener a mano cuando necesite modelizar algún fenómeno.

En esta entrada, empezaré con los modelos discretos.

  • Variable aleatoria de Dirac [
    δk,x
    ]:
    modeliza la certeza de que ocurra algo, asigna un 100% de probabilidad de que ocurra un suceso determinado, sin posibilidad de fallo. link.
  • Variable aleatoria uniforme o difusa [
    U(a1,a2,…,an)
    ]: se usa cuando todos los sucesos considerados tienen la misma probabilidad de ocurrir (Como el resultado de tirar un dado perfecto). link.
  • Variable aleatoria dicotómica o de Bernoulli [B(0,1)]: modeliza la posibilidad de que ocurra un determinado suceso con probabilidad "p" de éxito, o no (Como obtener un número menor que tres al lanzar un dado, p=1/3). Suele caracterizarse el éxito con un "1" y el no-éxito con un "0". link.
  • Variable aleatoria Binomial [B(n,p)]: modeliza el número de éxitos obtenidos al repetir "n" veces un experimento con probabilidad de éxito "p" (Como el número de seises obtenidos al lanzar 20 veces un dado, n=20, p=1/6). link.
  • Variable aleatoria Hipergeométrica [H(N,n,A/N)]: sea un conjunto de elementos, de los cuales "A" tienen una determinada característica de un total de "N" elementos ("N-A" elementos no tiene esa característica), esta variable modeliza el número de elementos con la característica que se extraen al realizar "n" extracciones sin remplazamiento (Por ejemplo, modeliza el número de bolas rojas que cabe esperar sacar si sacamos al azar 20 bolas de una urna que tiene 100 bolas rojas y 200 negras, n=20, A=100, N=300). link.
  • Variable aleatoria de contagio [C(n,N,A,c)]: sea un conjunto de "N" elementos, de los cuales "A" tienen una determinada característica (y "N-A" no). De ese conjunto, se hacen "n" extracciones, de forma que cada vez que se extrae un elemento, éste se devuelve al conjunto con "c" elementos mas del mismo tipo. Esta variable modeliza el número de elementos extraídos que tienen la característica (El ejemplo sería análogo al de la variable anterior). link.
  • Variable aleatoria Geométrica [G(p)]: modeliza el número de intentos necesarios hasta que ocurra un  suceso con  probabilidad de éxito "p" (Como el número de veces que hay que tirar un dado hasta obtener un seis, p=1/6). link.
  • Variable aleatoria Binomial Negativa [BN(r,p)]: modeliza el número de intentos necesarios hasta que se produzcan "r" sucesos, teniendo cada uno una probabilidad de éxito "p" (Como el número de veces que hay que tirar un dado hasta que salgan dos seis seguidos, r=2, p=1/6). link.
  • Variable aleatoria Multinomial [
    M(n,p1,p2,…,pn)
    ]: modeliza el número de éxitos de "k"sucesos independientes y exhaustivos (su intersección dos a dos es nula, y su suma total es la totalidad del fenómeno), sabiendo que cada suceso "i" tiene una probabilidad "pi" de éxito. Por ser exhaustivos, la suma de las probabilidades debe ser la unidad (∑ p= 1). El resultado es análogo a un vector de variables aleatorias binormales. link.
  • Variable aleatoria Poisson [P( ƛ=µ*t)]: modeliza el número de ocurrencias de un fenómeno que sucede a razón de "µ" veces por unidad de tiempo (t), durante el intervalo de tiempo (0,t) (Por ejemplo, el número de vehículos que llegan a un peaje, sabiendo que la afluencia de vehículos suele ser de 45 veh/h puede modelizarse mediante una distribución de Poisson de parámetro ƛ=45). link.
No dudes en dejar un comentario si tienes alguna duda o crees que falta alguna distribución importante!

miércoles, 8 de agosto de 2012

Calculando coeficientes de correlación parcial con la HP50G

Estoy repasando mis apuntes de estadística (por afición, creo que me puede ser útil en el futuro), y me he decidido a hacer un programa para mi calculadora (una maravillosa HP50G, que es el orgullo de todo ingeniero) para ayudarme a hallar coeficientes de correlación y coeficientes de correlación parcial entre variables marginales de muestras de variables n-dimensionales.

Antes de que los no iniciados a la estadística se asusten, se puede leer sobre el tema en el libro: "Elementos de estadística aplicada: Cálculo de probabilidades y teoría de variable aleatoria" de José Javier Muruzábal Irigoyen , que es el que estoy usando yo ahora mismo.

Además, se puede consultar la wikipedia, que es una auténtica fuente de sabiduría: http://en.wikipedia.org/wiki/Partial_correlation - en inglés.

El problema es el siguiente: tenemos varias listas de datos y nos interesa saber si hay alguna relación considerable entre unas variables y otras. Para ello, se calcula un coeficiente de correlación para cada pareja de variables. Cada coeficiente de correlación irá de 0 a 1, y puede ser de signo positivo o negativo si la relación entre las variables es directa o inversa.

Además, nos interesa calcular la correlación entre cada pareja de variables, pero esta vez sin tener en cuenta el efecto de las demás variables. Para ello calcularemos los coeficientes de correlación parcial, que también valdrán entre 0 y 1, y, de nuevo, su signo será positivo si la relación entre la pareja de variables es directa, y negativo si la relación es inversa.

También se pueden entender estos coeficientes como la medida en que la varianza de una variable puede explicar la varianza de otra, considerando la afección de las demás variables en el caso de los coeficientes de correlación, y eliminando el efecto de las demás variables en el caso de los coeficientes de correlación parcial.

Se entiende mucho mejor con un ejemplo (un clásico): Se mide la estatura, el coeficiente intelectual y la edad de un grupo de estudiantes. Estos son los resultados:

Altura (cm)            IQ                   Edad  

   188                    121                    30
   183                    126                    35
   170                    106                    16
   150                    101                     9
   190                    119                    26
   191                    124                    38
   160                    106                    12
   165                    107                    15
   185                    116                    20
   175                    111                    19


Lo que queremos saber es si hay alguna relación notable entre la altura y el coeficiente intelectual, o entre la altura y la edad, o entre la edad y el coeficiente intelectual. Por ejemplo... ¿Son mas listos los mas altos? ¿y los mas jóvenes?

Bueno, pues calcular estos coeficientes (el método viene en los enlaces anteriores) requiere hacer un gran número de cálculos, que es la tarea perfecta para la calculadora hp50G. He escrito el siguiente código (codificado en ASCII, pero que nadie se asuste. Al final del texto pondré un enlace para poder descargarlo directamente a la calculadora.):


<< { ∑DAT ∑mat P2mat r2mat r2mADJ } DUP PURGE { 1. 1. 1. 1. 1. } SWAP STO "MAT. COVARIANZAS" { { "MUESTRA:" "VARIABLES POR COLUMNAS" } } { 1. 0. } { } {
[[ 1. 2. ]
 [ 3. 5. ]
 [ 6. 3. ]
 [ 5. 8. ]] } INFORM
  IF NOT
  THEN KILL
  END EVAL DUP SIZE EVAL
  IF DUP 2. <
  THEN "NO HAY SUFICIENTES COLUMNAS DE DATOS PARA RALACIONAR" MSGBOX KILL
  END -> GSAMP NFILAS NCOLS
  << GSAMP DUP "DATA" ->TAG SWAP CL∑ STO∑ 1. NCOLS
    FOR J 1. NCOLS
      FOR I I J COL∑ ∑XY N∑ / ∑X N∑ / ∑Y N∑ / * -
      NEXT NCOLS COL->
    NEXT NCOLS ROW-> '∑mat' DUP PURGE STO CLLCD "∑mat - Matriz de covarianzas" MSGBOX ∑mat "∑mat" ->TAG 1. NCOLS
    FOR I I XCOL ∑X2 N∑ / ∑X N∑ / 2. ^ - v/ INV
    NEXT NCOLS ROW-> NCOLS DIAG-> DUP ∑mat SWAP * * 1. NCOLS
    FOR J 1. NCOLS
      FOR I DUP I J 2. ->LIST GET
        IF DUP 0. >
        THEN 2. ^
        ELSE 2. ^ NEG
        END I J 2. ->LIST SWAP 4. RND PUT
      NEXT
    NEXT DUP "P2mat" ->TAG SWAP 'P2mat' DUP PURGE STO "P2mat - matriz correlaciones lineales simples elementos Gr^2" MSGBOX 'r2mat' DUP PURGE NCOLS IDN SWAP STO { MATCOV ∑mat P2mat r2mat r2mADJ rADJ } ORDER 1. NCOLS 1. -
    FOR I I 1. + NCOLS
      FOR J I J 1. NCOLS
        FOR AUXV1
          IF AUXV1 I =/ AUXV1 J =/ AND
          THEN AUXV1
          END
        NEXT NCOLS
        IF DUP 3. <
        THEN DROPN KILL
        END ->LIST rAUX r2mat SWAP I J 2. ->LIST SWAP
        IF DUP 0. >
        THEN 2. ^
        ELSE 2. ^ NEG
        END 4. RND PUT 'r2mat' STO
      NEXT
    NEXT "r2mat - elemetos r^2 correlaciones parciales, por parejas sin las demas variables" MSGBOX r2mat 'r2mat' ->TAG
  >>
>>


El que quiera puede escribirlo en la calculadora, y almacenarlo en una variable que se llame RUN o MATCOV: estará listo para ser ejecutado. El programa requiere una variable auxiliar que debe llamarse rAUX, y que debe contener el siguiente código:


<< DUP HEAD SWAP TAIL DUP HEAD SWAP TAIL DUP SIZE SWAP DUP REVLIST HEAD SWAP REVLIST TAIL REVLIST "<< -> IAUX JAUX NCONT"
  IF NCONT TYPE 0. SAME  THEN NCONT ->STR +  END " COLAL COLAS
  <<
    IF NCONT" +  IF NCONT TYPE 0. SAME  THEN NCONT ->STR +  END " 1. >
    THEN IAUX COLAL COLAS + + rAUX DUP 2. ^ 1. SWAP - √ JAUX COLAL COLAS + + rAUX
DUP 2. ^ 1. SWAP - √ SWAP 3. ROLLD * 3. ROLLD * IAUX JAUX COLAS + + rAUX SWAP - SWAP / NCONT" +   IF NCONT TYPE 0. SAME   THEN NCONT ->STR +   END " 1 - 'NCONT" +
  IF NCONT TYPE 0. SAME   THEN NCONT ->STR +   END "' STO ELSE P2mat IAUX JAUX 2. 
->LIST GET P2mat IAUX COLAL 2. ->LIST GET DUP 2. ^ 1. SWAP - √ P2mat JAUX COLAL 2. 
->LIST GET DUP 3. ROLLD 2. ^ 1. SWAP - √ * 3. ROLLD * 3. ROLL SWAP - SWAP / EVAL
    END
  >>" + OBJ-> EVAL
>>


Me gusta este lenguaje (usr RPL), porque las funciones vienen ya precompiladas, y eso ofrece algunas ventajas y facilidades para usar la calculadora, pero a cambio tiene bastantes limitaciones. Me encanta sortear las limitaciones.

Este programa usa la variable rAUX de forma recursiva para calcular los coeficientes de correlación parcial, y además escribe su propio código para declarar variables dinámicamente. Es decir: si introducimos una matriz o lista de datos con 5 columnas, declarará 5 grupos de variables para poder calcular cada coeficiente. Si introducimos una matriz con 7 columnas, declarará 7 grupos de variables para calcular los coeficientes. Sencillamente sublime!

Se puede descargar el programa y las variables que genera en este enlace. Es un archivo binario, y no hay mas que ponerlo en la carpeta HOME de la calculadora. Yo uso HPConnect para conectar mi calculadora a mi iMac.

Si empleamos el programa que he escrito para calcular los coeficientes de correlación de la matriz de datos anterior, resulta:

r2)12 = 0,8275
r2)13 = 0,7484
r2)23 = 0,9364

(son los elementos (i,j) de la matriz P2mat que crea el programa)

Lo que significa que efectivamente, hay una alta correlación entre altura (1) y coeficiente intelectual (2): La varianza de la altura explica el 82,75% de la varianza en el coeficiente intelectual! - r2)12

También hay cierta correlación entre altura (1) y edad (3), pero sin embargo, la mayor correlación de todas la encontramos entre el coeficiente intelectual (2) y la edad (3).

Antes de aventurarnos a sacar conclusiones, veamos que pasa con los coeficientes de correlación parcial:

r2)12-3 = 0,2963
r2)13-2 = -0,018
r2)23-1 = 0,7251

(son los elementos (i,j) de la matriz r2mat que crea el programa) 

r2)12-3: Al eliminar el efecto de la edad (3), vemos que la correlación entre la estatura (1) y el coeficiente intelectual (2) se queda en un 0,2963, mucho menos significativa de lo que parecía antes - r2)12 -.

r2)23-1 : Aún eliminando la influencia de la estatura, se mantiene una correlación significativa entre la edad y el coeficiente intelectual.

La conclusión que yo saco se corresponde con la intuición habitual: es la edad y no la altura la que guarda cierta relación con el coeficiente intelectual, puesto que maduramos al envejecer.

Repito el enlace por si alguien está interesado en usar mi programa en su hp 50G para calcular los coeficientes de correlación: https://dl.dropbox.com/u/11312619/share/ESTADISTICA.hphttps://dl.dropbox.com/u/11312619/share/ESTADISTICA.hp

No dejéis de comentar sobre el ejercicio de ejemplo o sobre el programa!

domingo, 5 de agosto de 2012

Estadísticas de los "rasca y gana" de Caprabo

Desde principios de verano Caprabo regala unos vales "rasca y gana" cuando compras en sus establecimientos. Te dan mas vales cuanto mayor sea el importe de la compra. En los vales, hay seis casillas para rascar. Si rascas tres de ellas, y descubres tres símbolos iguales, te llevas el premio de ese símbolo.

Hay seis tipos de premios (y de símbolos!):

  • 1€ de descuento en tu próxima compra
  • 2€
  • 3€
  • 100€
  • Un bono de viajes de 1500€ (Viajes Eroski)
  • 6000€

Como da la casualidad de que estoy repasando los apuntes de estadística ahora mismo, me he animado a recopilar datos de todos los vales que consigo, con la esperanza de encontrar algún patrón.

Por cada vale, leo los dos códigos de barras con el teléfono móvil (http://neoreader.com/how-neoreader-works), y rasco todas las casillas, para luego registrarlo en una hoja de Excel que se puede descargar de aquí:



Esta una foto de uno de los boletos. En rojo están señaladas los elementos a los que hacen referencia los elementos de la hoja de Excel:

Parte frontal de un vale cualquiera.

Parte trasera del mismo vale.

Para hacer el archivo mas manejable, he usado el siguiente código:
  • x = 1€
  • y = 2€
  • z = 3€
  • u = 100€
  • v = viaje
  • w = 6000€
Es interesante ver la distribución de los premios y el análisis de frecuencias. Estas son algunas conclusiones:
  • Efectivamente, todos los vales tienen premio.
  • Aún sabiendo que al menos, va a haber tres casillas iguales, la posibilidad de conseguir el premio rascando tres círculos al azar es de sólo un 5% (1 de cada 20).
  • El "nº Eroski" y el "nº Caprabo" son siempre los mismos, e identifican el premio que contiene el vale.
  • El número que identifica la distribución de los premios de cada vale es el que he denominado "secreto". Como es obvio, no nos permiten rascar el nº secreto si queremos reclamar el premio. Por ejemplo, Una papeleta con el nº secreto M4G0 siempre tiene:
    • en el azul:         100€      (u)
    • en el negro:       6000€   (w)
    • en el rojo:          1€         (x)
    • en el amarillo:   1€         (x)
    • en el fucsia:       avión     (v) 
    • en el verde:       1€         (x)
  • Los premios menores (1€, 2€ y 3€) parecen estar aleatoriamente distribuidos entre los diferentes colores, sin embargo, parece haber una mayoría de premios avión en la casilla fucsia y de premios de 6000€ en la negra.
  • Hasta ahora, no me ha tocado ningún vale que tuviera tres casillas iguales de 100€, avión, o 6000€. Me han tocado un 76% de los vales con premio de 1€, un 16% con 2€ y un 8% con 3€.
  • Por otra parte, es perfectamente normal, puesto que según la parte de atrás del vale, hay millones de vales, y sólo 1000 tarjetas regalo de 100€, 200 regalos de avión y 50 de 6000€, y mi muestra (por ahora) es de sólo 25 papeletas.
Desde aquí, animo a todos los visitantes del blog a bajarse la hoja de Excel que mantengo, y a completarla con los vales que consigan. Podéis dejarme vuestras valoraciones y aportaciones en los comentarios :-)

martes, 31 de julio de 2012

Tomando medidas



Aquí estoy yo!

La foto tiene algún tiempo, pero me ha recordado que quería animar a los nuevos ingenieros que obtengan su título este verano. Nunca pensé que fuera a tomar las medidas de un local yo mismo para hacer después un esquema en AutoCAD, pero ahí estoy, con un medidor de distancias láser (Marca Leica, por cierto) y un cuadernillo apuntándolo todo.

Tomar medidas de un local no es nada complicado. Como en tantas otras cosas, basta con ser ordenado y cuidadoso con las mediciones y las anotaciones.

A mi me ayudó recordar las clases de topografía de la ETSICCP para ser consciente de los errores que se comenten, como el correspondiente a la inclinación del haz láser al medir una distancia horizontalmente, por ejemplo.

Personalmente, me gusta tomar medidas redundantes para poder ajustar los posibles errores cometidos. Además, suelo anotar los principales condicionantes, o los puntos críticos, por ejemplo: el ancho de un paso estrecho o los ángulos que forman las paredes. Sabiendo que se deben respetar éstos, es mas fácil ajustar el resto de las medidas. En la ETSICCP nos enseñaron la técnica de los mínimos cuadrados, pero en rara ocasión llega a hacer falta (y la falta de tiempo en el trabajo diario tampoco ayuda...).

La razón de tomar medidas uno mismo puede ser ahorrar tiempo y dinero, o contrastar las medidas que nos pase otra fuente. En cualquier caso, conviene ser consciente de los medios que se disponen y el objetivo del trabajo: para hacer un esquema de un local en bruto, me basto yo sólo con el láser. Si necesitara un nivel de precisión milimétrico, o la extensión fuera mucho mayor, encargaría el trabajo a un especialista sin dudarlo.


miércoles, 13 de junio de 2012

Calculando márgenes

Estoy seguro de que a alguien mas que a mi se le ha quedado cara de acelga alguna vez al confundir porcentajes y margen.

El margen que hay entre lo que pagamos por algo, y el precio al que vendemos luego ese algo es:

M = (Pv - Pc) / Pv
  • Pv - Precio de venta
  • Pc - Precio de compra

Entonces... Si elaborar un producto nos cuesta 100€, ¿a cuanto debe venderse para obtener un margen del 25%?

Si tu respuesta es 125€, tienes al misma confusión que la mayoría de la gente. Vendiendo a 125€, el margen sería:

M = (125 - 100) / 125 = 0.2

¡Un 20 %!

El precio real al que hay que vender un producto que cueste 100€ para obtener un 25% de margen es 133.33 €. El problema es confundir el margen con el coeficiente de paso entre el precio de venta y el precio de compra.

Sea Cp el coeficiente de paso de un precio a otro: Pv = Cp * Pc

El margen es:
M = (Cp*Pc - Pc) / (Cp*Pc) = (Cp - 1) / (Cp) = 1 - 1 / Cp

Cp = 1 / (1 - M)

En resumidas cuentas, para hallar un margen del 25%, no hay que multiplicar el coste por 1.25, si no que hay que dividirlo por 0,75!

Para tener un margen del 30%, hay que dividir los costes por 0.70 para hallar el precio al que se debe vender.

A veces las cosas mas sencillas son las que mas confusión nos causan!