Artículos

1.3: 03 Variables aleatorias - Matemáticas

1.3: 03 Variables aleatorias - Matemáticas


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

1.3: 03 Variables aleatorias - Matemáticas

18.4: Grandes esperanzas

  • Contribución de Eric Lehman, F. Thomson Leighton y Alberty R. Meyer
  • Google y el Instituto de Tecnología de Massachusetts
  • Obtenido de MIT OpenCourseWare

La expectativa o valor esperado de una variable aleatoria es un número único que revela mucho sobre el comportamiento de la variable. La expectativa de una variable aleatoria también se conoce como su significar o promedio. Por ejemplo, lo primero que normalmente desea saber cuando ve su calificación en un examen es el puntaje promedio de la clase. Este puntaje promedio resulta ser precisamente la expectativa de la variable aleatoria igual al puntaje de un estudiante al azar.

Más precisamente, la expectativa de una variable aleatoria es su valor & ldquoaverage & rdquo cuando cada valor se pondera según su probabilidad. Formalmente, el valor esperado de una variable aleatoria se define de la siguiente manera:

Si (R ) es una variable aleatoria definida en un espacio muestral (S ), entonces la expectativa de (R ) es

Dejemos que & rsquos trabaje con algunos ejemplos.


Variables aleatorias del indicador

Un indicador variable aleatoria es una variable aleatoria que asigna cada resultado a 0 o 1. Las variables aleatorias de indicador también se denominan Variables de Bernoulli. La variable aleatoria (M ) es un ejemplo. Si las tres monedas coinciden, entonces (M = 1 ) de lo contrario, (M = 0 ).

Las variables aleatorias de los indicadores están estrechamente relacionadas con los eventos. En particular, una variable aleatoria de indicador divide el espacio muestral en los resultados asignados a 1 y los resultados asignados a 0. Por ejemplo, el indicador (M ) divide el espacio muestral en dos bloques de la siguiente manera:

De la misma manera, un evento (E ) divide el espacio muestral en los resultados en (E ) y los que no están en (E ). Entonces (E ) está naturalmente asociado con una variable aleatoria indicadora, (I_E ), donde (I_E ( omega) = 1 ) para los resultados ( omega in E ) y (I_E ( omega) = 0 ) para los resultados ( omega notin E ). Por lo tanto, (M = I_E ) donde (E ) es el evento de que las tres monedas coincidan.


Volumen especial: Modelado matemático y métodos numéricos en finanzas

Chuan-Hsiang Han, Jean-Pierre Fouque, en Manual de análisis numérico, 2009

3.1 Martingalas de cobertura

Se sabe que no existe una solución de forma cerrada para el precio de la opción estadounidense P (t, x) dado por (3.1). Rogers [2002] introdujo el precio de la opción de venta europea de contraparte, denotado por PAGmi y construyó la martingala de cobertura mi -rt PAGmi(t, St) - PAGmi(0, S0). Esta elección es útil porque PAGmi admite una solución de forma cerrada, conocida como la fórmula de Black-Scholes para opciones de venta. En cambio, escribimos una representación integral equivalente de esa martingala de cobertura como

obtenido mediante una aplicación del lema de Ito & # x27s para mi -rt PAGmi(t, St). La principal ventaja de (3.3) es que cualquier precio de opción estadounidense aproximado P ∼ puede constituir una martingala integral METRO( P ∼ t) además de PAGmi, sin requerir eso mi -rt P ∼ t ser una martingala. Los algoritmos para calcular las estimaciones de sesgo alto y bajo para la opción de venta estadounidense se basan en la Proposición 2.1. El estimador de Monte Carlo para el estimador de sesgo alto es

y para el estimador de sesgo bajo es

donde la aproximación P ∼ será fácil de calcular, por ejemplo, el precio de la opción europea de contraparte PAGmi o la aproximación cuadrática PAGBAW, presentado por Barone - Adesi y Whaley [1987]. El número total de i.i.d. trayectorias se denota por norte, el superíndiceI) que denota el I-ésima replicación, y τ denota una regla de parada, obtenida por el método de mínimos cuadrados Longstaff y Schwartz [2001].

Basado en la solución de desigualdades variacionales de tipo elíptico que se muestran en la Ec. (A.1) en el Apéndice, la aproximación PAGBAW admite la siguiente solución analítica

dónde PAGmi(t, x) denota el precio de la opción de venta europea de contraparte, y donde el límite libre aproximado X * (t) resuelve una ecuación algebraica no lineal

En el Lema A.1 del Apéndice se muestra que el precio aproximado con descuento e -rt PAGBAW no es una martingala ni una supermartingala. No se puede utilizar en la Proposición 2.1 para estimar los precios de las opciones estadounidenses. Sin embargo, la integral estocástica METRO(PAGBAW t) tiene la garantía de ser una martingala. La propiedad martingala de las integrales estocásticas no solo proporciona una clase más grande para el propósito computacional, sino que también es una demostración clara de la estrategia de cobertura delta utilizada en el comercio dinámico.

Ahora estamos listos para comparar estas martingalas de cobertura METRO(PAGmi t) & gt y M (PBAW t) al estimar soluciones de alto y bajo sesgo para los precios de las opciones estadounidenses. Los parámetros de las opciones de venta estadounidenses unidimensionales son los siguientes: el precio de ejercicio K = 100, la tasa de interés libre de riesgo r = 6%, vencimiento T = 0,5 año y la volatilidad σ = 0,4 (Tabla 3.1). El precio inicial de las acciones S0 varía de 80 a 120. Ejecutamos norte = 5000 rutas de muestra, y para cada trayectoria, utilizamos el paso de tiempo discretizado Δt = 0,001. Los precios reales que se muestran en la columna 5 del cuadro 3.1 son idénticos al ejemplo de Rogers [2002].

