lunes, 14 de diciembre de 2015

Estratificación univariada: Dalenius-Hodges en R

En ocasiones necesitamos efectuar clasificaciones de diversos elementos de un solo género o tipo en particular, es decir, considerando una sola variable, ejemplo de ello podría ser la necesidad de clasificar los sueldos (una variable) en 5 diferentes estratos o niveles A, B, C, D y E, en donde el nivel de sueldo A es el segmento de más altos ingresos y el E el correspondiente más bajo. Dicho lo anterior tenemos el siguiente conjunto de datos de salarios de 197 individuos.

salario <-c (
 4289.73, 4406.78, 4488.95, 4571.12, 4812.87, 4843.74, 4851.71, 4890.56, 4914.12, 4933.78, 
 5018.10, 5040.95, 5044.34, 5066.85, 5078.80, 5110.44, 5119.41, 5124.68, 5130.99, 5135.34, 
 5177.40, 5191.48, 5193.40, 5197.50, 5279.18, 5290.13, 5290.16, 5296.33, 5384.02, 5397.73, 
 5409.40, 5411.93, 5416.75, 5445.54, 5472.65, 5723.95, 5725.31, 5731.29, 5969.58, 6022.41, 
 6095.31, 6097.05, 6130.07, 6169.46, 6198.34, 6280.46, 6316.52, 6328.47, 6343.44, 6357.36, 
 6357.45, 6360.44, 6371.10, 6376.79, 6403.20, 6413.09, 6428.10, 6434.53, 6440.06, 6448.47, 
 6470.93, 6472.14, 6481.34, 6486.56, 6490.19, 6493.81, 6501.03, 6504.24, 6515.35, 6520.18, 
 6521.95, 6526.74, 6532.13, 6537.66, 6554.48, 6570.43, 6571.21, 6573.25, 6574.21, 6574.52, 
 6574.73, 6581.37, 6586.18, 6591.89, 6593.38, 6642.02, 6651.42, 6665.15, 6684.61, 6688.75, 
 6716.94, 6728.25, 6729.34, 6729.89, 6736.86, 6738.59, 6740.44, 6764.47, 6768.74, 6776.44, 
 6781.90, 6786.11, 6793.99, 6798.21, 6800.80, 6828.71, 6829.09, 6831.70, 6832.51, 6837.67, 
 6841.04, 6845.12, 6848.01, 6848.14, 6864.57, 6875.00, 6875.52, 6883.97, 6887.47, 6897.43, 
 6913.51, 6914.35, 6930.79, 6934.43, 6940.40, 6947.90, 6949.91, 6950.31, 6961.26, 6970.46, 
 6989.58, 7001.53, 7006.66, 7012.12, 7019.46, 7031.67, 7259.44, 7267.55, 7356.75, 7359.73, 
 7382.94, 7431.07, 7433.44, 7446.43, 7455.70, 7493.88, 7511.72, 7520.14, 7535.55, 7544.52, 
 7594.32, 7615.39, 7679.87, 7763.58, 7769.01, 7840.14, 7890.94, 7921.94, 7962.78, 7973.63, 
 7990.67, 8015.57, 8313.88, 8571.07, 8607.91, 8625.85, 8646.75, 8825.33, 8868.16, 8953.81, 
 8963.78, 9034.30, 9121.13, 9150.03, 9151.02, 9176.92, 9203.81, 9207.80, 9209.56, 9214.77, 
 9261.35, 9271.31, 9282.27, 9415.62, 9433.66, 9535.25, 9536.25, 9559.16, 9560.15, 9573.10, 
 9708.63,20850.56,29298.05,43287.22,43419.52,43437.22,73458.19)

El método de Dalenius-Hodges forma estratos en los cuales la varianza es mínima intra-grupos y máxima inter-grupos, es decir, forma grupos lo más homogéneos posible.

En R, debemos instalar el paquete stratification, posteriormente cargar esta librería con el comando:

library(stratification)

Y posteriormente, para efectuar la estratificación:

strata.cumrootf(salario, CV=0.05, Ls=5)

En donde , salario es el vector de datos, CV es el coeficiente de variación objetivo, y Ls es el número de estratos que deseamos.

