Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

datasample

Muestrear aleatoriamente a partir de datos, con o sin reemplazo

Descripción

ejemplo

y = datasample(data,k) Devuelve observaciones muestreadas uniformemente al azar, con sustitución, de los datos en.kdata

ejemplo

y = datasample(data,k,dim) Devuelve una muestra tomada a lo largo de la dimensión.dimdata

ejemplo

y = datasample(___,Name,Value) Devuelve un ejemplo para cualquiera de los argumentos de entrada de las sintaxis anteriores, con opciones adicionales especificadas por uno o varios argumentos de par nombre-valor. Por ejemplo, especifica el muestreo sin sustitución.'Replace',false

ejemplo

y = datasample(s,___) utiliza la secuencia numérica aleatoria para generar números aleatorios.s La opción puede preceder a cualquiera de los argumentos de entrada de las sintaxis anteriores.s

ejemplo

[y,idx] = datasample(___) también devuelve un vector de índice que indica los valores muestreados utilizando cualquiera de los argumentos de entrada de las sintaxis anteriores.datasampledata

Ejemplos

contraer todo

Cree el flujo de números aleatorios para reproducibilidad.

s = RandStream('mlfg6331_64'); 

Dibuje cinco valores únicos de los enteros a.110

y = datasample(s,1:10,5,'Replace',false)
y = 1×5

     9     8     3     6     2

Cree el flujo de números aleatorios para reproducibilidad.

s = RandStream('mlfg6331_64');

Genere caracteres aleatorios a partir de la secuencia según las probabilidades especificadas.48ACGT

seq = datasample(s,'ACGT',48,'Weights',[0.15 0.35 0.35 0.15])
seq =  'GGCGGCGCAAGGCGCCGGACCTGGCTGCACGCCGTTCCCTGCTACTCG' 

Establezca la semilla aleatoria para la reproducibilidad de los resultados.

rng(10,'twister') 

Genere una matriz con 10 filas y 1000 columnas.

X = randn(10,1000);

Cree el flujo de números aleatorios para reproducibilidad dentro.datasample

s = RandStream('mlfg6331_64');

Seleccione aleatoriamente cinco columnas únicas de.X

Y = datasample(s,X,5,2,'Replace',false)
Y = 10×5

    0.4317   -0.3327    0.9112   -2.3244    0.9559
    0.6977   -0.7422    0.4578   -1.3745   -0.8634
   -0.8543   -0.3105    0.9836   -0.6434   -0.4457
    0.1686    0.6609   -0.0553   -0.1202   -1.3699
   -1.7649   -1.1607   -0.3513   -1.5533    0.0597
   -0.3821    0.5696   -1.6264   -0.2104   -1.5486
   -1.6844    0.7148   -0.6876   -0.4447   -1.4615
   -0.4170    1.3696    1.1874   -0.9901    0.5875
   -0.2410    1.4703   -2.5003   -1.1321   -1.8451
    0.6212    1.4118   -0.4518    0.8697    0.8093

Remuestrear las observaciones de una matriz de DataSet para crear un conjunto de datos de réplica de bootstrap. Vea para más información sobre el bootstrapping.Bootstrap remuestreo

Cargue el conjunto de datos de ejemplo.

load hospital

Cree un conjunto de datos que tenga el mismo tamaño que el conjunto de datos y contenga muestras aleatorias elegidas con la sustitución del conjunto de datos.hospitalhospital

y = datasample(hospital,size(hospital,1));

Seleccione muestras de datos en función de los índices de una muestra elegida de otro vector.

Genere dos vectores aleatorios.

x1 = randn(100,1); x2 = randn(100,1);

Seleccione una muestra de elementos de vector y devuelva los índices de la muestra en Vector.10x1idx

[y1,idx] = datasample(x1,10);

Seleccione una muestra de elementos del vector utilizando los índices en Vector.10x2idx

y2 = x2(idx);

Argumentos de entrada

contraer todo

Introduzca los datos de los que desea muestrear, especificados como vector, matriz, matriz multidimensional, tabla o matriz de DataSet. De forma predeterminada, las muestras de la primera dimensión nonsingleton de.datasampledata Por ejemplo, si es una matriz, a continuación, las muestras de las filas.datadatasample Cambie este comportamiento con el argumento de entrada.dim

Tipos de datos: single | double | logical | char | string | table

Número de muestras, especificadas como un entero positivo.

Ejemplo: Devuelve 100 observaciones muestreadas uniformemente y al azar de los datos en.datasample(data,100)data

Tipos de datos: single | double

Dimensión a la muestra, especificada como un entero positivo. Por ejemplo, si es una matriz y es, contiene una selección de columnas en.datadim2ydata Si es una matriz de tabla o DataSet y es, contiene una selección de variables en.datadim2ydata Se usa para garantizar el muestreo a lo largo de una dimensión específica, independientemente de si es un vector, matriz o matriz dimensional.dimdataN