Cuadro 3.1. Resultados numéricos I. Comparaciones de estimaciones de precios con un sesgo alto (columnas 6 a 8), estimaciones de precios con un sesgo bajo (columnas 2 a 4) y precios de opciones estadounidenses reales (columna 5). Dos martingalas de cobertura METROt(PAGmi) y METROt(PAGBAW) se construyen a partir del precio de la opción europea de contraparte: PAGmi y la aproximación cuadrática PAGBAW, respectivamente. Los parámetros del modelo se eligen como en Rogers [2002]: K = 100, r = 0.06, T = 0.5, y σ = 0.4, con varios precios iniciales de acciones que van desde 80 a 120. Las simulaciones de Monte Carlo se implementan bajo el tamaño de muestra norte = 5000 y 500 pasos de tiempo discretos correspondientes a Δt= .001

S0LSMMETROt(PAGmi)METROt(PAGBAW)Precio verdaderoMETROt(PAGBAW)METROt(PAGmi)SMt
8021.522 (0.1507)21.513 (0.0131)21.592 (0.0108)21.60621.754 (0.0097)21.947 (0.0107)22.637 (0.0092)
8517.907 (0.1631)17.952 (0.0138)17.999 (0.0125)18.03718.203 (0.0121)18.325 (0.0128)18.793 (0.0093)
9014.817 (0.1706)14.874 (0.0155)14.845 (0.0139)14.91915.073 (0.0129)15.132 (0.0143)15.482 (0.0085)
9512.141 (0.1640)12.163 (0.0153)12.202 (0.0155)12.23112.371 (0.0138)12.391 (0.0148)12.649 (0.0075)
1009.993 (0.1585)9.868 (0.0158)9.880 (0.0150)9.94610.090 (0.0144)10.147 (0.0153)10.270 (0.0066)
1058.214 (0.1497)8.023 (0.0166)8.026 (0.0154)8.0288.140 (0.0146)8.181 (0.0151)8.275 (0.0056)
1106.205 (0.1304)6.355 (0.0160)6.433 (0.0153)6.4356.564 (0.0143)6.612 (0.0149)6.625 (0.0048)
1155.126 (0.1219)5.085 (0.0157)5.055 (0.0150)5.1275.256 (0.0135)5.269 (0.0141)5.280 (0.0041)
1204.230 (0.1162)4.029 (0.0147)4.039 (0.0143)4.0614.184 (0.0128)4.198 (0.0134)4.180 (0.0033)

Las estimaciones de bajo sesgo y sus errores estándar para los precios de las opciones estadounidenses se ilustran entre la segunda y la cuarta columna. Los resultados de la columna 2 se calculan a partir del algoritmo de mínimos cuadrados Longstaff y Schwartz [2001] donde no hay martingalas de cobertura dentro del estimador de precios. Las columnas 3 y 4 ilustran los efectos de los controles de martingala. METRO(PAGmi t) y METRO(PAGBAW t), respectivamente, bajo el método de mínimos cuadrados. Nosotros hacemos las siguientes observaciones.

Primero, estas variables de control son insesgadas para los estimadores de mínimos cuadrados, pero los errores estándar con martingalas se reducen considerablemente en comparación con los estimadores de mínimos cuadrados. Las razones de reducción de la varianza están aproximadamente entre 60 y 200. Como las estimaciones de bajo sesgo deberían comportarse, las medias muestrales dentro de la columna 2-columna 4 son todas más pequeñas que los precios reales que se muestran en la columna 5.

En segundo lugar, el algoritmo que usa METRO(PAGBAW t) mejora la precisión de las estimaciones de bajo sesgo obtenidas de METRO(PAGmi t) como la varianza producida por METRO(PAGBAW t) es más pequeña que METRO(PAGmi t) excepto cuando S0 = 95. Las columnas 6 y 7 ilustran estimaciones de alto sesgo basadas en el algoritmo que utiliza las martingalas. METRO(PAGBAW t) y METRO(PAGmi t), respectivamente. En comparación con el precio real en la columna 5, las medias de la muestra obtenidas de estas martingalas tienen un alto sesgo y la brecha de precios en la columna 6 es menor que la de la columna 7. Además, los errores estándar en la columna 6 son todos menores que los de la columna 7. Esto justifica la propiedad asimétrica entre el sesgo y la varianza en el teorema 2.2, es decir, una pequeña varianza implica un pequeño sesgo.

No informamos la desviación absoluta media (MAD) de la media definida en Rogers [2002], ya que ahora tenemos estimaciones de precios con sesgo alto y bajo para las cuales el precio real de la opción está en el medio. Mediante la comparación cruzada entre las columnas 3 a 7 y las columnas 4 a 6, encontramos que PAGBAW proporciona una mejor aproximación que PAGmi como PAGBAW produce variaciones más pequeñas que PAGmi lo hace.


Contenido

Edición de software

El Mersenne Twister se utiliza como PRNG predeterminado por el siguiente software:

  • Lenguajes de programación: Dyalog APL, [4] IDL, [5] R, [6] Ruby, [7] Free Pascal, [8] PHP, [9] Python (también se usa en NumPy, mientras que cambió a PCG64 por defecto como de 1,17 [10]), [11] [12] [13] Julia (hasta 1,6 1,7 cambios a xoroshiro), [14] CMU Common Lisp, [15] Embeddable Common Lisp, [16] Steel Bank Common Lisp, [ 17] bibliotecas y software: GLib, [18] Biblioteca aritmética de precisión múltiple GNU, [19] Octava GNU, [20] Biblioteca científica GNU, [21]
  • Otros: Microsoft Excel, [22] GAUSS, [23] gretl, [24] Stata. [25] SageMath, [26] Scilab, [27] Maple, [28] MATLAB, [29]

También está disponible en Apache Commons, [30] en C ++ estándar (desde C ++ 11), [31] [32] y en Mathematica. [33] Las implementaciones de complementos se proporcionan en muchas bibliotecas de programas, incluidas las bibliotecas Boost C ++, [34] la biblioteca CUDA, [35] y la biblioteca numérica NAG. [36]