R nos da como resultado los límites superiores de cada estrato, los cuales se toman cerrados por la derecha (límite superior) y abiertos por la izquierda (límite inferior), a excepción del primero que se considera cerrado por ambos lados. El resultado de la clasificación de salarios que se tomó como ejemplo es:

E - [4,289.73 ,  6,134.22 ]
D - (6,134.22 ,  7,056.47]
C - (7,056.47 ,   7,978.71]
B - (7,978.71 ,   9,823.21]
A - (9,823.21 , 73,459.19]

11 comentarios:

  1. Respuestas
    1. Podrías primero normalizar tus datos, https://stats.stackexchange.com/questions/70801/how-to-normalize-data-to-0-1-range

      Borrar
    2. utiliza la formula 100*((datos-min(datos))/(max(datos)-min(datos)))

      Borrar
  2. Hola, Buenas:

    Tengo una duda:

    Como yo formaria mis intervalos en este caso por favor?
    > strata.cumrootf(BaseDH$RSU, CV=0.05, Ls=5)
    Given arguments:
    x = BaseDH$RSU
    nclass = 75, CV = 0.05, Ls = 5
    allocation: q1 = 0.5, q2 = 0, q3 = 0.5
    model = none

    Strata information:
    | type rh | bh E(Y)
    stratum 1 | take-some 1 | 8019.73 1270.94
    stratum 2 | take-some 1 | 24019.20 15501.75
    stratum 3 | take-all 1 | 120016.00 55374.29
    stratum 4 | take-all 1 | 528002.40 200000.00
    stratum 5 | take-all 1 | 600001.00 600000.00
    Total
    Var(Y) Nh nh fh
    stratum 1 3190437 530 53 0.10
    stratum 2 30198595 24 8 0.33
    stratum 3 958614378 14 14 1.00
    stratum 4 0 1 1 1.00
    stratum 5 0 1 1 1.00
    Total 570 77 0.14

    Total sample size: 77
    Anticipated population mean: 4598.033
    Anticipated CV: 0.04925992

    ResponderBorrar
  3. Se ve mejor asi:

    > strata.cumrootf(BaseDH$RSU, CV=0.05, Ls=5)
    Given arguments:
    x = BaseDH$RSU
    nclass = 75, CV = 0.05, Ls = 5
    allocation: q1 = 0.5, q2 = 0, q3 = 0.5
    model = none

    Strata information:
    | type rh | bh E(Y)
    stratum 1 | take-some 1 | 8019.73 1270.94
    stratum 2 | take-some 1 | 24019.20 15501.75
    stratum 3 | take-all 1 | 120016.00 55374.29
    stratum 4 | take-all 1 | 528002.40 200000.00
    stratum 5 | take-all 1 | 600001.00 600000.00
    Total
    Var(Y) Nh nh fh
    stratum 1 3190437 530 53 0.10
    stratum 2 30198595 24 8 0.33
    stratum 3 958614378 14 14 1.00
    stratum 4 0 1 1 1.00
    stratum 5 0 1 1 1.00
    Total 570 77 0.14

    Total sample size: 77
    Anticipated population mean: 4598.033
    Anticipated CV: 0.04925992

    ResponderBorrar
  4. Hola, la columna 'bh' te da el límite superior de tus intervalos por lo que, conociendo el valor mínimo de tu vector BaseDH$RSU quedarían de la siguiente manera:

    [mínimo, 8019.73]
    (8019.73, 24019.2]
    (24019.2, 120016]
    (120016, 528002.4]
    (528002.4, 600001]

    ResponderBorrar
  5. Hola, buenas tardes. Me gustaría saber por qué esta función no admite valores negativos. Ya que al ver la metodología de Dalenius-Hodges veo que no habría ningún impedimento para estratificarlos directamente. Gracias

    ResponderBorrar
    Respuestas
    1. Dalenius-Hodges es un método basado en la raíz cuadrada acumulada de las frecuencias de la variable de estratificación. Para terminar pronto, no se pueden calcular raíces de números negativos. Te recomiendo leer nuevamente el artículo Dalenius-Hodges, a partir de la página 90.

      Borrar