Tipos de datos: single | double

Secuencia numérica aleatoria, especificada como la secuencia global o.RandStream Por ejemplo, crea un flujo de números aleatorios que utiliza el algoritmo de generador de Fibonacci retrasado multiplicativo.s = RandStream('mlfg6331_64') Para obtener más información, consulte.Crear y controlar un flujo de números aleatorios (MATLAB)

La función proporciona una forma sencilla de controlar la secuencia global.rng Por ejemplo, siembra el generador de números aleatorios utilizando el entero no negativo.rng(seed) Para obtener más información, consulte.La gestión de la transmisión global (MATLAB)

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: muestras sin sustitución y con probabilidad proporcional a los elementos de, donde es el tamaño de la cota que se está muestreando.'Replace',false,'Weights',ones(datasize,1)Weightsdatasize

Indicador de muestreo con sustitución, especificado como el par separado por comas que consta de y cualquiera o.'Replace'truefalse

Muestra con reemplazo si es, o sin reemplazo si es.'Replace'true'Replace'false Si es así, no debe ser mayor que el tamaño de la cota que se está muestreando.'Replace'falsek Por ejemplo, si y, a continuación, no puede ser mayor que.data = [1 3 Inf; 2 4 5]y = datasample(data,k,'Replace',false)k2

Tipos de datos: logical

Ponderaciones de muestreo, especificadas como el par separado por comas que consta de y un vector de valores numéricos no negativos.'Weights' El vector es de tamaño, donde es el tamaño de la dimensión que se está muestreando.datasizedatasize El vector debe tener al menos un valor positivo y no puede contener valores.NaN Las muestras de función con probabilidad proporcional a los elementos de.datasample'Weights'

Ejemplo: 'Weights',[0.1 0.5 0.35 0.46]

Tipos de datos: single | double

Argumentos de salida

contraer todo

Sample, devuelta como vector, matriz, matriz multidimensional, tabla o matriz de DataSet.

  • Si es un vector, entonces es un vector que contiene elementos seleccionados de.dataykdata

  • Si es una Matrix y =, entonces es una matriz que contiene filas seleccionadas de.datadim1ykdata O, si =, entonces es una matriz que contiene columnas seleccionadas de.dim2ykdata

  • Si es una matriz dimensional y =, entonces es una matriz dimensional de muestras tomadas a lo largo de la primera dimensión nonsingleton de.dataNdim1yNdata O bien, si especifica un valor para el argumento de par nombre-valor, muestrea a lo largo de la dimensión.dimdatasampledim

  • Si es una tabla y =, entonces es una tabla que contiene las filas seleccionadas de.datadim1ykdata O, si =, entonces es una tabla que contiene las variables seleccionadas de.dim2ykdata

  • Si es una matriz de conjunto de datos y =, a continuación, es una matriz de conjunto de datos que contiene filas seleccionadas.datadim1ykdata O, si =, a continuación, es una matriz de conjunto de datos que contiene las variables seleccionadas.dim2ykdata

Si la entrada contiene observaciones faltantes que se representan como valores, muestras de toda la entrada, incluidos los valores.dataNaNdatasampleNaN Por ejemplo, puede volver.y = datasample([NaN 6 14],2)y = NaN 14

Cuando la muestra se toma con la sustitución (por defecto), puede contener observaciones repetidas de.ydata Establezca el argumento de par nombre-valor para muestrear sin reemplazo.Replacefalse

Índices, devueltos como un vector que indica qué elementos se eligen para crear.datasampledatay Por ejemplo:

  • Si es un vector, entonces.datay = data(idx)

  • Si es una Matrix y =, entonces.datadim1y = data(idx,:)

  • Si es una Matrix y =, entonces.datadim2y = data(:,idx)

Sugerencias

  • Para muestrear enteros aleatorios con reemplazo de un rango, use.randi

  • Para muestrear enteros aleatorios sin reemplazo, use o.randpermdatasample

  • Para muestrear aleatoriamente a partir de datos, con o sin reemplazo, utilice.datasample

Algoritmos

utiliza, o para generar valores aleatorios.datasamplerandpermrandrandi Por lo tanto, cambia el estado del generador de números aleatorios globales.datasampleMATLAB® Controle el generador de números aleatorios usando.rng

Para seleccionar muestras ponderadas sin reemplazo, utiliza el algoritmo de Wong y Easton.datasample[1]

Funcionalidad alternativa

Puede utilizar o generar índices para muestreo aleatorio con o sin sustitución, respectivamente.randirandperm Sin embargo, puede ser más cómodo de usar porque muestrea directamente de sus datos. también permite muestreos ponderados.datasampledatasample

Referencias

[1] Wong, C. K. and M. C. Easton. An Efficient Method for Weighted Sampling Without Replacement. SIAM Journal of Computing 9(1), pp. 111–113, 1980.

Capacidades ampliadas

Consulte también

| | | | |

Introducido en R2011b