El Mersenne Twister es uno de los dos PRNG en SPSS: el otro generador se mantiene solo por compatibilidad con programas más antiguos, y se dice que el Mersenne Twister es "más confiable". [37] El Mersenne Twister es igualmente uno de los PRNG en SAS: los otros generadores son más antiguos y están en desuso. [38] El Mersenne Twister es el PRNG predeterminado en Stata, el otro es KISS, por compatibilidad con versiones anteriores de Stata. [39]

    y libre de patente para todas las variantes excepto CryptMT.
  • Pasa numerosas pruebas de aleatoriedad estadística, incluidas las pruebas Diehard y la mayoría, pero no todas, las pruebas TestU01. [40]
  • Un período muy largo de 2 19937 - 1. Tenga en cuenta que, si bien un período largo no es garantía de calidad en un generador de números aleatorios, períodos cortos, como el 2 32 común en muchos paquetes de software más antiguos, pueden ser problemáticos. [41] a 32 bits de precisión por cada 1 ≤ k ≤ 623 (para una definición de k-distribuido, ver más abajo)
  • Las implementaciones generalmente crean números aleatorios más rápido que los métodos aleatorios verdaderos. Un estudio encontró que el Mersenne Twister crea números aleatorios de coma flotante de 64 bits aproximadamente veinte veces más rápido que el conjunto de instrucciones RDRAND basado en el procesador implementado en hardware. [42]
  • Búfer de estado relativamente grande, de 2,5 KiB, a menos que se utilice la variante TinyMT (discutida a continuación).
  • Rendimiento mediocre según los estándares modernos, a menos que se utilice la variante SFMT (que se analiza a continuación). [43]
  • Exhibe dos fallas claras (complejidad lineal) tanto en Crush como en BigCrush en la suite TestU01. La prueba, como Mersenne Twister, se basa en un F2-álgebra. [40] Hay varios otros generadores que pasan todas las pruebas (y numerosos generadores que fallan gravemente) [aclaración necesaria] .
  • Varias instancias que difieren solo en el valor semilla (pero no en otros parámetros) generalmente no son apropiadas para las simulaciones Monte-Carlo que requieren generadores de números aleatorios independientes, aunque existe un método para elegir múltiples conjuntos de valores de parámetros. [44] [45]
  • Difusión deficiente: puede llevar mucho tiempo comenzar a generar una salida que pase las pruebas de aleatoriedad, si el estado inicial es muy no aleatorio, especialmente si el estado inicial tiene muchos ceros. Una consecuencia de esto es que dos instancias del generador, comenzadas con estados iniciales que son casi iguales, generalmente generarán casi la misma secuencia para muchas iteraciones, antes de eventualmente divergir. La actualización de 2002 del algoritmo MT ha mejorado la inicialización, por lo que es muy improbable comenzar con ese estado. [46] Se dice que la versión GPU (MTGP) es aún mejor. [47]
  • Contiene subsecuencias con más de 0 que de 1. Esto se suma a la propiedad de difusión deficiente para dificultar la recuperación de estados de muchos cero.
  • No es criptográficamente seguro, a menos que se utilice la variante CryptMT (que se describe a continuación). La razón es que observar un número suficiente de iteraciones (624 en el caso de MT19937, ya que este es el tamaño del vector de estado a partir del cual se producen las iteraciones futuras) permite predecir todas las iteraciones futuras.

Un generador alternativo, WELL ("Lineal de largo período bien equidistribuido"), ofrece una recuperación más rápida, igual aleatoriedad y una velocidad casi igual. [48]

Los generadores y variantes xorshift de Marsaglia son los más rápidos en la clase de LFSR. [49]

MELG de 64 bits ("64 bits equidistribuidos al máximo F2-Los generadores lineales con Mersenne Prime Period ") están completamente optimizados en términos de k-Propiedades de distribución. [50]

La familia ACORN (publicada en 1989) es otra k-PRNG distribuido, que muestra una velocidad computacional similar a MT, y mejores propiedades estadísticas, ya que satisface todos los criterios actuales (2019) de TestU01 cuando se usa con opciones apropiadas de parámetros, ACORN puede tener un período y precisión arbitrariamente largos.

La familia PCG es un generador de período largo más moderno, con una mejor ubicación de caché y un sesgo menos detectable utilizando métodos de análisis modernos. [51]

Una secuencia pseudoaleatoria XI de w-bit enteros de período PAG se ha dicho k-distribuido a v-bit precisión si se cumple lo siguiente.

Para w-bits de longitud de palabra, el Mersenne Twister genera números enteros en el rango [0, 2 w −1].

El algoritmo de Mersenne Twister se basa en una recurrencia lineal de matriz sobre un campo binario finito F2. El algoritmo es un registro de desplazamiento de retroalimentación generalizado retorcido [52] (GFSR retorcido, o TGFSR) de forma normal racional (TGFSR (R)), con reflexión y templado de bits de estado. La idea básica es definir una serie XI a través de una relación de recurrencia simple, y luego números de salida de la forma XIT, dónde T es un invertible F2-matriz llamada matriz de templado.

El algoritmo general se caracteriza por las siguientes cantidades (algunas de estas explicaciones tienen sentido solo después de leer el resto del algoritmo):

  • w: tamaño de la palabra (en número de bits)
  • norte: grado de recurrencia
  • metro: palabra intermedia, un desplazamiento utilizado en la relación de recurrencia que define la serie X, 1 ≤ metro & lt norte
  • r: punto de separación de una palabra, o el número de bits de la máscara de bits inferior, 0 ≤ rw − 1
  • a: coeficientes de la matriz de torsión en forma normal racional
  • B, C: Máscaras de bits de templado TGFSR (R)
  • s, t: Desplazamientos de bits de templado TGFSR (R)
  • tu, D, l: cambios de broca / máscaras de templado Mersenne Twister adicionales

con la restricción de que 2 noroester - 1 es un primo de Mersenne. Esta elección simplifica la prueba de primitividad y k-prueba de distribución que se necesitan en la búsqueda de parámetros.

Las series X se define como una serie de w-cantidades de bits con la relación de recurrencia:

