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

Muestra aleatoria de datos, con o sin reemplazo

Descripción

ejemplo

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

ejemplo

y = datasample(data,k,dim) devuelve una muestra tomada a lo largo de la dimensión de .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 reemplazo.'Replace',false

ejemplo

y = datasample(s,___) utiliza la secuencia de números aleatorios 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 qué valores muestreados del uso de cualquiera de los argumentos de entrada en las sintaxis anteriores.datasampledata

Ejemplos

contraer todo

Cree la secuencia de números aleatorios para la 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 la secuencia de números aleatorios para la reproducibilidad.

s = RandStream('mlfg6331_64');

Genere caracteres aleatorios a partir de la secuencia por 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 la secuencia de números aleatorios para la reproducibilidad dentro de .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

Vuelva a muestrear observaciones de una matriz de conjuntos de datos para crear un conjunto de datos de réplica de arranque. Consulte para obtener más información sobre el arranque.Bootstrap Resampling

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 el reemplazo del conjunto de datos.hospitalhospital

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

Seleccione muestras de datos basados en índices de una muestra elegida de otro vector.

Generar 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

Datos de entrada desde los que se muestrean, especificados como vector, matriz, matriz multidimensional, tabla o matriz de conjunto s. De forma predeterminada, muestras de la primera dimensión nonsingleton de .datasampledata Por ejemplo, si es una matriz, muestra 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, especificado como un entero positivo.

Ejemplo: devuelve 100 observaciones muestreadas de forma uniforme y aleatoria a partir de los datos en .datasample(data,100)data

Tipos de datos: single | double

Dimensión a muestrear, 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 utiliza para garantizar el muestreo a lo largo de una dimensión específica, independientemente de si es un vector, una matriz o una matriz dimensional.dimdataN

Tipos de datos: single | double

Secuencia de números aleatorios, especificada como la secuencia global o .RandStream Por ejemplo, crea una secuencia de números aleatoria que utiliza el algoritmo de generador de Fibonacci retrasado multiplicativo.s = RandStream('mlfg6331_64') Para obtener más información, consulte .Creating and Controlling a Random Number Stream (MATLAB)

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

Argumentos de par nombre-valor

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

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

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

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

Tipos de datos: logical

Pesos de muestreo, especificados 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 está el tamaño de la dimensión que se muestrea.datasizedatasize El vector debe tener al menos un valor positivo y no puede contener valores.NaN La función muestra con una 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

Ejemplo, devuelto como vector, matriz, matriz multidimensional, tabla o matriz de conjunto de datos.

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

  • Si es una matriz y , entonces es una matriz que contiene filas seleccionadas de .datadim1ykdata O bien, si es , 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, muestree ejemplos a lo largo de la dimensión.dimdatasampledim

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

  • Si es una matriz de conjunto de datos y , , entonces es una matriz de conjunto de datos que contiene filas seleccionadas de .datadim1ykdata O bien, si , entonces es una matriz de conjunto de datos que contiene variables seleccionadas de .dim2ykdata

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

Cuando la muestra se toma con reemplazo (predeterminado), puede contener observaciones repetidas de .ydata Establezca el argumento de par nombre-valor en sample sin reemplazo.Replacefalse

Indices, devueltos como vector que indica qué elementos elige crear .datasampledatay Por ejemplo:

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

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

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

Sugerencias

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

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

  • Para muestrear aleatoriamente los 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 global.datasampleMATLAB® Controle el generador de números aleatorios utilizando .rng

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

Funcionalidad alternativa

Puede utilizar o generar índices para el muestreo aleatorio con o sin reemplazo, respectivamente.randirandperm Sin embargo, puede ser más conveniente de usar porque muestra directamente de sus datos. también permite el muestreo ponderado.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