donde ∣ < displaystyle mid> denota la concatenación de vectores de bits (con los bits superiores a la izquierda), ⊕ el bit a bit exclusivo o (XOR), Xk tu significa la parte superior wr pedazos de Xk, y Xk+1 l significa el más bajo r pedazos de Xk+1. La transformación del giro A se define en forma normal racional como:

con Inorte−1 como el (norte − 1) × (norte - 1) matriz de identidad. La forma normal racional tiene el beneficio de que la multiplicación por A puede expresarse eficientemente como: (recuerde que aquí la multiplicación de matrices se realiza en F2, y por lo tanto, XOR bit a bit toma el lugar de la suma)

dónde X0 es el bit de orden más bajo de X.

Al igual que TGFSR (R), el Mersenne Twister se conecta en cascada con una transformación de templado para compensar la dimensionalidad reducida de la equidistribución (debido a la elección de A estando en la forma normal racional). Tenga en cuenta que esto es equivalente a usar la matriz A dónde A = T −1 A por T una matriz invertible y, por lo tanto, el análisis del polinomio característico mencionado a continuación sigue siendo válido.

Al igual que con A, elegimos una transformación de templado para que sea fácilmente computable y, por lo tanto, no construimos T sí mismo. El revenido se define en el caso de Mersenne Twister como

y := X ⊕ ((Xtu) & amp D) y := y ⊕ ((ys) & amp B) y := y ⊕ ((yt) & amp C) z := y ⊕ (yl)

dónde X es el siguiente valor de la serie, y un valor intermedio temporal, z el valor devuelto por el algoritmo, con ≪, ≫ como el bit a bit a izquierda y derecha se desplaza, y & amp como bit a bit y. La primera y la última transformación se agregan para mejorar la equidistribución de bits inferiores. De la propiedad de TGFSR, s + t ≥ ⌊wSe requiere / 2⌋ - 1 para alcanzar el límite superior de equidistribución de los bits superiores.

Los coeficientes para MT19937 son:

  • (w, norte, metro, r) = (32, 624, 397, 31)
  • a = 9908B0DF16
  • (tu, D) = (11, FFFFFFFF16)
  • (s, B) = (7, 9D2C568016)
  • (t, C) = (15, EFC6000016)
  • l = 18

Tenga en cuenta que las implementaciones de 32 bits del Mersenne Twister generalmente tienen D = FFFFFFFF16. Como resultado, el D ocasionalmente se omite de la descripción del algoritmo, ya que el bit a bit y con D en ese caso no tiene ningún efecto.

Los coeficientes para MT19937-64 son: [53]

  • (w, norte, metro, r) = (64, 312, 156, 31)
  • a = B5026F5AA96619E916
  • (tu, D) = (29, 555555555555555516)
  • (s, B) = (17, 71D67FFFEDA6000016)
  • (t, C) = (37, FFF7EEE00000000016)
  • l = 43

Edición de inicialización

El estado necesario para una implementación de Mersenne Twister es una matriz de norte valores de w bits cada uno. Para inicializar la matriz, un w-El valor de la semilla de bits se utiliza para suministrar X0 mediante Xnorte−1 configurando X0 al valor de semilla y luego ajuste

XI = F × (XI−1 ⊕ (XI−1 & gt & gt (w − 2))) + I

por I de 1 a norte - 1. El primer valor que genera el algoritmo se basa en Xnorte, no en X0. El constante F forma otro parámetro para el generador, aunque no forma parte del algoritmo propiamente dicho. El valor de F para MT19937 es 1812433253 y para MT19937-64 es 6364136223846793005. [53]

Comparación con GFSR clásico Editar

Para lograr el 2 noroester - 1 límite superior teórico del período en un TGFSR, φB(t) debe ser un polinomio primitivo, φB(t) siendo el polinomio característico de

La transformación de torsión mejora el GFSR clásico con las siguientes propiedades clave:

  • El período alcanza el límite superior teórico 2 noroester - 1 (excepto si se inicializa con 0)
  • Equidistribución en norte dimensiones (por ejemplo, los generadores congruentes lineales pueden, en el mejor de los casos, gestionar una distribución razonable en cinco dimensiones)

Editar pseudocódigo

El siguiente pseudocódigo implementa el algoritmo general de Mersenne Twister. Las constantes w, norte, metro, r, a, tu, D, s, B, t, C, l, y F son como en la descripción del algoritmo anterior. Se asume que En t representa un tipo suficiente para contener valores con w bits:

CryptMT Editar

CryptMT es un cifrado de flujo y un generador de números pseudoaleatorios criptográficamente seguro que utiliza Mersenne Twister internamente. [55] [56] Fue desarrollado por Matsumoto y Nishimura junto a Mariko Hagita y Mutsuo Saito. Se ha enviado al proyecto eSTREAM de la red eCRYPT. [55] A diferencia de Mersenne Twister o sus otros derivados, CryptMT está patentado.

MTGP Editar

MTGP es una variante de Mersenne Twister optimizada para unidades de procesamiento de gráficos publicada por Mutsuo Saito y Makoto Matsumoto. [57] Las operaciones básicas de recurrencia lineal se extienden desde MT y los parámetros se eligen para permitir que muchos subprocesos calculen la recursividad en paralelo, mientras comparten su espacio de estado para reducir la carga de memoria. El documento afirma una mejor equidistribución sobre MT y rendimiento en una GPU muy antigua (Nvidia GTX260 con 192 núcleos) de 4,7 ms para 5 × 10 7 enteros aleatorios de 32 bits.

SFMT Editar

El SFMT (Fast Mersenne Twister orientado a SIMD) es una variante de Mersenne Twister, introducido en 2006, [58] diseñado para ser rápido cuando se ejecuta en SIMD de 128 bits.

  • Es aproximadamente el doble de rápido que Mersenne Twister. [59]
  • Tiene una mejor propiedad de equidistribución de precisión de v-bit que MT pero peor que WELL ("Lineal de período largo bien equidistribuido").
  • Tiene una recuperación más rápida del estado inicial de exceso cero que MT, pero más lenta que WELL.
  • Soporta varios períodos de 2 607 −1 a 2 216091 −1.

Intel SSE2 y PowerPC AltiVec son compatibles con SFMT. También se utiliza para juegos con Cell BE en PlayStation 3. [60]

TinyMT Editar

TinyMT es una variante de Mersenne Twister, propuesta por Saito y Matsumoto en 2011. [61] TinyMT usa solo 127 bits de espacio de estado, una disminución significativa en comparación con los 2,5 KiB de estado del original. Sin embargo, tiene un período de 2 127 -1, mucho más corto que el original, por lo que solo lo recomiendan los autores en los casos en que la memoria es escasa.


Explicando la importancia de la característica con el ejemplo de un bosque aleatorio

En muchos casos (comerciales) es igualmente importante no solo tener un modelo preciso, sino también interpretable. A menudo, además de querer saber cuál es la predicción del precio de la vivienda de nuestro modelo, también nos preguntamos por qué es tan alto / bajo y qué características son más importantes para determinar el pronóstico. Otro ejemplo podría ser predecir la pérdida de clientes: es muy bueno tener un modelo que prediga con éxito qué clientes son propensos a abandonar, pero identificar qué variables son importantes puede ayudarnos en la detección temprana y tal vez incluso en mejorar el producto / servicio.

Conocer la importancia de las funciones que indican los modelos de aprendizaje automático puede beneficiarlo de múltiples maneras, por ejemplo:

  • al obtener una mejor comprensión de la lógica del modelo, no solo puede verificar que sea correcto, sino que también puede trabajar para mejorar el modelo centrándose solo en las variables importantes
  • lo anterior se puede utilizar para la selección de variables; puede eliminar X variables que no son tan significativas y tienen un rendimiento similar o mejor en un tiempo de entrenamiento mucho más corto
  • en algunos casos comerciales, tiene sentido sacrificar cierta precisión en aras de la interpretación. Por ejemplo, cuando un banco rechaza una solicitud de préstamo, también debe tener un razonamiento detrás de la decisión, que también se puede presentar al cliente.

Es por eso que en este artículo me gustaría explorar diferentes enfoques para interpretar la importancia de las características mediante el ejemplo de un modelo de bosque aleatorio. La mayoría de ellos también son aplicables a diferentes modelos, comenzando por la regresión lineal y terminando con cajas negras como XGBoost.

Una cosa a tener en cuenta es que cuanto más preciso es nuestro modelo, más podemos confiar en las medidas de importancia de las características y otras interpretaciones. Supongo que el modelo que construimos es razonablemente preciso (ya que cada científico de datos se esforzará por tener tal modelo) y en este artículo, me centro en las medidas de importancia.

Para este ejemplo, usaré el conjunto de datos de precios de la vivienda de Boston (por lo que es un problema de regresión). Pero los enfoques descritos en este artículo funcionan igual de bien con los problemas de clasificación, la única diferencia es la métrica utilizada para la evaluación.

Lo único no estándar en la preparación de los datos es la adición de una columna aleatoria al conjunto de datos. Lógicamente, no tiene poder predictivo sobre la variable dependiente (valor mediano de las casas ocupadas por el propietario en $ 1000 & # x27s), por lo que no debería ser una característica importante en el modelo. Veamos cómo resultará.

A continuación, inspecciono la relación entre la característica aleatoria y la variable de destino. Como se puede observar, no hay patrón en el diagrama de dispersión y la correlación es casi 0.


1.3: 03 Variables aleatorias - Matemáticas

Con un simple JavaScript dentro de Captivate, puede generar números aleatoriamente para crear tarjetas flash de matemáticas para ayudar a los participantes a aprender sus habilidades matemáticas básicas. Sin embargo, la resta y la división pueden causar problemas con números negativos o puntos decimales. Aprenda a superar estos problemas.

Cuando comencé a enseñar a tiempo completo en 1995, les enseñaba a mis estudiantes cómo crear una aplicación que generara tarjetas de matemáticas al azar para ayudar a los participantes a practicar los conceptos básicos de suma, resta, multiplicación y división. Este ejercicio es una excelente manera de aprender algo de codificación y lógica mientras se crea una aplicación que se puede usar en una variedad de lugares. Cuando enseñé esto por primera vez, usamos herramientas como Authorware, Director, Flash (Animate) e incluso hice una versión web de esta aplicación. Sin embargo, no he creado una versión de Captivate de esta aplicación. Entonces, aquí hay una muestra de cómo se ve en Captivate. Utilizo una animación de Adobe Animate para dar la vuelta a las cartas. Sin embargo, todo el trabajo se realiza dentro de Captivate.

Eche un vistazo y vea lo que piensa.

Otro gran compartir. ¡Gracias!

De nada. Fue divertido de construir.

A Phil Cowcill le encantan estos tutoriales tuyos. Esto está en mi lista de cosas por hacer para intentar esta semana. Gracias por compartir esto con el resto de nosotros.

Gracias jsv1 por tu comentario. Espero que le ayude con sus habilidades de aprendizaje y desarrollo. Todo lo mejor para usted.

Hace un tiempo, pero expliqué paso a paso cómo generar un número aleatorio con JS en dos publicaciones de blog:

También hay una segunda publicación.

Gracias Lieve. También hice una publicación sobre números aleatorios hace un tiempo. Se publicó en el blog de Adobe y en este sitio. Tenía que ver con el uso de números aleatorios para generar comentarios aleatorios. Esta publicación es otra forma de usar números aleatorios dentro de Captivate. Es una aplicación atractiva que puede ser adictiva.

¡Hola Paul! & # 8230 ¿Por qué te afeitaste el pelo? & # 8230

(¡Solo una broma, Phil! & # 8230 Espero que no & # 8217t te importe & # 8230 pero no puedo & # 8217t evitar hacerlo & # 8230)

Acabo de terminar de ver sus videos publicados esta mañana (y, por cierto, no me perdí los otros que ya comparten) & # 8230. MUCHAS gracias. & # 8230 ¡Y espero que te conviertas en otro & # 8220ressource man & # 8221 en esta comunidad! & # 8230 Especialmente en Javascript, que creo que falta (no & # 8217t te preocupes Greg, ¡no & # 8217t te olvidé! & # 8230) con este programa.

1. / ¿Puedes hablar un poco lento? & # 8230 Yo & # 8217m francés & # 8230 Y supongo que & # 8217 no soy el único hablante de inglés no nativo aquí & # 8230

2. / ¿Sería amable de su parte también compartir con nosotros, en el texto, el código Javascript que usa en su demostración? & # 8230

Gracias Ludovic por tus comentarios. Aprecio el comentario sobre reducir la velocidad. Hablo de una manera cuando estoy enseñando y de una manera diferente cuando estoy conversando. Este video fue grabado como si estuviera en una conversación. Reduciré el ritmo de mi charla en mi próximo video.

En cuanto al código JavaScript, esto es lo que tenía para la adición.
var ans = 0

var card1Num = getRandom (randMax, randMin)
var card2Num = getRandom (randMax, randMin)
console.log (& # 8220Max = & # 8221 + randMax + & # 8220, Min = & # 8221 + randMin)

// guardar el valor aleatorio en la variable Captivate card1 & amp card2.
// card1 y amp card2 son las variables leídas en la animación de la tarjeta invertida

window.cpAPIInterface.setVariableValue (& # 8220card1 & # 8221, card1Num)
window.cpAPIInterface.setVariableValue (& # 8220card2 & # 8221, card2Num)

ans = card1Num + card2Num
window.cpAPIInterface.setVariableValue (& # 8220theAnswer & # 8221, ans)

función getRandom (max, min) <
return Math.floor (Math.random () * (max & # 8211 min) + min)
>
En la resta, aquí está el código.
var d1 = 0
var d2 = 0
var ans = 0

d1 = window.cpAPIInterface.getVariableValue (& # 8220randMax & # 8221)
d2 = window.cpAPIInterface.getVariableValue (& # 8220randMin & # 8221)

var card2Num = getRandom (d1, d2)
var ans = getRandom (d1, d2)

var card1Num = card2Num + ans

window.cpAPIInterface.setVariableValue (& # 8220card1 & # 8221, card1Num)
window.cpAPIInterface.setVariableValue (& # 8220card2 & # 8221, card2Num)

Es un poco diferente a la adición porque estaba experimentando un poco. Sin embargo, funciona bien.


1.3: 03 Variables aleatorias - Matemáticas

Se espera que los estudiantes estén bien versados ​​en análisis reales al nivel de W.Rudin. Principios del análisis matemático o el de M. Reed Ideas fundamentales de análisis& mdash la topología de R n, convergencia en espacios métricos (especialmente convergencia uniforme de funciones en R n), series infinitas, conjuntos contables e incontables, compacidad y convexidad, etc. Intente responder las preguntas de este cuestionario de diagnóstico de análisis para ver si está preparado. La mayoría de los estudiantes que se especializaron en matemáticas como estudiantes universitarios estarán familiarizados con este material, pero los estudiantes con menos experiencia en matemáticas deberían considerar tomar el MTH 531, Análisis básico I de Duke (algo más avanzado que MTH 431, Cálculo avanzado I, pero esa es una buena segunda opción). ) antes de realizar este curso. También es posible aprender el material de antecedentes trabajando con uno de los textos estándar (como los libros de Rudin o Reed enumerados anteriormente) y resolviendo la mayoría de los problemas, preferiblemente en colaboración con un par de otros estudiantes y con un miembro de la facultad (tal vez yo ) para ayudar de vez en cuando. Temas matemáticos más avanzados del análisis real, incluidas partes de la teoría de la medida, Fourier y el análisis funcional, se introducen según sea necesario para respaldar una comprensión profunda de la probabilidad y sus aplicaciones. Se presta especial atención a los temas de interés posterior en estadística (por ejemplo, funciones de densidad condicional regulares), mientras que los de menor interés estadístico pueden omitirse.

La mayoría de los estudiantes de la clase estarán familiarizados con la probabilidad de nivel de pregrado en el nivel de STA 230 = MTH 230, STA 240L o MTH 340. Los estudiantes deben estar (o familiarizarse) con las distribuciones de probabilidad habituales que ocurren comúnmente (aquí hay una lista de muchos de ellos).

Hay notas de lectura semanales disponibles (haga clic en la columna "Semana" de arriba si es azul o verde). Este programa de estudios es provisional, se revisó por última vez y casi seguramente será reemplazado y mdash vuelva a cargar su navegador para la versión actual. Advertencia: notas de lectura y problemas con las tareas también se revisan de vez en cuando a medida que trato de mejorarlos. Por lo tanto, es mejor no imprimir futuros conjuntos de problemas o notas de clase hasta que los necesite. Todas las notas de clase tienen una fecha de "última edición" al final. Las tareas pueden cambiar en cualquier momento hasta la semana anterior a la fecha de vencimiento.

  • Habilite su cámara y apúntela a la cara durante todo el período de la clase. Por supuesto, puede tomar un breve descanso de vez en cuando y no es necesario que pregunte.
  • Asegúrese de que su nombre correcto aparezca entre "Participantes". Puede cambiarlo si es necesario.
  • El audio de todos se silenciará inicialmente. Desactive el silencio cuando esté hablando y luego vuelva a silenciarlo. Esto debería limitar la retroalimentación que distrae y el ruido de fondo.
  • Utilice la función de "chat" de Zoom para hacer preguntas durante las conferencias o "levante la mano".
  • No dude en solicitarme que acelere o desacelere (haga clic en "participantes", luego "ir más rápido" o "ir más lento").
  • Intentaré dejar 10 o 15 minutos al final de cada clase para más preguntas.
  • Las conferencias se graban y están disponibles en Warpwire (accesible a través de Sakai), para el beneficio de aquellos que no pueden participar en tiempo real y para la revisión de elementos cuando lo desee. Intente participar en tiempo real siempre que pueda.
  • Esta es la primera vez que enseño de forma remota y todavía estoy aprendiendo a hacerlo. ¡Espere algunas asperezas por un tiempo! Agradecería sus sugerencias ya que todos lidiamos juntos con el aprendizaje durante una pandemia.

Los problemas de tarea reciben puntos (generalmente hasta tres, pero a veces cuatro o cinco) en función de su éxito en comunicando una solución correcta. Para obtener crédito completo, la solución debe ser clara, concisa y correcta, incluso una solución correcta perderá puntos o se devolverá sin calificar si no es clara y concisa. La pulcritud cuenta. Considere usar LaTeX (es una buena práctica de todos modos). Evite el uso de prueba por contradicción siempre que sea posible y mdash, es demasiado fácil crear una "contradicción" errante cometiendo un pequeño error.

Cada tarea debe enviarse como un único documento PDF (no Word, no imágenes como png o jpg, no archivos separados para diferentes problemas). Pueden enviarse a través de Sakai o Gradescope. Las obras en casa tipográficas LaTeX son mucho mejores que las escritas a mano escaneadas. Si usted deber escanear una tarea escrita a mano, utilizar bolígrafo o un lápiz muy oscuro use un escáner, si tiene uno, o un buen escáner de teléfono celular --- vea las sugerencias de Gradescope (quienes recomiendan Scannable para iOS y Genius Scan para Android) o el New York Times (quienes recomiendan Adobe Scan para iOS y Android), por ejemplo. Otros han tenido una buena experiencia con Cam Scanner con ambos. Asegúrese de que USTED puede leer la imagen escaneada antes de enviarla. Si no puede leerlo, tampoco nosotros. Ajuste el brillo u otros parámetros de la imagen si es necesario.

La mayoría de las tareas deben entregarse el jueves antes del comienzo de la clase, así que puedo responder preguntas sobre sus soluciones. Por lo general, los devuelve la clase del martes siguiente. Las tareas asignadas la semana anterior a los exámenes pueden vencerse el martes en lugar del jueves, por lo que puedo responder preguntas sobre ellas antes del examen. Recuerde, los problemas con las tareas están sujetos a cambios hasta una semana antes de la fecha límite.

Los exámenes parciales y finales son a libro abierto y notas abiertas este año, pero no debe buscar respuestas en línea durante el examen. Las pruebas de las ofertas recientes de STA711 están disponibles para ayudarlo a saber qué esperar y para ayudarlo a prepararse para las pruebas de este año:

Otoño 2012: 1.er parcial 2.a mitad de período Examen final
Otoño 2013: 1.er parcial 2.a mitad de período Examen final
Otoño de 2015: 1.er parcial 2.a mitad de período Examen final
Otoño de 2016: 1.er parcial 2.a mitad de período Examen final
Otoño de 2017: 1.er parcial 2.a mitad de período Examen final
Otoño 2018: 1.er parcial 2.a mitad de período Examen final
Otoño 2019: 1.er parcial 2.a mitad de período Examen final
No hay soluciones disponibles para estos, porque muchos estudiantes no pueden resistirse a buscar la respuesta cuando se atascan y luego los exámenes pierden su valor. Si comparte sus soluciones con los asistentes técnicos o conmigo durante nuestro horario de oficina, estaremos encantados de darle comentarios, sugerencias, etc. Tenga en cuenta también que los exámenes anteriores fueron libro cerrado and taken in person, in years before the pandemic led us to off-line solutions. Exams are administered using the "Tests and Quizzes" tool in Sakai, which gives you a specified length of time to download, solve, scan, and upload your solutions as a single pdf file, all within a specified time window. It is your responsibility to obtain and use an adequate scanning app (see recommendations in the Homework section above) or actual scanner.

  1. There are enough seats in the room, and
  2. They are willing to commit to active participation:
    1. turn in several of the homeworks (or a few problems on each of most HW assignments),
    2. take one of the midterms or the final exam,
    3. come regularly to lectures, and ask or answer questions now and then.

    You may discuss and collaborate in solving homework problems, but you may not copy&mdash each student should write up his or her solution. Cheating on exams, copying or plagiarizing homeworks or projects, lying about an illness or absence and other forms of academic dishonesty are a breach of trust with classmates and faculty, and will not be tolerated. They also violate Duke's Community Standard and will be referred to the Graduate School Judicial Board or the Dean of the Graduate School. Additionally, there may be penalties to your final course grade. Please review Duke's Standards of Conduct.


    2 respuestas 2

    Since $X$ and $Y$ are independent Gaussians, they are also jointly normaly distributed. So, one can just take the pdf of a bivariate standard normal distribution and adjust the integrals according to the given conditions. With $Z = -Y$ and $f(x,z)$ denoting the bivariate normal distribution, I thought about the problem like this:

    $ quad P(3x > -y > x land x > 0 land y < 0) =P(3x > z > x) x,z>0 =P(3x > z) - P(x > z) x,z>0 =P(3x - z > 0) - P(x - z > 0) x,z>0 = int_0^ int_0^ <3x>f(x,z)dzdx - int_0^ int_0^ f(x,z)dzdx.$

    Since the analytical solution at this point wasn't easy, I have to admit that I just used WolframAlpha. As a result I got:

    $quad int_0^ int_0^ <3x>f(x,z)dzdx - int_0^ int_0^ f(x,z)dzdx = frac(3)> <2pi>- frac<1> <8>approx 0.073792. PS


    The most fundamental problem of your test application is that you call srand once and then call rand one time and exit.

    The whole point of srand function is to initialize the sequence of pseudo-random numbers with a random seed.

    It means that if you pass the same value to srand in two different applications (with the same srand / rand implementation) then you will get exactly the same sequence of rand() values read after that in both applications.

    However in your example application pseudo-random sequence consists only of one element - the first element of a pseudo-random sequence generated from seed equal to current time of 1 sec precision. What do you expect to see on output then?

    Obviously when you happen to run application on the same second - you use the same seed value - thus your result is the same of course (as Martin York already mentioned in a comment to the question).

    Actually you should call srand(seed) one time and then call rand() many times and analyze that sequence - it should look random.

    AMENDMENT 1 - example code:

    OK I get it. Apparently verbal description is not enough (maybe language barrier or something. :) ).

    Old-fashioned C code example based on the same srand()/rand()/time() functions that was used in the question:

    ^^^ THAT sequence from a single run of the program is supposed to look random.

    Please NOTE that I don't recommend to use rand / srand functions in production for the reasons explained below and I absolutely don't recommend to use function time as a random seed for the reasons that IMO already should be quite obvious. Those are fine for educational purposes and to illustrate the point sometimes but for any serious use they are mostly useless.

    AMENDMENT 2 - detailed explanation:

    It is important to understand that as of now there is none C or C++ standard features (library functions or classes) producing actually random data definitively (i.e. guaranteed by the standard to be actually random). The only standard feature that approaches this problem is std::random_device that unfortunately still does not provide guarantees of actual randomness.

    Depending on the nature of application you should first decide if you really need truly random (unpredictable) data. Notable case when you do most certainly need true randomness is information security - e.g. generating symmetric keys, asymmetric private keys, salt values, security tokens, etc.

    However security-grade random numbers is a separate industry worth a separate article.

    In most cases Pseudo-Random Number Generator is sufficient - e.g. for scientific simulations or games. In some cases consistently defined pseudo-random sequence is even required - e.g. in games you may choose to generate exactly same maps in runtime to avoid storing lots of data in your distribution.

    The original question and reoccurring multitude of identical/similar questions (and even many misguided "answers" to them) indicate that first and foremost it is important to distinguish random numbers from pseudo-random numbers AND to understand what is pseudo-random number sequence in the first place AND to realize that pseudo-random number generators are NOT used the same way you could use true random number generators.

    Intuitively when you request random number - the result returned shouldn't depend on previously returned values and shouldn't depend if anyone requested anything before and shouldn't depend in what moment and by what process and on what computer and from what generator and in what galaxy it was requested. That is what word "random" means after all - being unpredictable and independent of anything - otherwise it is not random anymore, right? With this intuition it is only natural to search the web for some magic spells to cast to get such random number in any possible context.

    ^^^ THAT kind of intuitive expectations IS VERY WRONG and harmful in all cases involving Pseudo-Random Number Generators - despite being reasonable for true random numbers.

    While the meaningful notion of "random number" exists (kind of) - there is no such thing as "pseudo-random number". A Pseudo-Random Number Generator actually produces pseudo-random number secuencia.

    Pseudo-random sequence is in fact always deterministic (predetermined by its algorithm and initial parameters) - i.e. there is actually nothing random about it.

    When experts talk about quality of PRNG they actually talk about statistical properties of the generated sequence (and its notable sub-sequences). For example if you combine two high quality PRNGs by using them both in turns - you may produce bad resulting sequence - despite them generating good sequences each separately (those two good sequences may simply correlate to each other and thus combine badly).

    Specifically rand() / srand(s) pair of functions provide a singular per-process non-thread-safe(!) pseudo-random number sequence generated with implementation-defined algorithm. Function rand() produces values in range [0, RAND_MAX] .

    Quote from C11 standard (ISO/IEC 9899:2011):

    The srand function uses the argument as a seed for a new sequence of pseudo-random numbers to be returned by subsequent calls to rand . If srand is then called with the same seed value, the sequence of pseudo-random numbers shall be repeated. If rand is called before any calls to srand have been made, the same sequence shall be generated as when srand is first called with a seed value of 1.

    Many people reasonably expect that rand() would produce a sequence of semi-independent uniformly distributed numbers in range 0 to RAND_MAX . Well it most certainly should (otherwise it's useless) but unfortunately not only standard doesn't require that - there is even explicit disclaimer that states "there is no guarantees as to the quality of the random sequence produced". In some historical cases rand / srand implementation was of very bad quality indeed. Even though in modern implementations it is most likely good enough - but the trust is broken and not easy to recover. Besides its non-thread-safe nature makes its safe usage in multi-threaded applications tricky and limited (still possible - you may just use them from one dedicated thread).

    New class template std::mersenne_twister_engine<> (and its convenience typedefs - std::mt19937 / std::mt19937_64 with good template parameters combination) provides per-object pseudo-random number generator defined in C++11 standard. With the same template parameters and the same initialization parameters different objects will generate exactly the same per-object output sequence on any computer in any application built with C++11 compliant standard library. The advantage of this class is its predictably high quality output sequence and full consistency across implementations.

    Also there are more PRNG engines defined in C++11 standard - std::linear_congruential_engine<> (historically used as fair quality srand/rand algorithm in some C standard library implementations) and std::subtract_with_carry_engine<>. They also generate fully defined parameter-dependent per-object output sequences.

    Modern day C++11 example replacement for the obsolete C code above:

    The version of previous code that uses std::uniform_int_distribution<>


    Ver el vídeo: Discrete Random Variables 1 of 3: Expected value u0026 median (Julio 2022).


Comentarios:

  1. Alijha

    Fuiste visitado por un pensamiento simplemente magnífico.

  2. Bromleigh

    Lo siento, pero creo que estás cometiendo un error. Vamos a discutir. Envíame un correo electrónico a PM.

  3. Willis

    Yo para ti estoy muy obligado.

  4. Murrough

    Figase O_O

  5. Mandar

    En mi opinión, esto es obvio. Recomiendo buscar la respuesta a tu pregunta en google.com

  6. Ira

    Le pido perdón que intervino... Entiendo esa pregunta. Podemos examinar.

  7. Melar

    Aquí entre nosotros, en mi opinión, es obvio. Recomiendo buscar la respuesta a su pregunta en google.com



Escribe un mensaje