Use github theme and add some comments
[maxima.git] / doc / info / es / descriptive.texi
blobd35e923efebad4c214bd4552fdf05d6241b3d6fb
1 @c English version: 2016-12-03
2 @menu
3 * Introducción a descriptive::
4 * Funciones y variables para el tratamiento de datos::
5 * Funciones y variables de parámetros descriptivos::
6 * Funciones y variables para gráficos estadísticos::
7 @end menu
9 @node Introducción a descriptive, Funciones y variables para el tratamiento de datos, descriptive, descriptive
10 @section Introducción a descriptive
13 El paquete @code{descriptive} contiene funciones para realizar 
14 c@'lculos y gráficos estadísticos descriptivos. 
15 Junto con el código fuente se distribuyen tres conjuntos de datos: 
16 @code{pidigits.data}, @code{wind.data} y @code{biomed.data}.
18 Cualquier manual de estadística se puede utilizar como referencia al paquete @code{descriptive}.
20 Para comentarios, fallos y sugerencias, por favor contactar con @var{'riotorto AT yahoo DOT com'}.
22 Aquí un sencillo ejemplo sobre cómo operan las funciones de @code{descriptive}, dependiendo de la naturaleza de sus argumentos, listas o matrices,
24 @c ===beg===
25 @c load ("descriptive")$
26 @c /* muestra univariate */   mean ([a, b, c]);
27 @c matrix ([a, b], [c, d], [e, f]);
28 @c /* muestra multivariante */ mean (%);
29 @c ===end===
30 @example
31 (%i1) load ("descriptive")$
32 @group
33 (%i2) /* muestra univariate */   mean ([a, b, c]);
34                             c + b + a
35 (%o2)                       ---------
36                                 3
37 @end group
38 @group
39 (%i3) matrix ([a, b], [c, d], [e, f]);
40                             [ a  b ]
41                             [      ]
42 (%o3)                       [ c  d ]
43                             [      ]
44                             [ e  f ]
45 @end group
46 @group
47 (%i4) /* muestra multivariante */ mean (%);
48                       e + c + a  f + d + b
49 (%o4)                [---------, ---------]
50                           3          3
51 @end group
52 @end example
54 Nótese que en las muestras multivariantes la media se calcula para cada columna.
56 En caso de varias muestras de diferente tamaño, la función @code{map} de Maxima puede utilizarse para obtener los resultados deseados para cada muestra,
58 @c ===beg===
59 @c load ("descriptive")$
60 @c map (mean, [[a, b, c], [d, e]]);
61 @c ===end===
62 @example
63 (%i1) load ("descriptive")$
64 @group
65 (%i2) map (mean, [[a, b, c], [d, e]]);
66                         c + b + a  e + d
67 (%o2)                  [---------, -----]
68                             3        2
69 @end group
70 @end example
72 En este caso, dos muestras de tamaños 3 y 2 han sido almacenadas en una lista.
74 Muestras univariantes deben guardarse en listas como en
76 @c ===beg===
77 @c s1 : [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
78 @c ===end===
79 @example
80 @group
81 (%i1) s1 : [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
82 (%o1)           [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
83 @end group
84 @end example
86 y muestras multivariantes en matrices como las del siguiente ejemplo
88 @c ===beg===
89 @c s2 : matrix ([13.17, 9.29], [14.71, 16.88], [18.50, 16.88],
90 @c              [10.58, 6.63], [13.33, 13.25], [13.21,  8.12]);
91 @c ===end===
92 @example
93 (%i1) s2 : matrix ([13.17, 9.29], [14.71, 16.88], [18.50, 16.88],
94              [10.58, 6.63], [13.33, 13.25], [13.21,  8.12]);
95                         [ 13.17  9.29  ]
96                         [              ]
97                         [ 14.71  16.88 ]
98                         [              ]
99                         [ 18.5   16.88 ]
100 (%o1)                   [              ]
101                         [ 10.58  6.63  ]
102                         [              ]
103                         [ 13.33  13.25 ]
104                         [              ]
105                         [ 13.21  8.12  ]
106 @end example
108 En este caso, el número de columnas es igual al de la dimensión de la variable aleatoria y el número de filas coincide con el tamaño muestral.
110 Los datos pueden suministrarse manualmente, pero las muestras grandes se suelen almacenar en ficheros de texto. Por ejemplo, el fichero @code{pidigits.data} contiene los 100 primeros dígitos del número @code{%pi}:
111 @example
112       3
113       1
114       4
115       1
116       5
117       9
118       2
119       6
120       5
121       3 ...
122 @end example
124 A fin de leer estos dígitos desde Maxima,
126 @c ===beg===
127 @c s1 : read_list (file_search ("pidigits.data"))$
128 @c length (s1);
129 @c ===end===
130 @example
131 (%i1) s1 : read_list (file_search ("pidigits.data"))$
132 @group
133 (%i2) length (s1);
134 (%o2)                          100
135 @end group
136 @end example
138 Por otro lado, el archivo @code{wind.data} contiene los promedios diarios de la velocidad del viento en cinco estaciones meteorológicas en Irlanda (esta muestra es parte de un conjunto de datos correspondientes a 12 estaciones meteorológicas. El fichero original se puede descargar libremente del 'StatLib Data Repository' y se analiza en  Haslett, J., Raftery, A. E. (1989) @var{Space-time Modelling with Long-memory Dependence: Assessing Ireland's Wind Power Resource, with Discussion}. Applied Statistics 38, 1-50). Así se leen los datos:
140 @c ===beg===
141 @c s2 : read_matrix (file_search ("wind.data"))$
142 @c length (s2);
143 @c s2 [%]; /* last record */
144 @c ===end===
145 @example
146 (%i1) s2 : read_matrix (file_search ("wind.data"))$
147 @group
148 (%i2) length (s2);
149 (%o2)                          100
150 @end group
151 @group
152 (%i3) s2 [%]; /* last record */
153 (%o3)            [3.58, 6.0, 4.58, 7.62, 11.25]
154 @end group
155 @end example
157 Algunas muestras contienen datos no numéricos. Como ejemplo, el archivo @code{biomed.data} (el cual es parte de otro mayor descargado también del 'StatLib Data Repository') contiene cuatro mediciones sanguíneas tomadas a dos grupos de pacientes, @code{A} y @code{B}, de diferentes edades,
159 @c ===beg===
160 @c s3 : read_matrix (file_search ("biomed.data"))$
161 @c length (s3);
162 @c s3 [1]; /* first record */
163 @c ===end===
164 @example
165 (%i1) s3 : read_matrix (file_search ("biomed.data"))$
166 @group
167 (%i2) length (s3);
168 (%o2)                          100
169 @end group
170 @group
171 (%i3) s3 [1]; /* first record */
172 (%o3)            [A, 30, 167.0, 89.0, 25.6, 364]
173 @end group
174 @end example
176 El primer individuo pertenece al grupo @code{A}, tiene 30 años de edad y sus medidas sanguíneas fueron 167.0, 89.0, 25.6 y 364.
178 Debe tenerse cuidado cuando se trabaje con datos categóricos. En el siguiente ejemplo, se asigna al símbolo @code{a} cierto valor en algún momento previo y luego se toma una muestra con el valor categórico @code{a},
180 @c ===beg===
181 @c a : 1$
182 @c matrix ([a, 3], [b, 5]);
183 @c ===end===
184 @example
185 (%i1) a : 1$
186 @group
187 (%i2) matrix ([a, 3], [b, 5]);
188                             [ 1  3 ]
189 (%o2)                       [      ]
190                             [ b  5 ]
191 @end group
192 @end example
195 @node Funciones y variables para el tratamiento de datos, Funciones y variables de parámetros descriptivos, Introducción a descriptive, descriptive
196 @section Funciones y variables para el tratamiento de datos
200 @deffn {Función} build_sample (@var{list})
201 @deffnx {Función} build_sample (@var{matrix})
202 Construye una muestra a partir de una tabla de frecuencias absolutas.
203 La tabla de entrada puede ser una una matriz o una lista de listas,
204 todas ellas de igual tamaño. El número de columnas o la longitud de
205 las listas debe ser mayor que la unidad. El último elemento de cada
206 fila o lista se interpreta como la frecuencia absoluta.
207 El resultado se devuelve siempre en formato de matriz.
209 Ejemplos:
211 Tabla de frecuencias univariante.
213 @c ===beg===
214 @c load ("descriptive")$
215 @c sam1: build_sample([[6,1], [j,2], [2,1]]);
216 @c mean(sam1);
217 @c barsplot(sam1) $
218 @c ===end===
219 @example
220 (%i1) load ("descriptive")$
221 (%i2) sam1: build_sample([[6,1], [j,2], [2,1]]);
222                        [ 6 ]
223                        [   ]
224                        [ j ]
225 (%o2)                  [   ]
226                        [ j ]
227                        [   ]
228                        [ 2 ]
229 (%i3) mean(sam1);
230                       2 j + 8
231 (%o3)                [-------]
232                          4
233 (%i4) barsplot(sam1) $
234 @end example
236 Tabla de frecuencias multivariante.
238 @c ===beg===
239 @c load ("descriptive")$
240 @c sam2: build_sample([[6,3,1], [5,6,2], [u,2,1],[6,8,2]]) ;
241 @c cov(sam2);
242 @c barsplot(sam2, grouping=stacked) $
243 @c ===end===
244 @example
245 (%i1) load ("descriptive")$
246 (%i2) sam2: build_sample([[6,3,1], [5,6,2], [u,2,1],[6,8,2]]) ;
247                            [ 6  3 ]
248                            [      ]
249                            [ 5  6 ]
250                            [      ]
251                            [ 5  6 ]
252 (%o2)                      [      ]
253                            [ u  2 ]
254                            [      ]
255                            [ 6  8 ]
256                            [      ]
257                            [ 6  8 ]
258 (%i3) cov(sam2);
259        [   2                 2                            ]
260        [  u  + 158   (u + 28)     2 u + 174   11 (u + 28) ]
261        [  -------- - ---------    --------- - ----------- ]
262 (%o3)  [     6          36            6           12      ]
263        [                                                  ]
264        [ 2 u + 174   11 (u + 28)            21            ]
265        [ --------- - -----------            --            ]
266        [     6           12                 4             ]
267 (%i4) barsplot(sam2, grouping=stacked) $
268 @end example
269 @end deffn
273 @deffn {Función} continuous_freq (@var{list})
274 @deffnx {Función} continuous_freq (@var{list}, @var{m})
275 El argumento de @code{continuous_freq} debe ser una lista de números.
276 Divide el rango en intervalos y cuenta cuántos valores hay en ellos.
277 El segundo argumento es opcional y puede ser el número de clases 
278 deseado, 10 por defecto, o una lista que contenga los límites
279 de las clases y el número de éstas, o una lista que contenga
280 únicamente los límites. Si los valores muestrales
281 son todos iguales, esta función devuelve solamente una clase 
282 de amplitud 2.
284 Ejemplos:
286 El argumento opcional indica el número de clases deseadas. 
287 La primera lista de la respuesta contiene los límites
288 de los intervalos y la segunda los totales correspondientes: hay 16
289 dígitos en el intervalo @code{[0, 1.8]}, 24 en 
290 @code{(1.8, 3.6]} y así sucesivamente.
292 @c ===beg===
293 @c load ("descriptive")$
294 @c s1 : read_list (file_search ("pidigits.data"))$
295 @c continuous_freq (s1, 5);
296 @c ===end===
297 @example
298 (%i1) load ("descriptive")$
299 (%i2) s1 : read_list (file_search ("pidigits.data"))$
300 (%i3) continuous_freq (s1, 5);
301 (%o3) [[0, 1.8, 3.6, 5.4, 7.2, 9.0], [16, 24, 18, 17, 25]]
302 @end example
304 El argumento opcional indica que queremos 7 clases con 
305 límites -2 y 12:
307 @c ===beg===
308 @c load ("descriptive")$
309 @c s1 : read_list (file_search ("pidigits.data"))$
310 @c continuous_freq (s1, [-2,12,7]);
311 @c ===end===
312 @example
313 (%i1) load ("descriptive")$
314 (%i2) s1 : read_list (file_search ("pidigits.data"))$
315 (%i3) continuous_freq (s1, [-2,12,7]);
316 (%o3) [[- 2, 0, 2, 4, 6, 8, 10, 12], [8, 20, 22, 17, 20, 13, 0]]
317 @end example
319 El argumento opcional indica que queremos el número por defecto
320 de clases y límites -2 y 12:
322 @c ===beg===
323 @c load ("descriptive")$
324 @c s1 : read_list (file_search ("pidigits.data"))$
325 @c continuous_freq (s1, [-2,12]);
326 @c ===end===
327 @example
328 (%i1) load ("descriptive")$
329 (%i2) s1 : read_list (file_search ("pidigits.data"))$
330 (%i3) continuous_freq (s1, [-2,12]);
331                 3  4  11  18     32  39  46  53
332 (%o3)  [[- 2, - -, -, --, --, 5, --, --, --, --, 12], 
333                 5  5  5   5      5   5   5   5
334                [0, 8, 20, 12, 18, 9, 8, 25, 0, 0]]
335 @end example
337 @end deffn
341 @deffn {Función} discrete_freq (@var{list})
342 Calcula las frecuencias absolutas en muestras discretas, tanto numéricas como categóricas. Su único argumento debe ser una lista.
344 @c ===beg===
345 @c load ("descriptive")$
346 @c s1 : read_list (file_search ("pidigits.data"))$
347 @c discrete_freq (s1);
348 @c ===end===
349 @example
350 (%i1) load ("descriptive")$
351 (%i2) s1 : read_list (file_search ("pidigits.data"))$
352 @group
353 (%i3) discrete_freq (s1);
354 (%o3) [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 
355                              [8, 8, 12, 12, 10, 8, 9, 8, 12, 13]]
356 @end group
357 @end example
360 La primera lista son los valores de la muestra y la segunda sus frecuencias absolutas. Las instrucciones @code{? col} y 
361 @code{? transpose} pueden ayudar a comprender la última entrada.
362 @end deffn
366 @deffn {Función} standardize (@var{list})
367 @deffnx {Función} standardize (@var{matrix})
369 Resta a cada elemento de la lista la media muestral y luego divide el resultado por
370 la desviación típica. Si la entrada es una matriz, @code{standardize} 
371 resta a cada fila la media multivariante y luego divide cada componente por la
372 desviación típica correspondiente.
374 @end deffn
379 @deffn {Función} subsample (@var{data_matrix}, @var{predicate_function})
380 @deffnx {Función} subsample (@var{data_matrix}, @var{predicate_function}, @var{col_num}, @var{col_num}, ...)
381 Esta es una variante de la función @code{submatrix} de Maxima.
382 El primer argumento es una matriz de datos, el segundo es una 
383 función de predicado y el resto de argumentos opcionales son
384 los números de las columnas a tomar en consideración.
386 Estos son los registros multivariantes en los que la velocidad del viento
387 en la primera estación meteorológica fue menor de 18 nudos. Véase 
388 cómo en la expresión lambda la @var{i}-ésima componente 
389 se la referencia como @code{v[i]}.
390 @c ===beg===
391 @c load ("descriptive")$
392 @c s2 : read_matrix (file_search ("wind.data"))$
393 @c subsample (s2, lambda([v], v[1] > 18));
394 @c ===end===
395 @example
396 (%i1) load ("descriptive")$
397 (%i2) s2 : read_matrix (file_search ("wind.data"))$
398 @group
399 (%i3) subsample (s2, lambda([v], v[1] > 18));
400               [ 19.38  15.37  15.12  23.09  25.25 ]
401               [                                   ]
402               [ 18.29  18.66  19.08  26.08  27.63 ]
403 (%o3)         [                                   ]
404               [ 20.25  21.46  19.95  27.71  23.38 ]
405               [                                   ]
406               [ 18.79  18.96  14.46  26.38  21.84 ]
407 @end group
408 @end example
410 En el siguiente ejemplo, se solicitan únicamente la primera, segunda y
411 quinta componentes de aquellos registros con velocidades del viento mayores
412 o iguales que 16 nudos en la estación número 1 y menores que 25 nudos
413 en la estación número 4. La muestra sólo contiene los datos referidos
414 a las estaciones 1, 2 y 5. En este caso, la función de predicado se
415 define por medio de una función de Maxima ordinaria.
416 @c ===beg===
417 @c load ("descriptive")$
418 @c s2 : read_matrix (file_search ("wind.data"))$
419 @c g(x):= x[1] >= 16 and x[4] < 25$
420 @c subsample (s2, g, 1, 2, 5);
421 @c ===end===
422 @example
423 (%i1) load ("descriptive")$
424 (%i2) s2 : read_matrix (file_search ("wind.data"))$
425 (%i3) g(x):= x[1] >= 16 and x[4] < 25$
426 @group
427 (%i4) subsample (s2, g, 1, 2, 5);
428                      [ 19.38  15.37  25.25 ]
429                      [                     ]
430                      [ 17.33  14.67  19.58 ]
431 (%o4)                [                     ]
432                      [ 16.92  13.21  21.21 ]
433                      [                     ]
434                      [ 17.25  18.46  23.87 ]
435 @end group
436 @end example
438 He aquí un ejemplo con las variables categóricas de @code{biomed.data}.
439 Se piden los registros correspondientes a aquellos pacientes del grupo @code{B} mayores de 38 anños,
440 @c ===beg===
441 @c load ("descriptive")$
442 @c s3 : read_matrix (file_search ("biomed.data"))$
443 @c h(u):= u[1] = B and u[2] > 38 $
444 @c subsample (s3, h);
445 @c ===end===
446 @example
447 (%i1) load ("descriptive")$
448 (%i2) s3 : read_matrix (file_search ("biomed.data"))$
449 (%i3) h(u):= u[1] = B and u[2] > 38 $
450 (%i4) subsample (s3, h);
451                 [ B  39  28.0  102.3  17.1  146 ]
452                 [                               ]
453                 [ B  39  21.0  92.4   10.3  197 ]
454                 [                               ]
455                 [ B  39  23.0  111.5  10.0  133 ]
456                 [                               ]
457                 [ B  39  26.0  92.6   12.3  196 ]
458 (%o4)           [                               ]
459                 [ B  39  25.0  98.7   10.0  174 ]
460                 [                               ]
461                 [ B  39  21.0  93.2   5.9   181 ]
462                 [                               ]
463                 [ B  39  18.0  95.0   11.3  66  ]
464                 [                               ]
465                 [ B  39  39.0  88.5   7.6   168 ]
466 @end example
468 Es probable que el análisis estadístico
469 requiera únicamente de las medidas sanguíneas.
470 @c ===beg===
471 @c load ("descriptive")$
472 @c s3 : read_matrix (file_search ("biomed.data"))$
473 @c subsample (s3, lambda([v], v[1] = B and v[2] > 38),
474 @c            3, 4, 5, 6);
475 @c ===end===
476 @example
477 (%i1) load ("descriptive")$
478 (%i2) s3 : read_matrix (file_search ("biomed.data"))$
479 (%i3) subsample (s3, lambda([v], v[1] = B and v[2] > 38),
480            3, 4, 5, 6);
481                    [ 28.0  102.3  17.1  146 ]
482                    [                        ]
483                    [ 21.0  92.4   10.3  197 ]
484                    [                        ]
485                    [ 23.0  111.5  10.0  133 ]
486                    [                        ]
487                    [ 26.0  92.6   12.3  196 ]
488 (%o3)              [                        ]
489                    [ 25.0  98.7   10.0  174 ]
490                    [                        ]
491                    [ 21.0  93.2   5.9   181 ]
492                    [                        ]
493                    [ 18.0  95.0   11.3  66  ]
494                    [                        ]
495                    [ 39.0  88.5   7.6   168 ]
496 @end example
498 Esta es la media multivariante de @code{s3}.
499 @c ===beg===
500 @c load ("descriptive")$
501 @c s3 : read_matrix (file_search ("biomed.data"))$
502 @c mean (s3);
503 @c ===end===
504 @example
505 (%i1) load ("descriptive")$
506 (%i2) s3 : read_matrix (file_search ("biomed.data"))$
507 @group
508 (%i3) mean (s3);
509        65 B + 35 A  317          6 NA + 8145.0
510 (%o3) [-----------, ---, 87.178, -------------, 18.123, 
511            100      10                100
512                                                     3 NA + 19587
513                                                     ------------]
514                                                         100
515 @end group
516 @end example
518 Aquí la primera componente carece de significado, ya que tanto @code{A} como @code{B} son categóricas, la segunda componente es la edad media de los individuos en forma racional, al tiempo que los valores cuarto y quinto muestran cierto comportamiento extraño; lo cual se debe a que el símbolo @code{NA} se utiliza para indicar datos @i{no disponibles}, por lo que ambas medias no tienen sentido. Una posible solución puede ser extraer de la matriz aquellas filas con símbolos @code{NA}, lo que acarrearía cierta pérdida de información.
519 @c ===beg===
520 @c load ("descriptive")$
521 @c s3 : read_matrix (file_search ("biomed.data"))$
522 @c g(v):= v[4] # NA and v[6] # NA $
523 @c mean (subsample (s3, g, 3, 4, 5, 6));
524 @c ===end===
525 @example
526 (%i1) load ("descriptive")$
527 (%i2) s3 : read_matrix (file_search ("biomed.data"))$
528 (%i3) g(v):= v[4] # NA and v[6] # NA $
529 @group
530 (%i4) mean (subsample (s3, g, 3, 4, 5, 6));
531 (%o4) [79.4923076923077, 86.2032967032967, 16.93186813186813, 
532                                                             2514
533                                                             ----]
534                                                              13
535 @end group
536 @end example
537 @end deffn
543 @deffn {Función} transform_sample (@var{matriz}, @var{varlist}, @var{exprlist})
545 Transforma la @var{matriz} de datos, en la que a cada columna se le asigna
546 un nombre de acuerdo con la lista @var{varlist}, según las expresiones de @var{exprlist}.
548 Ejemplos:
550 El segundo argumento asigna nombres a las tres columnas, con ellos la lista de expresiones
551 define la transformación de la muestra.
553 @example
554 (%i1) load ("descriptive")$
555 (%i2) data: matrix([3,2,7],[3,7,2],[8,2,4],[5,2,4]) $
556 @group
557 (%i3) transform_sample(data, [a,b,c], [c, a*b, log(a)]);
558                                [ 7  6   log(3) ]
559                                [               ]
560                                [ 2  21  log(3) ]
561 (%o3)                          [               ]
562                                [ 4  16  log(8) ]
563                                [               ]
564                                [ 4  10  log(5) ]
565 @end group
566 @end example
568 Añade una columna constante y elimina la tercera variable.
570 @example
571 (%i1) load ("descriptive")$
572 (%i2) data: matrix([3,2,7],[3,7,2],[8,2,4],[5,2,4]) $
573 (%i3) transform_sample(data, [a,b,c], [makelist(1,k,length(data)),a,b]);
574 @group
575                                   [ 1  3  2 ]
576                                   [         ]
577                                   [ 1  3  7 ]
578 (%o3)                             [         ]
579                                   [ 1  8  2 ]
580                                   [         ]
581                                   [ 1  5  2 ]
582 @end group
583 @end example
584 @end deffn
590 @node Funciones y variables de parámetros descriptivos, Funciones y variables para gráficos estadísticos, Funciones y variables para el tratamiento de datos, descriptive
591 @section Funciones y variables de parámetros descriptivos
594 @deffn {Función} mean (@var{list})
595 @deffnx {Función} mean (@var{matrix})
596 Es la media muestral, definida como
597 @ifnottex
598 @example
599                        n
600                      ====
601              _   1   \
602              x = -    >    x
603                  n   /      i
604                      ====
605                      i = 1
606 @end example
607 @end ifnottex
608 @tex
609 $${\bar{x}={1\over{n}}{\sum_{i=1}^{n}{x_{i}}}}$$
610 @end tex
613 Ejemplo:
615 @c ===beg===
616 @c load ("descriptive")$
617 @c s1 : read_list (file_search ("pidigits.data"))$
618 @c mean (s1);
619 @c %, numer;
620 @c s2 : read_matrix (file_search ("wind.data"))$
621 @c mean (s2);
622 @c ===end===
623 @example
624 (%i1) load ("descriptive")$
625 (%i2) s1 : read_list (file_search ("pidigits.data"))$
626 @group
627 (%i3) mean (s1);
628                                471
629 (%o3)                          ---
630                                100
631 @end group
632 @group
633 (%i4) %, numer;
634 (%o4)                         4.71
635 @end group
636 (%i5) s2 : read_matrix (file_search ("wind.data"))$
637 @group
638 (%i6) mean (s2);
639 (%o6)     [9.9485, 10.1607, 10.8685, 15.7166, 14.8441]
640 @end group
641 @end example
643 @end deffn
647 @deffn {Función} var (@var{list})
648 @deffnx {Función} var (@var{matrix})
649 Es la varianza muestral, definida como
650 @ifnottex
651 @example
652                      n
653                    ====
654            2   1   \          _ 2
655           s  = -    >    (x - x)
656                n   /       i
657                    ====
658                    i = 1
659 @end example
660 @end ifnottex
661 @tex
662 $${{1}\over{n}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^2}}$$
663 @end tex
666 Ejemplo:
668 @c ===beg===
669 @c load ("descriptive")$
670 @c s1 : read_list (file_search ("pidigits.data"))$
671 @c var (s1), numer;
672 @c ===end===
673 @example
674 (%i1) load ("descriptive")$
675 (%i2) s1 : read_list (file_search ("pidigits.data"))$
676 @group
677 (%i3) var (s1), numer;
678 (%o3)                   8.425899999999999
679 @end group
680 @end example
682 Véase también @code{var1}.
683 @end deffn
687 @deffn {Función} var1 (@var{list})
688 @deffnx {Función} var1 (@var{matrix})
689 Es la cuasivarianza muestral, definida como
690 @ifnottex
691 @example
692                      n
693                    ====
694                1   \          _ 2
695               ---   >    (x - x)
696               n-1  /       i
697                    ====
698                    i = 1
699 @end example
700 @end ifnottex
701 @tex
702 $${{1\over{n-1}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^2}}}$$
703 @end tex
706 Ejemplo:
708 @c ===beg===
709 @c load ("descriptive")$
710 @c s1 : read_list (file_search ("pidigits.data"))$
711 @c var1 (s1), numer;
712 @c s2 : read_matrix (file_search ("wind.data"))$
713 @c var1 (s2);
714 @c ===end===
715 @example
716 (%i1) load ("descriptive")$
717 (%i2) s1 : read_list (file_search ("pidigits.data"))$
718 @group
719 (%i3) var1 (s1), numer;
720 (%o3)                    8.5110101010101
721 @end group
722 (%i4) s2 : read_matrix (file_search ("wind.data"))$
723 @group
724 (%i5) var1 (s2);
725 (%o5) [17.39586540404041, 15.13912778787879, 15.63204924242424, 
726                             32.50152569696971, 24.66977392929294]
727 @end group
728 @end example
730 Véase también @code{var}.
731 @end deffn
735 @deffn {Función} std (@var{list})
736 @deffnx {Función} std (@var{matrix})
737 Es la desviación típica muestral, raíz cuadrada de @code{var}.
739 Ejemplo:
741 @c ===beg===
742 @c load ("descriptive")$
743 @c s1 : read_list (file_search ("pidigits.data"))$
744 @c std (s1), numer;
745 @c s2 : read_matrix (file_search ("wind.data"))$
746 @c std (s2);
747 @c ===end===
748 @example
749 (%i1) load ("descriptive")$
750 (%i2) s1 : read_list (file_search ("pidigits.data"))$
751 @group
752 (%i3) std (s1), numer;
753 (%o3)                   2.902740084816414
754 @end group
755 (%i4) s2 : read_matrix (file_search ("wind.data"))$
756 @group
757 (%i5) std (s2);
758 (%o5) [4.149928523480858, 3.871399812729241, 3.933920277534866, 
759                             5.672434260526957, 4.941970881136392]
760 @end group
761 @end example
763 Véanse también @code{var} y @code{std1}.
764 @end deffn
768 @deffn {Función} std1 (@var{list})
769 @deffnx {Función} std1 (@var{matrix})
770 Es la cuasidesviación típica muestral, raíz cuadrada de @code{var1}.
772 Ejemplo:
774 @c ===beg===
775 @c load ("descriptive")$
776 @c s1 : read_list (file_search ("pidigits.data"))$
777 @c std1 (s1), numer;
778 @c s2 : read_matrix (file_search ("wind.data"))$
779 @c std1 (s2);
780 @c ===end===
781 @example
782 (%i1) load ("descriptive")$
783 (%i2) s1 : read_list (file_search ("pidigits.data"))$
784 @group
785 (%i3) std1 (s1), numer;
786 (%o3)                   2.917363553109228
787 @end group
788 (%i4) s2 : read_matrix (file_search ("wind.data"))$
789 @group
790 (%i5) std1 (s2);
791 (%o5) [4.17083509672109, 3.89090320978032, 3.953738641137555, 
792                             5.701010936401517, 4.966867617451963]
793 @end group
794 @end example
796 Véanse también @code{var1} y @code{std}.
797 @end deffn
801 @deffn {Función} noncentral_moment (@var{list}, @var{k})
802 @deffnx {Función} noncentral_moment (@var{matrix}, @var{k})
803 Es el momento no central de orden @math{k}, definido como
804 @ifnottex
805 @example
806                        n
807                      ====
808                  1   \      k
809                  -    >    x
810                  n   /      i
811                      ====
812                      i = 1
813 @end example
814 @end ifnottex
815 @tex
816 $${{1\over{n}}{\sum_{i=1}^{n}{x_{i}^k}}}$$
817 @end tex
820 Ejemplo:
822 @c ===beg===
823 @c load ("descriptive")$
824 @c s1 : read_list (file_search ("pidigits.data"))$
825 @c noncentral_moment (s1, 1), numer; /* the mean */
826 @c s2 : read_matrix (file_search ("wind.data"))$
827 @c noncentral_moment (s2, 5);
828 @c ===end===
829 @example
830 (%i1) load ("descriptive")$
831 (%i2) s1 : read_list (file_search ("pidigits.data"))$
832 @group
833 (%i3) noncentral_moment (s1, 1), numer; /* the mean */
834 (%o3)                         4.71
835 @end group
836 @group
837 (%i5) s2 : read_matrix (file_search ("wind.data"))$
838 (%o5) [319793.8724761506, 320532.1923892463, 391249.5621381556, 
839                             2502278.205988911, 1691881.797742255]
840 @end group
841 (%i6) noncentral_moment (s2, 5);
842 @end example
844 Véase también @code{central_moment}.
845 @end deffn
849 @deffn {Función} central_moment (@var{list}, @var{k})
850 @deffnx {Función} central_moment (@var{matrix}, @var{k})
851 Es el momento central de orden @math{k}, definido como
852 @ifnottex
853 @example
854                     n
855                   ====
856               1   \          _ k
857               -    >    (x - x)
858               n   /       i
859                   ====
860                   i = 1
861 @end example
862 @end ifnottex
863 @tex
864 $${{1\over{n}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^k}}}$$
865 @end tex
868 Ejemplo:
870 @c ===beg===
871 @c load ("descriptive")$
872 @c s1 : read_list (file_search ("pidigits.data"))$
873 @c central_moment (s1, 2), numer; /* the variance */
874 @c s2 : read_matrix (file_search ("wind.data"))$
875 @c central_moment (s2, 3);
876 @c ===end===
877 @example
878 (%i1) load ("descriptive")$
879 (%i2) s1 : read_list (file_search ("pidigits.data"))$
880 @group
881 (%i3) central_moment (s1, 2), numer; /* the variance */
882 (%o3)                   8.425899999999999
883 @end group
884 @group
885 (%i5) s2 : read_matrix (file_search ("wind.data"))$
886 (%o5) [11.29584771375004, 16.97988248298583, 5.626661952750102, 
887                              37.5986572057918, 25.85981904394192]
888 @end group
889 (%i6) central_moment (s2, 3);
890 @end example
892 Véanse también @code{central_moment} y @code{mean}.
893 @end deffn
896 @deffn {Función} cv (@var{list})
897 @deffnx {Función} cv (@var{matrix})
898 Es el coeficiente de variación, o cociente entre la desviación típica muestral (@code{std}) y la media (@code{mean}),
900 @c ===beg===
901 @c load ("descriptive")$
902 @c s1 : read_list (file_search ("pidigits.data"))$
903 @c cv (s1), numer;
904 @c s2 : read_matrix (file_search ("wind.data"))$
905 @c cv (s2);
906 @c ===end===
907 @example
908 (%i1) load ("descriptive")$
909 (%i2) s1 : read_list (file_search ("pidigits.data"))$
910 @group
911 (%i3) cv (s1), numer;
912 (%o3)                   .6193977819764815
913 @end group
914 (%i4) s2 : read_matrix (file_search ("wind.data"))$
915 @group
916 (%i5) cv (s2);
917 (%o5) [.4192426091090204, .3829365309260502, 0.363779605385983, 
918                             .3627381836021478, .3346021393989506]
919 @end group
920 @end example
922 Véanse también @code{std} y @code{mean}.
923 @end deffn
927 @deffn {Función} smin (@var{list})
928 @deffnx {Función} smin (@var{matrix})
929 Es el valor mínimo de la muestra @var{list}.
930 Cuando el argumento es una matriz, @code{smin} devuelve
931 una lista con los valores mínimos de las
932 columnas, las cuales están asociadas a variables
933 estadísticas.
935 @c ===beg===
936 @c load ("descriptive")$
937 @c s1 : read_list (file_search ("pidigits.data"))$
938 @c smin (s1);
939 @c s2 : read_matrix (file_search ("wind.data"))$
940 @c smin (s2);
941 @c ===end===
942 @example
943 (%i1) load ("descriptive")$
944 (%i2) s1 : read_list (file_search ("pidigits.data"))$
945 @group
946 (%i3) smin (s1);
947 (%o3)                           0
948 @end group
949 (%i4) s2 : read_matrix (file_search ("wind.data"))$
950 @group
951 (%i5) smin (s2);
952 (%o5)             [0.58, 0.5, 2.67, 5.25, 5.17]
953 @end group
954 @end example
956 Véase también @code{smax}.
957 @end deffn
961 @deffn {Función} smax (@var{list})
962 @deffnx {Función} smax (@var{matrix})
963 Es el valor máximo de la muestra @var{list}.
964 Cuando el argumento es una matriz, @code{smax} devuelve
965 una lista con los valores máximos de las
966 columnas, las cuales están asociadas a variables
967 estadísticas.
969 @c ===beg===
970 @c load ("descriptive")$
971 @c s1 : read_list (file_search ("pidigits.data"))$
972 @c smax (s1);
973 @c s2 : read_matrix (file_search ("wind.data"))$
974 @c smax (s2);
975 @c ===end===
976 @example
977 (%i1) load ("descriptive")$
978 (%i2) s1 : read_list (file_search ("pidigits.data"))$
979 @group
980 (%i3) smax (s1);
981 (%o3)                           9
982 @end group
983 (%i4) s2 : read_matrix (file_search ("wind.data"))$
984 @group
985 (%i5) smax (s2);
986 (%o5)          [20.25, 21.46, 20.04, 29.63, 27.63]
987 @end group
988 @end example
990 Véase también @code{smin}.
991 @end deffn
995 @deffn {Función} range (@var{list})
996 @deffnx {Función} range (@var{matrix})
997 Es la diferencia entre los valores extremos.
999 Ejemplo:
1001 @c ===beg===
1002 @c load ("descriptive")$
1003 @c s1 : read_list (file_search ("pidigits.data"))$
1004 @c range (s1);
1005 @c s2 : read_matrix (file_search ("wind.data"))$
1006 @c range (s2);
1007 @c ===end===
1008 @example
1009 (%i1) load ("descriptive")$
1010 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1011 @group
1012 (%i3) range (s1);
1013 (%o3)                           9
1014 @end group
1015 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1016 @group
1017 (%i5) range (s2);
1018 (%o5)          [19.67, 20.96, 17.37, 24.38, 22.46]
1019 @end group
1020 @end example
1022 @end deffn
1026 @deffn {Función} quantile (@var{list}, @var{p})
1027 @deffnx {Función} quantile (@var{matrix}, @var{p})
1028 Es el @var{p}-cuantil, siendo @var{p} un número del intervalo @math{[0, 1]}, de la muestra @var{list}.
1029 Aunque existen varias definiciones para el cuantil muestral (Hyndman, R. J., Fan, Y. (1996) @var{Sample quantiles in statistical packages}. American Statistician, 50, 361-365), la programada en el paquete  @code{descriptive} es la basada en la interpolación lineal.
1031 Ejemplo:
1033 @c ===beg===
1034 @c load ("descriptive")$
1035 @c s1 : read_list (file_search ("pidigits.data"))$
1036 @c /* 1st and 3rd quartiles */ 
1037 @c          [quantile (s1, 1/4), quantile (s1, 3/4)], numer;
1038 @c s2 : read_matrix (file_search ("wind.data"))$
1039 @c quantile (s2, 1/4);
1040 @c ===end===
1041 @example
1042 (%i1) load ("descriptive")$
1043 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1044 @group
1045 (%i3) /* 1st and 3rd quartiles */
1046          [quantile (s1, 1/4), quantile (s1, 3/4)], numer;
1047 (%o3)                      [2.0, 7.25]
1048 @end group
1049 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1050 @group
1051 (%i5) quantile (s2, 1/4);
1052 (%o5)    [7.2575, 7.477500000000001, 7.82, 11.28, 11.48]
1053 @end group
1054 @end example
1056 @end deffn
1060 @deffn {Función} median (@var{list})
1061 @deffnx {Función} median (@var{matrix})
1062 Una vez ordenada una muestra, si el tamaño muestral es impar la mediana es el valor central, en caso contrario será la media de los dos valores centrales.
1064 Ejemplo:
1066 @c ===beg===
1067 @c load ("descriptive")$
1068 @c s1 : read_list (file_search ("pidigits.data"))$
1069 @c median (s1);
1070 @c s2 : read_matrix (file_search ("wind.data"))$
1071 @c median (s2);
1072 @c ===end===
1073 @example
1074 (%i1) load ("descriptive")$
1075 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1076 @group
1077 (%i3) median (s1);
1078                                 9
1079 (%o3)                           -
1080                                 2
1081 @end group
1082 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1083 @group
1084 (%i5) median (s2);
1085 (%o5)         [10.06, 9.855, 10.73, 15.48, 14.105]
1086 @end group
1087 @end example
1089 La mediana es el cuantil 1/2.
1091 Véase también @code{quantile}.
1092 @end deffn
1096 @deffn {Función} qrange (@var{list})
1097 @deffnx {Función} qrange (@var{matrix})
1098 El rango intercuartílico es la diferencia entre el tercer y primer cuartil,
1099 @code{quantile(@var{list},3/4) - quantile(@var{list},1/4)},
1101 @c ===beg===
1102 @c load ("descriptive")$
1103 @c s1 : read_list (file_search ("pidigits.data"))$
1104 @c qrange (s1);
1105 @c s2 : read_matrix (file_search ("wind.data"))$
1106 @c qrange (s2);
1107 @c ===end===
1108 @example
1109 (%i1) load ("descriptive")$
1110 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1111 @group
1112 (%i3) qrange (s1);
1113                                21
1114 (%o3)                          --
1115                                4
1116 @end group
1117 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1118 @group
1119 (%i5) qrange (s2);
1120 (%o5) [5.385, 5.572499999999998, 6.0225, 8.729999999999999, 
1121                                                6.650000000000002]
1122 @end group
1123 @end example
1125 Véase también @code{quantile}.
1126 @end deffn
1130 @deffn {Función} mean_deviation (@var{list})
1131 @deffnx {Función} mean_deviation (@var{matrix})
1132 Es la desviación media, definida como
1133 @ifnottex
1134 @example
1135                      n
1136                    ====
1137                1   \          _
1138                -    >    |x - x|
1139                n   /       i
1140                    ====
1141                    i = 1
1142 @end example
1143 @end ifnottex
1144 @tex
1145 $${{1\over{n}}{\sum_{i=1}^{n}{|x_{i}-\bar{x}|}}}$$
1146 @end tex
1149 Ejemplo:
1151 @c ===beg===
1152 @c load ("descriptive")$
1153 @c s1 : read_list (file_search ("pidigits.data"))$
1154 @c mean_deviation (s1);
1155 @c s2 : read_matrix (file_search ("wind.data"))$
1156 @c mean_deviation (s2);
1157 @c ===end===
1158 @example
1159 (%i1) load ("descriptive")$
1160 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1161 @group
1162 (%i3) mean_deviation (s1);
1163                                51
1164 (%o3)                          --
1165                                20
1166 @end group
1167 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1168 @group
1169 (%i5) mean_deviation (s2);
1170 (%o5) [3.287959999999999, 3.075342, 3.23907, 4.715664000000001, 
1171                                                4.028546000000002]
1172 @end group
1173 @end example
1175 Véase también @code{mean}.
1176 @end deffn
1180 @deffn {Función} median_deviation (@var{list})
1181 @deffnx {Función} median_deviation (@var{matrix})
1182 Es la desviación mediana, definida como
1183 @ifnottex
1184 @example
1185                  n
1186                ====
1187            1   \
1188            -    >    |x - med|
1189            n   /       i
1190                ====
1191                i = 1
1192 @end example
1193 @end ifnottex
1194 @tex
1195 $${{1\over{n}}{\sum_{i=1}^{n}{|x_{i}-med|}}}$$
1196 @end tex
1198 siendo @code{med} la mediana de @var{list}.
1200 Ejemplo:
1202 @c ===beg===
1203 @c load ("descriptive")$
1204 @c s1 : read_list (file_search ("pidigits.data"))$
1205 @c median_deviation (s1);
1206 @c s2 : read_matrix (file_search ("wind.data"))$
1207 @c median_deviation (s2);
1208 @c ===end===
1209 @example
1210 (%i1) load ("descriptive")$
1211 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1212 @group
1213 (%i3) median_deviation (s1);
1214                                 5
1215 (%o3)                           -
1216                                 2
1217 @end group
1218 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1219 @group
1220 (%i5) median_deviation (s2);
1221 (%o5)           [2.75, 2.755, 3.08, 4.315, 3.31]
1222 @end group
1223 @end example
1225 Véase también @code{mean}.
1226 @end deffn
1230 @deffn {Función} harmonic_mean (@var{list})
1231 @deffnx {Función} harmonic_mean (@var{matrix})
1232 Es la media armónica, definida como
1233 @ifnottex
1234 @example
1235                   n
1236                --------
1237                 n
1238                ====
1239                \     1
1240                 >    --
1241                /     x
1242                ====   i
1243                i = 1
1244 @end example
1245 @end ifnottex
1246 @tex
1247 $${{n}\over{\sum_{i=1}^{n}{{{1}\over{x_{i}}}}}}$$
1248 @end tex
1251 Ejemplo:
1253 @c ===beg===
1254 @c load ("descriptive")$
1255 @c y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
1256 @c harmonic_mean (y), numer;
1257 @c s2 : read_matrix (file_search ("wind.data"))$
1258 @c harmonic_mean (s2);
1259 @c ===end===
1260 @example
1261 (%i1) load ("descriptive")$
1262 (%i2) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
1263 @group
1264 (%i3) harmonic_mean (y), numer;
1265 (%o3)                   3.901858027632205
1266 @end group
1267 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1268 @group
1269 (%i5) harmonic_mean (s2);
1270 (%o5) [6.948015590052786, 7.391967752360356, 9.055658197151745, 
1271                             13.44199028193692, 13.01439145898509]
1272 @end group
1273 @end example
1275 Véanse también @code{mean} y @code{geometric_mean}.
1276 @end deffn
1280 @deffn {Función} geometric_mean (@var{list})
1281 @deffnx {Función} geometric_mean (@var{matrix})
1282 Es la media geométrica, definida como
1283 @ifnottex
1284 @example
1285                  /  n      \ 1/n
1286                  | /===\   |
1287                  |  ! !    |
1288                  |  ! !  x |
1289                  |  ! !   i|
1290                  | i = 1   |
1291                  \         /
1292 @end example
1293 @end ifnottex
1294 @tex
1295 $$\left(\prod_{i=1}^{n}{x_{i}}\right)^{{{1}\over{n}}}$$
1296 @end tex
1299 Ejemplo:
1301 @c ===beg===
1302 @c load ("descriptive")$
1303 @c y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
1304 @c geometric_mean (y), numer;
1305 @c s2 : read_matrix (file_search ("wind.data"))$
1306 @c geometric_mean (s2);
1307 @c ===end===
1308 @example
1309 (%i1) load ("descriptive")$
1310 (%i2) y : [5, 7, 2, 5, 9, 5, 6, 4, 9, 2, 4, 2, 5]$
1311 @group
1312 (%i3) geometric_mean (y), numer;
1313 (%o3)                   4.454845412337012
1314 @end group
1315 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1316 @group
1317 (%i5) geometric_mean (s2);
1318 (%o5) [8.82476274347979, 9.22652604739361, 10.0442675714889, 
1319                             14.61274126349021, 13.96184163444275]
1320 @end group
1321 @end example
1323 Véanse también @code{mean} y @code{harmonic_mean}.
1324 @end deffn
1328 @deffn {Función} kurtosis (@var{list})
1329 @deffnx {Función} kurtosis (@var{matrix})
1330 Es el coeficiente de curtosis, definido como
1331 @ifnottex
1332 @example
1333                     n
1334                   ====
1335             1     \          _ 4
1336            ----    >    (x - x)  - 3
1337               4   /       i
1338            n s    ====
1339                   i = 1
1340 @end example
1341 @end ifnottex
1342 @tex
1343 $${{1\over{n s^4}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^4}}-3}$$
1344 @end tex
1347 Ejemplo:
1349 @c ===beg===
1350 @c load ("descriptive")$
1351 @c s1 : read_list (file_search ("pidigits.data"))$
1352 @c kurtosis (s1), numer;
1353 @c s2 : read_matrix (file_search ("wind.data"))$
1354 @c kurtosis (s2);
1355 @c ===end===
1356 @example
1357 (%i1) load ("descriptive")$
1358 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1359 @group
1360 (%i3) kurtosis (s1), numer;
1361 (%o3)                  - 1.273247946514421
1362 @end group
1363 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1364 @group
1365 (%i5) kurtosis (s2);
1366 (%o5) [- .2715445622195385, 0.119998784429451, 
1367    - .4275233490482866, - .6405361979019522, - .4952382132352935]
1368 @end group
1369 @end example
1371 Véanse también @code{mean}, @code{var} y @code{skewness}.
1372 @end deffn
1376 @deffn {Función} skewness (@var{list})
1377 @deffnx {Función} skewness (@var{matrix})
1378 Es el coeficiente de asimetría, definido como
1379 @ifnottex
1380 @example
1381                     n
1382                   ====
1383             1     \          _ 3
1384            ----    >    (x - x)
1385               3   /       i
1386            n s    ====
1387                   i = 1
1388 @end example
1389 @end ifnottex
1390 @tex
1391 $${{1\over{n s^3}}{\sum_{i=1}^{n}{(x_{i}-\bar{x})^3}}}$$
1392 @end tex
1395 Ejemplo:
1397 @c ===beg===
1398 @c load ("descriptive")$
1399 @c s1 : read_list (file_search ("pidigits.data"))$
1400 @c skewness (s1), numer;
1401 @c s2 : read_matrix (file_search ("wind.data"))$
1402 @c skewness (s2);
1403 @c ===end===
1404 @example
1405 (%i1) load ("descriptive")$
1406 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1407 @group
1408 (%i3) skewness (s1), numer;
1409 (%o3)                  .009196180476450306
1410 @end group
1411 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1412 @group
1413 (%i5) skewness (s2);
1414 (%o5) [.1580509020000979, .2926379232061854, .09242174416107717, 
1415                             .2059984348148687, .2142520248890832]
1416 @end group
1417 @end example
1419 Véanse también @code{mean}, @code{var} y @code{kurtosis}.
1420 @end deffn
1424 @deffn {Función} pearson_skewness (@var{list})
1425 @deffnx {Función} pearson_skewness (@var{matrix})
1426 Es el coeficiente de asimetría de Pearson, definido como
1427 @ifnottex
1428 @example
1429                 _
1430              3 (x - med)
1431              -----------
1432                   s
1433 @end example
1434 @end ifnottex
1435 @tex
1436 $${{3\,\left(\bar{x}-med\right)}\over{s}}$$
1437 @end tex
1439 siendo @var{med} la mediana de @var{list}.
1441 Ejemplo:
1443 @c ===beg===
1444 @c load ("descriptive")$
1445 @c s1 : read_list (file_search ("pidigits.data"))$
1446 @c pearson_skewness (s1), numer;
1447 @c s2 : read_matrix (file_search ("wind.data"))$
1448 @c pearson_skewness (s2);
1449 @c ===end===
1450 @example
1451 (%i1) load ("descriptive")$
1452 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1453 @group
1454 (%i3) pearson_skewness (s1), numer;
1455 (%o3)                   .2159484029093895
1456 @end group
1457 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1458 @group
1459 (%i5) pearson_skewness (s2);
1460 (%o5) [- .08019976629211892, .2357036272952649, 
1461          .1050904062491204, .1245042340592368, .4464181795804519]
1462 @end group
1463 @end example
1465 Véanse también @code{mean}, @code{var} y @code{median}.
1466 @end deffn
1470 @deffn {Función} quartile_skewness (@var{list})
1471 @deffnx {Función} quartile_skewness (@var{matrix})
1472 Es el coeficiente de asimetría cuartílico, definido como
1473 @ifnottex
1474 @example
1475                c    - 2 c    + c
1476                 3/4      1/2    1/4
1477                --------------------
1478                    c    - c
1479                     3/4    1/4
1480 @end example
1481 @end ifnottex
1482 @tex
1483 $${{c_{{{3}\over{4}}}-2\,c_{{{1}\over{2}}}+c_{{{1}\over{4}}}}\over{c
1484  _{{{3}\over{4}}}-c_{{{1}\over{4}}}}}$$
1485 @end tex
1487 siendo @math{c_p} el @var{p}-cuantil de la muestra @var{list}.
1489 Ejemplo:
1491 @c ===beg===
1492 @c load ("descriptive")$
1493 @c s1 : read_list (file_search ("pidigits.data"))$
1494 @c quartile_skewness (s1), numer;
1495 @c s2 : read_matrix (file_search ("wind.data"))$
1496 @c quartile_skewness (s2);
1497 @c ===end===
1498 @example
1499 (%i1) load ("descriptive")$
1500 (%i2) s1 : read_list (file_search ("pidigits.data"))$
1501 @group
1502 (%i3) quartile_skewness (s1), numer;
1503 (%o3)                  .04761904761904762
1504 @end group
1505 (%i4) s2 : read_matrix (file_search ("wind.data"))$
1506 @group
1507 (%i5) quartile_skewness (s2);
1508 (%o5) [- 0.0408542246982353, .1467025572005382, 
1509        0.0336239103362392, .03780068728522298, 0.210526315789474]
1510 @end group
1511 @end example
1513 Véase también @code{quantile}.
1514 @end deffn
1518 @deffn {Función} km (@var{list}, @var{option} ...)
1519 @deffnx {Función} km (@var{matrix}, @var{option} ...)
1521 Estimador Kaplan-Meier de la función de supervivencia o fiabilidad @math{S(x)=1-F(x)}.
1523 Los datos se pueden introducir como una lista de pares de números o como una
1524 matriz de dos columnas. La primera componente es el tiempo observado y la 
1525 segunda componente es el índice de censura (1 = no censurado, 0 = censurado por
1526 la derecha).
1528 El argumento opcional es el nombre de la variable en la expresión devuelta, la cual
1529 es @var{x} por defecto.
1531 Ejemplos:
1533 Muestra como una lista de pares.
1535 @c ===beg===
1536 @c load ("descriptive")$
1537 @c S: km([[2,1], [3,1], [5,0], [8,1]]);
1538 @c load ("draw")$
1539 @c draw2d(
1540 @c   line_width = 3, grid = true,
1541 @c   explicit(S, x, -0.1, 10))$
1542 @c ===end===
1543 @example
1544 (%i1) load ("descriptive")$
1545 @group
1546 (%i2) S: km([[2,1], [3,1], [5,0], [8,1]]);
1547                        charfun((3 <= x) and (x < 8))
1548 (%o2) charfun(x < 0) + -----------------------------
1549                                      2
1550                 3 charfun((2 <= x) and (x < 3))
1551               + ------------------------------- 
1552                                4
1553               + charfun((0 <= x) and (x < 2))
1554 @end group
1555 (%i3) load ("draw")$
1556 @group
1557 (%i4) draw2d(
1558         line_width = 3, grid = true,
1559         explicit(S, x, -0.1, 10))$
1560 @end group
1561 @end example
1563 Estimación de probabilidades de supervivencia.
1565 @c ===beg===
1566 @c load ("descriptive")$
1567 @c S(t):= ''(km([[2,1], [3,1], [5,0], [8,1]], t)) $
1568 @c S(6);
1569 @c ===end===
1570 @example
1571 (%i1) load ("descriptive")$
1572 (%i2) S(t):= ''(km([[2,1], [3,1], [5,0], [8,1]], t)) $
1573 @group
1574 (%i3) S(6);
1575                             1
1576 (%o3)                       -
1577                             2
1578 @end group
1579 @end example
1581 @end deffn
1585 @deffn {Función} cdf_empirical (@var{list}, @var{option} ...)
1586 @deffnx {Función} cdf_empirical (@var{matrix}, @var{option} ...)
1588 Función de distribución empírica @math{F(x)}.
1590 Los datos se pueden introducir como una lista de números o como una matriz
1591 columna.
1593 El argumento opcional es el nombre de la variable en la expresión devuelta, la cual
1594 es @var{x} por defecto.
1596 Ejemplo:
1598 Función de distribución empírica.
1600 @c ===beg===
1601 @c load ("descriptive")$
1602 @c F(x):= ''(cdf_empirical([1,3,3,5,7,7,7,8,9]));
1603 @c F(6);
1604 @c load("draw")$
1605 @c draw2d(
1606 @c    line_width = 3,
1607 @c    grid       = true,
1608 @c    explicit(F(z), z, -2, 12)) $
1609 @c ===end===
1610 @example
1611 (%i1) load ("descriptive")$
1612 @group
1613 (%i2) F(x):= ''(cdf_empirical([1,3,3,5,7,7,7,8,9]));
1614 (%o2) F(x) := (charfun(x >= 9) + charfun(x >= 8)
1615                + 3 charfun(x >= 7) + charfun(x >= 5)
1616                + 2 charfun(x >= 3) + charfun(x >= 1))/9
1617 @end group
1618 @group
1619 (%i3) F(6);
1620                            4
1621 (%o3)                      -
1622                            9
1623 @end group
1624 (%i4) load("draw")$
1625 (%i5) draw2d(
1626         line_width = 3,
1627         grid       = true,
1628         explicit(F(z), z, -2, 12)) $
1629 @end example
1631 @end deffn
1635 @deffn {Función} cov (@var{matrix})
1636 Es la matriz de covarianzas de una muestra multivariante, definida como
1637 @ifnottex
1638 @example
1639               n
1640              ====
1641           1  \           _        _
1642       S = -   >    (X  - X) (X  - X)'
1643           n  /       j        j
1644              ====
1645              j = 1
1646 @end example
1647 @end ifnottex
1648 @tex
1649 $${S={1\over{n}}{\sum_{j=1}^{n}{\left(X_{j}-\bar{X}\right)\,\left(X_{j}-\bar{X}\right)'}}}$$
1650 @end tex
1652 siendo @math{X_j} la @math{j}-ésima fila de la matriz muestral.
1654 Ejemplo:
1656 @c ===beg===
1657 @c load ("descriptive")$
1658 @c s2 : read_matrix (file_search ("wind.data"))$
1659 @c fpprintprec : 7$  /* change precision for pretty output */
1660 @c cov (s2);
1661 @c ===end===
1662 @example
1663 (%i1) load ("descriptive")$
1664 (%i2) s2 : read_matrix (file_search ("wind.data"))$
1665 (%i3) fpprintprec : 7$  /* change precision for pretty output */
1666       [ 17.22191  13.61811  14.37217  19.39624  15.42162 ]
1667       [                                                  ]
1668       [ 13.61811  14.98774  13.30448  15.15834  14.9711  ]
1669       [                                                  ]
1670 (%o4) [ 14.37217  13.30448  15.47573  17.32544  16.18171 ]
1671       [                                                  ]
1672       [ 19.39624  15.15834  17.32544  32.17651  20.44685 ]
1673       [                                                  ]
1674       [ 15.42162  14.9711   16.18171  20.44685  24.42308 ]
1675 (%i5) cov (s2);
1676 @end example
1678 Véase también @code{cov1}.
1679 @end deffn
1683 @deffn {Función} cov1 (@var{matrix})
1684 Es la matriz de cuasivarianzas de una muestra multivariante, definida como
1685 @ifnottex
1686 @example
1687               n
1688              ====
1689          1   \           _        _
1690    S  = ---   >    (X  - X) (X  - X)'
1691     1   n-1  /       j        j
1692              ====
1693              j = 1
1694 @end example
1695 @end ifnottex
1696 @tex
1697 $${{1\over{n-1}}{\sum_{j=1}^{n}{\left(X_{j}-\bar{X}\right)\,\left(X_{j}-\bar{X}\right)'}}}$$
1698 @end tex
1700 siendo @math{X_j} la @math{j}-ésima fila de la matriz muestral.
1702 Ejemplo:
1704 @c ===beg===
1705 @c load ("descriptive")$
1706 @c s2 : read_matrix (file_search ("wind.data"))$
1707 @c fpprintprec : 7$ /* change precision for pretty output */
1708 @c cov1 (s2);
1709 @c ===end===
1710 @example
1711 (%i1) load ("descriptive")$
1712 (%i2) s2 : read_matrix (file_search ("wind.data"))$
1713 (%i3) fpprintprec : 7$ /* change precision for pretty output */
1714       [ 17.39587  13.75567  14.51734  19.59216  15.5774  ]
1715       [                                                  ]
1716       [ 13.75567  15.13913  13.43887  15.31145  15.12232 ]
1717       [                                                  ]
1718 (%o4) [ 14.51734  13.43887  15.63205  17.50044  16.34516 ]
1719       [                                                  ]
1720       [ 19.59216  15.31145  17.50044  32.50153  20.65338 ]
1721       [                                                  ]
1722       [ 15.5774   15.12232  16.34516  20.65338  24.66977 ]
1723 (%i5) cov1 (s2);
1724 @end example
1726 Véase también @code{cov}.
1727 @end deffn
1731 @deffn {Función} global_variances (@var{matrix})
1732 @deffnx {Función} global_variances (@var{matrix}, @var{options} ...)
1733 La función @code{global_variances} devuelve una lista de medidas globales de variabilidad:
1735 @itemize @bullet
1736 @item
1737 @var{varianza total}: @code{trace(S_1)},
1738 @item
1739 @var{varianza media}: @code{trace(S_1)/p},
1740 @item
1741 @var{varianza generalizada}: @code{determinant(S_1)},
1742 @item
1743 @var{desviación típica generalizada}: @code{sqrt(determinant(S_1))},
1744 @item
1745 @var{varianza efectiva} @code{determinant(S_1)^(1/p)}, (definida en: Peña, D. (2002) @var{Análisis de datos multivariantes}; McGraw-Hill, Madrid.)
1746 @item
1747 @var{desviación típica efectiva}: @code{determinant(S_1)^(1/(2*p))}.
1748 @end itemize
1749 donde @var{p} es la dimensión de la variable aleatoria multivariante y @math{S_1} la matriz de covarianzas devuelta por la función @code{cov1}.
1751 Opción:
1753 @itemize @bullet
1754 @item
1755 @code{'data}, por defecto @code{'true}, indica si la matriz de entrada contiene los datos muestrales,
1756 en cuyo caso la matriz de covarianzas @code{cov1} debe ser calculada; en caso contrario, se le debe
1757 pasar ésta a la función como matriz simétrica en lugar de los datos.
1758 @end itemize
1760 Ejemplo:
1762 @c ===beg===
1763 @c load ("descriptive")$
1764 @c s2 : read_matrix (file_search ("wind.data"))$
1765 @c global_variances (s2);
1766 @c ===end===
1767 @example
1768 (%i1) load ("descriptive")$
1769 (%i2) s2 : read_matrix (file_search ("wind.data"))$
1770 @group
1771 (%i3) global_variances (s2);
1772 (%o3) [105.338342060606, 21.06766841212119, 12874.34690469686, 
1773          113.4651792608502, 6.636590811800794, 2.576158149609762]
1774 @end group
1775 @end example
1777 Cálculo de @code{global_variances} a partir de la matriz de covarianzas.
1779 @c ===beg===
1780 @c load ("descriptive")$
1781 @c s2 : read_matrix (file_search ("wind.data"))$
1782 @c s : cov1 (s2)$
1783 @c global_variances (s, data=false);
1784 @c ===end===
1785 @example
1786 (%i1) load ("descriptive")$
1787 (%i2) s2 : read_matrix (file_search ("wind.data"))$
1788 (%i3) s : cov1 (s2)$
1789 @group
1790 (%i4) global_variances (s, data=false);
1791 (%o4) [105.338342060606, 21.06766841212119, 12874.34690469686, 
1792          113.4651792608502, 6.636590811800794, 2.576158149609762]
1793 @end group
1794 @end example
1796 Véanse también @code{cov} y @code{cov1}.
1797 @end deffn
1801 @deffn {Función} cor (@var{matrix})
1802 @deffnx {Función} cor (@var{matrix}, @var{options} ...)
1803 Es la matriz de correlaciones de la muestra multivariante.
1805 Opción:
1807 @itemize @bullet
1808 @item
1809 @code{'data}, por defecto @code{'true}, indica si la matriz de entrada contiene los datos muestrales,
1810 en cuyo caso la matriz de covarianzas @code{cov1} debe ser calculada; en caso contrario, se le debe
1811 pasar ésta a la función como matriz simétrica en lugar de los datos.
1812 @end itemize
1814 Ejemplo:
1816 @c ===beg===
1817 @c load ("descriptive")$
1818 @c fpprintprec:7$
1819 @c s2 : read_matrix (file_search ("wind.data"))$
1820 @c cor (s2);
1821 @c ===end===
1822 @example
1823 (%i1) load ("descriptive")$
1824 (%i2) fpprintprec:7$
1825 (%i3) s2 : read_matrix (file_search ("wind.data"))$
1826 (%i4) cor (s2);
1827       [   1.0     .8476339  .8803515  .8239624  .7519506 ]
1828       [                                                  ]
1829       [ .8476339    1.0     .8735834  .6902622  0.782502 ]
1830       [                                                  ]
1831 (%o4) [ .8803515  .8735834    1.0     .7764065  .8323358 ]
1832       [                                                  ]
1833       [ .8239624  .6902622  .7764065    1.0     .7293848 ]
1834       [                                                  ]
1835       [ .7519506  0.782502  .8323358  .7293848    1.0    ]
1836 @end example
1838 Cálculo de la matriz de correlaciones a partir de la matriz de covarianzas.
1840 @c ===beg===
1841 @c load ("descriptive")$
1842 @c fpprintprec : 7 $
1843 @c s2 : read_matrix (file_search ("wind.data"))$
1844 @c s : cov1 (s2)$
1845 @c cor (s, data=false); /* this is faster */
1846 @c ===end===
1847 @example
1848 (%i1) load ("descriptive")$
1849 (%i2) fpprintprec : 7 $
1850 (%i3) s2 : read_matrix (file_search ("wind.data"))$
1851 (%i4) s : cov1 (s2)$
1852 @group
1853 (%i5) cor (s, data=false); /* this is faster */
1854       [   1.0     .8476339  .8803515  .8239624  .7519506 ]
1855       [                                                  ]
1856       [ .8476339    1.0     .8735834  .6902622  0.782502 ]
1857       [                                                  ]
1858 (%o5) [ .8803515  .8735834    1.0     .7764065  .8323358 ]
1859       [                                                  ]
1860       [ .8239624  .6902622  .7764065    1.0     .7293848 ]
1861       [                                                  ]
1862       [ .7519506  0.782502  .8323358  .7293848    1.0    ]
1863 @end group
1864 @end example
1866 Véanse también @code{cov} y @code{cov1}.
1867 @end deffn
1871 @deffn {Función} list_correlations (@var{matrix})
1872 @deffnx {Función} list_correlations (@var{matrix}, @var{options} ...)
1873 La función @code{list_correlations} devuelve una lista con medidas de correlación:
1875 @itemize @bullet
1877 @item
1878 @var{matriz de precisión}: es la inversa de la matriz de covarianzas @math{S_1},
1879 @ifnottex
1880 @example
1881        -1     ij
1882       S   = (s  )             
1883        1         i,j = 1,2,...,p
1884 @end example
1885 @end ifnottex
1886 @tex
1887 $${S_{1}^{-1}}={\left(s^{ij}\right)_{i,j=1,2,\ldots, p}}$$
1888 @end tex
1890 @item
1891 @var{multiple correlation vector}:  @math{(R_1^2, R_2^2, ..., R_p^2)}, with 
1892 @ifnottex
1893 @example
1894        2          1
1895       R  = 1 - -------
1896        i        ii
1897                s   s
1898                     ii
1899 @end example
1900 @end ifnottex
1901 @tex
1902 $${R_{i}^{2}}={1-{{1}\over{s^{ii}s_{ii}}}}$$
1903 @end tex
1904 es un indicador de la bondad de ajuste del modelo de regresión lineal multivariante de @math{X_i} cuando el resto de variables se utilizan como regresores.
1906 @item
1907 @var{matriz de correlaciones parciales}: en la que el elemento @math{(i, j)} es
1908 @ifnottex
1909 @example
1910                          ij
1911                         s
1912       r        = - ------------
1913        ij.rest     / ii  jj\ 1/2
1914                    |s   s  |
1915                    \       /
1916 @end example
1917 @end ifnottex
1918 @tex
1919 $${r_{ij.rest}}={-{{s^{ij}}\over \sqrt{s^{ii}s^{jj}}}}$$
1920 @end tex
1921 @end itemize
1923 Opción:
1925 @itemize @bullet
1926 @item
1927 @code{'data}, por defecto @code{'true}, indica si la matriz de entrada contiene los datos muestrales,
1928 en cuyo caso la matriz de covarianzas @code{cov1} debe ser calculada; en caso contrario, se le debe
1929 pasar ésta a la función como matriz simétrica en lugar de los datos.
1930 @end itemize
1932 Ejemplo:
1934 @c ===beg===
1935 @c load ("descriptive")$
1936 @c s2 : read_matrix (file_search ("wind.data"))$
1937 @c z : list_correlations (s2)$
1938 @c fpprintprec : 5$ /* for pretty output */
1939 @c z[1];  /* precision matrix */
1940 @c z[2];  /* multiple correlation vector */
1941 @c z[3];  /* partial correlation matrix */
1942 @c ===end===
1943 @example
1944 (%i1) load ("descriptive")$
1945 (%i2) s2 : read_matrix (file_search ("wind.data"))$
1946 (%i3) z : list_correlations (s2)$
1947 @group
1948 (%i4) fpprintprec : 5$ /* for pretty output */
1949       [  .38486   - .13856   - .15626   - .10239    .031179  ]
1950       [                                                      ]
1951       [ - .13856   .34107    - .15233    .038447   - .052842 ]
1952       [                                                      ]
1953 (%o5) [ - .15626  - .15233    .47296    - .024816  - .10054  ]
1954       [                                                      ]
1955       [ - .10239   .038447   - .024816   .10937    - .034033 ]
1956       [                                                      ]
1957       [ .031179   - .052842  - .10054   - .034033   .14834   ]
1958 (%o6)       [.85063, .80634, .86474, .71867, .72675]
1959        [  - 1.0     .38244   .36627   .49908   - .13049 ]
1960        [                                                ]
1961        [  .38244    - 1.0    .37927  - .19907   .23492  ]
1962        [                                                ]
1963 (%o7)  [  .36627    .37927   - 1.0    .10911    .37956  ]
1964        [                                                ]
1965        [  .49908   - .19907  .10911   - 1.0     .26719  ]
1966        [                                                ]
1967        [ - .13049   .23492   .37956   .26719    - 1.0   ]
1968 @end group
1969 @end example
1971 Véanse también @code{cov} y @code{cov1}.
1972 @end deffn
1976 @deffn {Función} principal_components (@var{matrix})
1977 @deffnx {Función} principal_components (@var{matrix}, @var{options} ...)
1978 Calcula las componentes principales de una muestra multivariante. Las componentes
1979 principales se utilizan en el análisis estadístico multivariante
1980 para reducir la dimensionalidad de la muestra.
1982 Opción:
1984 @itemize @bullet
1985 @item
1986 @code{'data}, por defecto @code{'true}, indica si la matriz de entrada contiene los datos muestrales,
1987 en cuyo caso la matriz de covarianzas @code{cov1} debe ser calculada; en caso contrario, se le debe
1988 pasar ésta a la función como matriz simétrica en lugar de los datos.
1989 @end itemize
1991 La salida de la función @code{principal_components} es una lista con los siguientes resultados:
1993 @itemize @bullet
1994 @item
1995 varianzas de las componentes principales,
1996 @item
1997 porcentajes de variación total explicada por cada componente principal,
1998 @item
1999 matriz de rotación.
2000 @end itemize
2002 Ejemplos:
2004 En este ejemplo, la primera componente explica el 83.13 por ciento de la varianza total.
2006 @example
2007 (%i1) load ("descriptive")$
2008 (%i2) s2 : read_matrix (file_search ("wind.data"))$
2009 (%i3) fpprintprec:4 $
2010 (%i4) res: principal_components(s2);
2011 0 errors, 0 warnings
2012 (%o4) [[87.57, 8.753, 5.515, 1.889, 1.613], 
2013 [83.13, 8.31, 5.235, 1.793, 1.531], 
2014 @group
2015 [ .4149  .03379   - .4757  - 0.581   - .5126 ]
2016 [                                            ]
2017 [ 0.369  - .3657  - .4298   .7237    - .1469 ]
2018 [                                            ]
2019 [ .3959  - .2178  - .2181  - .2749    .8201  ]]
2020 [                                            ]
2021 [ .5548   .7744    .1857    .2319    .06498  ]
2022 [                                            ]
2023 [ .4765  - .4669   0.712   - .09605  - .1969 ]
2024 @end group
2025 (%i5) /* porcentajes acumulados  */
2026     block([ap: copy(res[2])],
2027       for k:2 thru length(ap) do ap[k]: ap[k]+ap[k-1],
2028       ap);
2029 (%o5)                 [83.13, 91.44, 96.68, 98.47, 100.0]
2030 (%i6) /* dimension de la muestra */
2031       p: length(first(res));
2032 (%o6)                                  5
2033 (%i7) /* dibuja porcentajes para seleccionar el numero de 
2034          componentes principales para el analisis ulterior */
2035      draw2d(
2036         fill_density = 0.2,
2037         apply(bars, makelist([k, res[2][k], 1/2], k, p)),
2038         points_joined = true,
2039         point_type    = filled_circle,
2040         point_size    = 3,
2041         points(makelist([k, res[2][k]], k, p)),
2042         xlabel = "Variances",
2043         ylabel = "Percentages",
2044         xtics  = setify(makelist([concat("PC",k),k], k, p))) $
2045 @end example
2047 En caso de que la matriz de covarianzas sea conocida, se le puede pasar
2048 a la función, pero debe utilizarse la opción @code{data=false}.
2050 @example
2051 (%i1) load ("descriptive")$
2052 (%i2) S: matrix([1,-2,0],[-2,5,0],[0,0,2]);
2053                                 [  1   - 2  0 ]
2054                                 [             ]
2055 (%o2)                           [ - 2   5   0 ]
2056                                 [             ]
2057                                 [  0    0   2 ]
2058 (%i3) fpprintprec:4 $
2059 (%i4) /* el argumento es una matriz de covarianzas */
2060       res: principal_components(S, data=false);
2061 0 errors, 0 warnings
2062                                                   [ - .3827  0.0  .9239 ]
2063                                                   [                     ]
2064 (%o4) [[5.828, 2.0, .1716], [72.86, 25.0, 2.145], [  .9239   0.0  .3827 ]]
2065                                                   [                     ]
2066                                                   [   0.0    1.0   0.0  ]
2067 (%i5) /* transformacion para obtener las componentes principales a
2068          partir de los registros originales */
2069       matrix([a1,b2,c3],[a2,b2,c2]).last(res);
2070              [ .9239 b2 - .3827 a1  1.0 c3  .3827 b2 + .9239 a1 ]
2071 (%o5)        [                                                  ]
2072              [ .9239 b2 - .3827 a2  1.0 c2  .3827 b2 + .9239 a2 ]
2073 @end example
2075 @end deffn
2081 @node Funciones y variables para gráficos estadísticos,  , Funciones y variables de parámetros descriptivos, descriptive
2082 @section Funciones y variables para gráficos estadísticos
2085 @deffn {Función} barsplot (@var{data1}, @var{data2}, @dots{}, @var{option_1}, @var{option_2}, @dots{})
2086 @deffnx {Función} barsplot_description (@dots{})
2088 Dibuja diagramas de barras para variables estadísticas
2089 discretas, tanto para una como para más muestras.
2091 @var{data} puede ser una lista de resultados provenientes de una muestra
2092 o una matriz de @var{m} filas y @var{n} columnas, representando @var{n} 
2093 muestras de tamaño @var{m} cada una.
2095 Las opciones disponibles son:
2097 @itemize @bullet
2099 @var{box_width} (valor por defecto, @code{3/4}): ancho relativo de los rectángulos. Este 
2100 valor debe pertenecer al rango @code{[0,1]}.
2102 @item
2103 @var{grouping} (valor por defecto, @code{clustered}): indica cómo se agrupan las 
2104 diferentes muestras. Son valores válidos: @code{clustered} y @code{stacked}.
2106 @item
2107 @var{groups_gap} (valor por defecto, @code{1}): un número positivo que representa
2108 la separación entre dos grupos consecutivos de barras.
2110 @item
2111 @var{bars_colors} (valor por defecto, @code{[]}): una lista de colores para múltiples 
2112 muestras. Cuando el número de muestras sea mayor que el de colores especificados, 
2113 los colores adicionales necesarios se seleccionan aleatoriamente. Véase @code{color} para más
2114 información.
2116 @item
2117 @var{frequency} (valor por defecto, @code{absolute}): indica la escala de las ordenadas.
2118 Valores admitidos son:  @code{absolute}, @code{relative} y and @code{percent}.
2120 @item
2121 @var{ordering} (valor por defecto, @code{orderlessp}): los valores admitidos para esta 
2122 opción son: @code{orderlessp} y @code{ordergreatp}, indicando cómo se deben ordenar
2123 los resultados muestrales sobre el eje-@var{x}.
2125 @item
2126 @var{sample_keys} (valor por defecto, @code{[]}): es una lista de cadenas de 
2127 texto a usar como leyendas. Cuando la lista tenga una longitud diferente de cero o 
2128 del número de muestras, se devolverá un mensaje de error.
2130 @item
2131 @var{start_at} (valor por defecto, @code{0}): indica a qué altura comienza 
2132 a dibujarse el gráfico de barra sobre el eje de abscisas.
2134 @item
2135 Todas las opciones globales de @code{draw}, excepto @code{xtics}, que se asigna
2136 internamente por @code{barsplot}. Si es necesario que el usuario le dé su propio
2137 valor a esta opción, o quiere construir una escena más compleja,
2138 debe hacer uso de @code{barsplot_description}. Véase el ejemplo más abajo.
2140 @item
2141 Las siguientes opciones locales de @code{draw}: @code{key}, @code{color}, 
2142 @code{fill_color}, @code{fill_density} y @code{line_width}. Véase también
2143 @code{bars}.
2145 @end itemize
2147 La función @code{barsplot_description} crea un objeto gráfico
2148 útil para formar escenas complejas, junto con otros objetos gráficos.
2149 Se dispone también de la función @code{wxbarsplot} para crear
2150 histogramas incorporados en los interfaces wxMaxima y iMaxima.
2152 Ejemplos:
2154 Muestra univariante en formato matricial. Frecuencias absolutas.
2156 @c ===beg===
2157 @c load ("descriptive")$
2158 @c m : read_matrix (file_search ("biomed.data"))$
2159 @c barsplot(
2160 @c   col(m,2),
2161 @c   title        = "Ages",
2162 @c   xlabel       = "years",
2163 @c   box_width    = 1/2,
2164 @c   fill_density = 3/4)$
2165 @c ===end===
2166 @example
2167 (%i1) load ("descriptive")$
2168 (%i2) m : read_matrix (file_search ("biomed.data"))$
2169 @group
2170 (%i3) barsplot(
2171         col(m,2),
2172         title        = "Ages",
2173         xlabel       = "years",
2174         box_width    = 1/2,
2175         fill_density = 3/4)$
2176 @end group
2177 @end example
2179 Dos muestras de diferente tamaño, con frecuencias
2180 relativas y colores definidos por el usuario.
2182 @c ===beg===
2183 @c load ("descriptive")$
2184 @c l1:makelist(random(10),k,1,50)$
2185 @c l2:makelist(random(10),k,1,100)$
2186 @c barsplot(
2187 @c    l1,l2,
2188 @c    box_width = 1,
2189 @c    fill_density = 1,
2190 @c    bars_colors = [black, grey],
2191 @c    frequency = relative,
2192 @c    sample_keys = ["A", "B"])$
2193 @c ===end===
2194 @example
2195 (%i1) load ("descriptive")$
2196 (%i2) l1:makelist(random(10),k,1,50)$
2197 (%i3) l2:makelist(random(10),k,1,100)$
2198 @group
2199 (%i4) barsplot(
2200         l1,l2,
2201         box_width    = 1,
2202         fill_density = 1,
2203         bars_colors  = [black, grey],
2204         frequency = relative,
2205         sample_keys = ["A", "B"])$
2206 @end group
2207 @end example
2209 Cuatro muestras no numéricas de igual tamaño.
2211 @c ===beg===
2212 @c load ("descriptive")$
2213 @c barsplot(
2214 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2215 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2216 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2217 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2218 @c   title      = "Asking for something to four groups",
2219 @c   ylabel     = "# of individuals",
2220 @c   groups_gap = 3,
2221 @c   fill_density = 0.5,
2222 @c   ordering = ordergreatp)$
2223 @c ===end===
2224 @example
2225 (%i1) load ("descriptive")$
2226 @group
2227 (%i2) barsplot(
2228         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2229         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2230         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2231         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2232         title  = "Asking for something to four groups",
2233         ylabel = "# of individuals",
2234         groups_gap   = 3,
2235         fill_density = 0.5,
2236         ordering     = ordergreatp)$
2237 @end group
2238 @end example
2240 Barras apiladas verticalmente.
2242 @c ===beg===
2243 @c load ("descriptive")$
2244 @c barsplot(
2245 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2246 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2247 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2248 @c   makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2249 @c   title      = "Asking for something to four groups",
2250 @c   ylabel     = "# of individuals",
2251 @c   grouping   = stacked,
2252 @c   fill_density = 0.5,
2253 @c   ordering = ordergreatp)$
2254 @c ===end===
2255 @example
2256 (%i1) load ("descriptive")$
2257 @group
2258 (%i2) barsplot(
2259         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2260         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2261         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2262         makelist([Yes, No, Maybe][random(3)+1],k,1,50),
2263         title  = "Asking for something to four groups",
2264         ylabel = "# of individuals",
2265         grouping     = stacked,
2266         fill_density = 0.5,
2267         ordering     = ordergreatp)$
2268 @end group
2269 @end example
2271 @code{barsplot} en un contexto multiplot.
2273 @example
2274 (%i1) load ("descriptive")$
2275 (%i2) l1:makelist(random(10),k,1,50)$
2276 (%i3) l2:makelist(random(10),k,1,100)$
2277 (%i4) bp1 : 
2278         barsplot_description(
2279          l1,
2280          box_width = 1,
2281          fill_density = 0.5,
2282          bars_colors = [blue],
2283          frequency = relative)$
2284 (%i5) bp2 : 
2285         barsplot_description(
2286          l2,
2287          box_width = 1,
2288          fill_density = 0.5,
2289          bars_colors = [red],
2290          frequency = relative)$
2291 (%i6) draw(gr2d(bp1), gr2d(bp2))$
2292 @end example
2294 Para las opciones relacionadas con los diagramas de barras, véase @code{bars}
2295 del paquete @code{draw}.
2297 Véanse también las funciones @code{histogram} y @code{piechart}.
2298 @end deffn
2302 @deffn {Función} boxplot (@var{data})
2303 @deffnx {Función} boxplot (@var{data}, @var{option_1}, @var{option_2}, @dots{})
2304 @deffnx {Función} boxplot_description (@dots{})
2306 Dibuja diagramas de cajas (box-and-whishker). El argumento @var{data} puede
2307 ser una lista, lo cual no es de gran interés, puesto que estos gráficos 
2308 se utilizan principalmente para comparar distintas muestras, o una matriz,
2309 de manera que sea posible comparar dos o más componentes de una muestra
2310 multivariante. También se permite que @var{data} sea una lista de muestras
2311 con posibles tamaños diferentes; de hecho, esta es la única función
2312 del paquete @code{descriptive} que admite esta estructura de datos.
2314 La caja se dibuja desde el primer cuartil hasta el tercero, con un segmento
2315 horizontal situado a la altura del segundo cuartil o mediana. Por defecto,
2316 los bigotes inferior y superior se sitúan a la altura de los valores mínimo
2317 y máximo, respectivamente. La opción @var{range} se puede utilizar para indicar
2318 que los valores mayores que
2319 @code{quantile(x,3/4)+range*(quantile(x,3/4)-quantile(x,1/4))},
2320 o menores que
2321 @code{quantile(x,1/4)-range*(quantile(x,3/4)-quantile(x,1/4))},
2322 deben considerarse atípicos, en cuyo caso se dibujan como puntos aislados, al
2323 tiempo que los bigotes se colocan en los extremos del resto de la muestra.
2325 Opciones disponibles:
2327 @itemize @bullet
2329 @item
2330 @var{box_width} (valor por defecto, @code{3/4}): ancho relativo de las cajas.
2331 This  value must be in the range @code{[0,1]}.
2333 @item
2334 @var{box_orientation} (valor por defecto, @code{vertical}): valores posibles: @code{vertical}
2335 y @code{horizontal}.
2337 @item
2338 @var{range} (valor por defecto, @code{inf}): coeficiente positivo del rango intercuartílico para
2339 declarar los límites de los datos atípicos.
2341 @item
2342 @var{outliers_size} (valor por defecto, @code{1}): tamaño de los círculos para los datos atípicos.
2344 @item
2345 Todas las opciones globales de @code{draw}, excepto @code{points_joined}, 
2346 @code{point_size}, @code{point_type}, @code{xtics}, @code{ytics}, @code{xrange}
2347 y @code{yrange}, que se asignan internamente por @code{boxplot}. Si es necesario 
2348 que el usuario le dé sus propios valores a estas opciones, o quiere construir 
2349 una escena más compleja, debe hacer uso de @code{boxplot_description}.
2351 @item
2352 Las siguientes opciones locales de @code{draw}: @code{key}, @code{color}, 
2353 y @code{line_width}.
2355 @end itemize
2357 La función @code{boxplot_description} crea un objeto gráfico
2358 útil para formar escenas complejas, junto con otros objetos gráficos.
2359 Se dispone también de la función @code{wxboxplot} para crear
2360 histogramas incorporados en los interfaces wxMaxima y iMaxima.
2362 Ejemplos:
2364 Diagrama de cajas de una muestra multivariante.
2366 @c ===beg===
2367 @c load ("descriptive")$
2368 @c s2 : read_matrix(file_search("wind.data"))$
2369 @c boxplot(s2,
2370 @c   box_width  = 0.2,
2371 @c   title      = "Windspeed in knots",
2372 @c   xlabel     = "Stations",
2373 @c   color      = red,
2374 @c   line_width = 2)$
2375 @c ===end===
2376 @example
2377 (%i1) load ("descriptive")$
2378 (%i2) s2 : read_matrix(file_search("wind.data"))$
2379 @group
2380 (%i3) boxplot(s2,
2381         box_width  = 0.2,
2382         title      = "Windspeed in knots",
2383         xlabel     = "Stations",
2384         color      = red,
2385         line_width = 2)$
2386 @end group
2387 @end example
2389 Diagrama de cajas de tres muestras de tamaños diferentes.
2391 @c ===beg===
2392 @c load ("descriptive")$
2393 @c A :
2394 @c  [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
2395 @c   [8, 10, 7, 9, 12, 8, 10],
2396 @c   [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
2397 @c boxplot (A, box_orientation = horizontal)$
2398 @c ===end===
2399 @example
2400 (%i1) load ("descriptive")$
2401 @group
2402 (%i2) A :
2403        [[6, 4, 6, 2, 4, 8, 6, 4, 6, 4, 3, 2],
2404         [8, 10, 7, 9, 12, 8, 10],
2405         [16, 13, 17, 12, 11, 18, 13, 18, 14, 12]]$
2406 @end group
2407 (%i3) boxplot (A, box_orientation = horizontal)$
2408 @end example
2410 La opción @var{range} puede utilizarse para tratar con datos atípicos.
2412 @c ===beg===
2413 @c  load ("descriptive")$
2414 @c  B: [[7, 15, 5, 8, 6, 5, 7, 3, 1],
2415 @c      [10, 8, 12, 8, 11, 9, 20],
2416 @c      [23, 17, 19, 7, 22, 19]] $
2417 @c  boxplot (B, range=1)$
2418 @c  boxplot (B, range=1.5, box_orientation = horizontal)$
2419 @c  draw2d(
2420 @c     boxplot_description(
2421 @c        B,
2422 @c        range            = 1.5,
2423 @c        line_width       = 3,
2424 @c        outliers_size    = 2,
2425 @c        color            = red,
2426 @c        background_color = light_gray),
2427 @c     xtics = {["Low",1],["Medium",2],["High",3]}) $
2428 @c ===end===
2430 @example
2431 (%i1) load ("descriptive")$
2432 (%i2) B: [[7, 15, 5, 8, 6, 5, 7, 3, 1],
2433           [10, 8, 12, 8, 11, 9, 20],
2434           [23, 17, 19, 7, 22, 19]] $
2435 @group
2436 (%i3) boxplot (B, range=1)$
2437 (%i4) boxplot (B, range=1.5, box_orientation = horizontal)$
2438 @end group
2439 @group
2440 (%i5) draw2d(
2441         boxplot_description(
2442           B,
2443           range            = 1.5,
2444           line_width       = 3,
2445           outliers_size    = 2,
2446           color            = red,
2447           background_color = light_gray),
2448         xtics = @{["Low",1],["Medium",2],["High",3]@}) $
2449 @end group
2450 @end example
2452 @end deffn
2456 @deffn {Función} histogram (@var{list})
2457 @deffnx {Función} histogram (@var{list}, @var{option_1}, @var{option_2}, @dots{})
2458 @deffnx {Función} histogram (@var{one_column_matrix})
2459 @deffnx {Función} histogram (@var{one_column_matrix}, @var{option_1}, @var{option_2}, @dots{})
2460 @deffnx {Función} histogram (@var{one_row_matrix})
2461 @deffnx {Función} histogram (@var{one_row_matrix}, @var{option_1}, @var{option_2}, @dots{})
2462 @deffnx {Función} histogram_description (@dots{})
2464 Dibuja un histograma a partir de una muestra continua. Los datos
2465 muestrales deben darse en forma de lista de números o como una
2466 matriz unidimensional.
2468 Opciones dispponibles:
2470 @itemize @bullet
2472 @item
2473 @var{nclasses} (valor por defecto, @code{10}): número de clases del histograma, o
2474 una lista indicando los límites de las clases y su número,
2475 o solamente los límites.
2477 @item
2478 @var{frequency} (valor por defecto, @code{absolute}): indica la escala de las ordenadas.
2479 Valores admitidos son:  @code{absolute}, @code{relative}, @code{percent} y @code{density}.
2480 Con @code{density}, el histograma adquiere un área total igual a uno.
2482 @item
2483 @var{htics} (valor por defecto, @code{auto}): formato para las marcas sobre el
2484 eje de las abscisas. Valores admitidos son: @code{auto}, @code{endpoints}, 
2485 @code{intervals} o una lista de etiquetas. 
2487 @item
2488 Todas las opciones globales de @code{draw}, excepto @code{xrange}, @code{yrange}
2489 y @code{xtics}, que son asignadas internamente por @code{histogram}.
2490 Si es necesario que el usuario le dé sus propios valores a estas opciones,
2491 debe hacer uso de @code{histogram_description}. Véase el ejemplo más abajo.
2493 @item
2494 Las siguientes opciones locales de @code{draw}: @code{key}, @code{color}, 
2495 @code{fill_color}, @code{fill_density} y @code{line_width}. Véase también
2496 @code{bars}.
2498 @end itemize
2500 La función @code{histogram_description} crea un objeto gráfico
2501 útil para formar escenas complejas, junto con otros objetos gráficos.
2502 Se dispone también de la función @code{wxhistogram} para crear
2503 histogramas incorporados en los interfaces wxMaxima y iMaxima.
2505 Ejemplos:
2507 Un histograma con seis clases:
2509 @c ===beg===
2510 @c load ("descriptive")$
2511 @c s1 : read_list (file_search ("pidigits.data"))$
2512 @c histogram (
2513 @c      s1,
2514 @c      nclasses     = 8,
2515 @c      title        = "pi digits",
2516 @c      xlabel       = "digits",
2517 @c      ylabel       = "Absolute frequency",
2518 @c      fill_color   = grey,
2519 @c      fill_density = 0.6)$
2520 @c ===end===
2521 @example
2522 (%i1) load ("descriptive")$
2523 (%i2) s1 : read_list (file_search ("pidigits.data"))$
2524 (%i3) histogram (
2525            s1,
2526            nclasses     = 8,
2527            title        = "pi digits",
2528            xlabel       = "digits",
2529            ylabel       = "Absolute frequency",
2530            fill_color   = grey,
2531            fill_density = 0.6)$
2532 @end example
2534 Ajustando los límites del histograma a -2 y 12,
2535 con 3 clases. También se establece un formato predefinido a
2536 las marcas del eje de abscisas:
2538 @example
2539 (%i1) load ("descriptive")$
2540 (%i2) s1 : read_list (file_search ("pidigits.data"))$
2541 (%i3) histogram (
2542            s1,
2543            nclasses     = [-2,12,3],
2544            htics        = ["A", "B", "C"],
2545            terminal     = png,
2546            fill_color   = "#23afa0",
2547            fill_density = 0.6)$
2548 @end example
2550 Se hace uso de @code{histogram_description} para ajustar
2551 la opción @code{xrange} y añadir una curva
2552 explícita a la escena:
2554 @example
2555 (%i1) load ("descriptive")$
2556 (%i2) ( load("distrib"),
2557         m: 14, s: 2,
2558         s2: random_normal(m, s, 1000) ) $
2559 (%i3) draw2d(
2560         grid   = true,
2561         xrange = [5, 25],
2562         histogram_description(
2563           s2,
2564           nclasses     = 9,
2565           frequency    = density,
2566           fill_density = 0.5),
2567         explicit(pdf_normal(x,m,s), x, m - 3*s, m + 3* s))$
2568 @end example
2570 @end deffn
2575 @deffn {Función} piechart (@var{list})
2576 @deffnx {Función} piechart (@var{list}, @var{option_1}, @var{option_2}, @dots{})
2577 @deffnx {Función} piechart (@var{one_column_matrix})
2578 @deffnx {Función} piechart (@var{one_column_matrix}, @var{option_1}, @var{option_2}, @dots{})
2579 @deffnx {Función} piechart (@var{one_row_matrix})
2580 @deffnx {Función} piechart (@var{one_row_matrix}, @var{option_1}, @var{option_2}, @dots{})
2581 @deffnx {Función} piechart_description (@dots{})
2583 Similar a @code{barsplot}, pero dibuja sectores en lugar de rectángulos.
2585 Opciones disponibles:
2588 @itemize @bullet
2590 @item
2591 @var{sector_colors} (valor por defecto, @code{[]}): una lista de colores para los
2592 sectores. Cuando el número de sectores sea mayor que el de colores especificados, 
2593 los colores adicionales necesarios se seleccionan aleatoriamente. Véase @code{color} para más
2594 información.
2596 @item
2597 @var{pie_center} (valor por defecto, @code{[0,0]}): centro del diagrama
2599 @item
2600 @var{pie_radius} (valor por defecto, @code{1}): radio del diagrama.
2602 @item
2603 Todas las opciones globales de @code{draw}, excepto @code{key}, que se asigna
2604 internamente por @code{piechart}. Si es necesario que el usuario le dé su propio
2605 valor a esta opción, o quiere construir una escena más compleja,
2606 debe hacer uso de @code{piechart_description}.
2608 @item
2609 Las siguientes opciones locales de @code{draw}: @code{key}, @code{color}, 
2610 @code{fill_density} y @code{line_width}. Véase también
2611 @code{bars}.
2613 @end itemize
2615 La función @code{piechart_description} crea un objeto gráfico
2616 útil para formar escenas complejas, junto con otros objetos gráficos.
2617 Se dispone también de la función @code{wxpiechart} para crear
2618 histogramas incorporados en los interfaces wxMaxima y iMaxima.
2620 Ejemplo:
2622 @c ===beg===
2623 @c load ("descriptive")$
2624 @c s1 : read_list (file_search ("pidigits.data"))$
2625 @c piechart(
2626 @c   s1,
2627 @c   xrange = [-1.1, 1.3],
2628 @c   yrange = [-1.1, 1.1],
2629 @c   title  = "Digit frequencies in pi")$
2630 @c ===end===
2631 @example
2632 (%i1) load ("descriptive")$
2633 (%i2) s1 : read_list (file_search ("pidigits.data"))$
2634 (%i3) piechart(
2635         s1,
2636         xrange  = [-1.1, 1.3],
2637         yrange  = [-1.1, 1.1],
2638         title   = "Digit frequencies in pi")$
2639 @end example
2641 Véase también la función @code{barsplot}.
2642 @end deffn
2646 @deffn {Función} scatterplot (@var{list})
2647 @deffnx {Función} scatterplot (@var{list}, @var{option_1}, @var{option_2}, @dots{})
2648 @deffnx {Función} scatterplot (@var{matrix})
2649 @deffnx {Función} scatterplot (@var{matrix}, @var{option_1}, @var{option_2}, @dots{})
2650 @deffnx {Función} scatterplot_description (@dots{})
2652 Dibuja diagramas de dispersión, tanto de muestras univariantes (@var{list})
2653 como multivariantes (@var{matrix}). 
2655 Las opciones disponibles son las mismas que admite @code{histogram}.
2657 La función @code{scatterplot_description} crea un objeto gráfico
2658 útil para formar escenas complejas, junto con otros objetos gráficos.
2659 Se dispone también de la función @code{wxscatterplot} para crear
2660 histogramas incorporados en los interfaces wxMaxima y iMaxima.
2662 Ejemplos:
2664 Diagrama de dispersión univariante a partir de una muestra normal
2665 simulada. 
2667 @c ===beg===
2668 @c load ("descriptive")$
2669 @c load ("distrib")$
2670 @c scatterplot(
2671 @c   random_normal(0,1,200),
2672 @c   xaxis      = true,
2673 @c   point_size = 2,
2674 @c   dimensions = [600,150])$
2675 @c ===end===
2676 @example
2677 (%i1) load ("descriptive")$
2678 (%i2) load ("distrib")$
2679 @group
2680 (%i3) scatterplot(
2681         random_normal(0,1,200),
2682         xaxis      = true,
2683         point_size = 2,
2684         dimensions = [600,150])$
2685 @end group
2686 @end example
2688 Diagrama de dispersión bidimensional.
2690 @c ===beg===
2691 @c load ("descriptive")$
2692 @c s2 : read_matrix (file_search ("wind.data"))$
2693 @c scatterplot(
2694 @c  submatrix(s2, 1,2,3),
2695 @c  title      = "Data from stations #4 and #5",
2696 @c  point_type = diamant,
2697 @c  point_size = 2,
2698 @c  color      = blue)$
2699 @c ===end===
2700 @example
2701 (%i1) load ("descriptive")$
2702 (%i2) s2 : read_matrix (file_search ("wind.data"))$
2703 @group
2704 (%i3) scatterplot(
2705        submatrix(s2, 1,2,3),
2706        title      = "Data from stations #4 and #5",
2707        point_type = diamant,
2708        point_size = 2,
2709        color      = blue)$
2710 @end group
2711 @end example
2713 Diagrama de dispersión tridimensional.
2715 @c ===beg===
2716 @c load ("descriptive")$
2717 @c s2 : read_matrix (file_search ("wind.data"))$
2718 @c scatterplot(submatrix (s2, 1,2), nclasses=4)$
2719 @c ===end===
2720 @example
2721 (%i1) load ("descriptive")$
2722 (%i2) s2 : read_matrix (file_search ("wind.data"))$
2723 (%i3) scatterplot(submatrix (s2, 1,2), nclasses=4)$
2724 @end example
2726 Diagrama de dispersión de cinco dimensiones, con histogramas de
2727 cinco classes.
2729 @c ===beg===
2730 @c load ("descriptive")$
2731 @c s2 : read_matrix (file_search ("wind.data"))$
2732 @c scatterplot(
2733 @c   s2,
2734 @c   nclasses     = 5,
2735 @c   frequency    = relative,
2736 @c   fill_color   = blue,
2737 @c   fill_density = 0.3,
2738 @c   xtics        = 5)$
2739 @c ===end===
2740 @example
2741 (%i1) load ("descriptive")$
2742 (%i2) s2 : read_matrix (file_search ("wind.data"))$
2743 @group
2744 (%i3) scatterplot(
2745         s2,
2746         nclasses     = 5,
2747         frequency    = relative,
2748         fill_color   = blue,
2749         fill_density = 0.3,
2750         xtics        = 5)$
2751 @end group
2752 @end example
2754 Para dibujar puntos aislados o unidos por segmentos, tanto en dos
2755 como en tres dimensiones, véase @code{points}.
2756 Véase también @code{histogram}.
2757 @end deffn
2761 @deffn {Función} starplot (@var{data1}, @var{data2}, @dots{}, @var{option_1}, @var{option_2}, @dots{})
2762 @deffnx {Función} starplot_description (@dots{})
2764 Dibuja diagramas de estrellas para variables estadísticas
2765 discretas, tanto para una como para más muestras.
2767 @var{data} puede ser una lista de resultados provenientes de una muestra
2768 o una matriz de @var{m} filas y @var{n} columnas, representando @var{n} 
2769 muestras de tamaño @var{m} cada una.
2771 Las opciones disponibles son:
2773 @itemize @bullet
2775 @item
2776 @var{stars_colors} (valor por defecto, @code{[]}): una lista de colores para muestras
2777 múltiples. Cuando haya más muestras que colores especificados, los colores que faltan
2778 se eligen aleatoriamente. Véase @code{color} para más información.
2780 @item
2781 @var{frequency} (valor por defecto, @code{absolute}): indica la escala de los radios.
2782 Valores admitidos son:  @code{absolute} y @code{relative}.
2784 @item
2785 @var{ordering} (valor por defecto, @code{orderlessp}): los valores admitidos para esta 
2786 opción son: @code{orderlessp} y @code{ordergreatp}, indicando cómo se deben ordenar
2787 los resultados muestrales sobre el eje-@var{x}.
2790 @item
2791 @var{sample_keys} (valor por defecto, @code{[]}): es una lista de cadenas de 
2792 texto a usar como leyendas. Cuando la lista tenga una longitud diferente de cero o 
2793 del número de muestras, se devolverá un mensaje de error.
2795 @item
2796 @var{star_center} (valor por defecto, @code{[0,0]}): centro del diagrama.
2798 @item
2799 @var{star_radius} (valor por defecto, @code{1}): radio del diagrama.
2801 @item
2802 Todas las opciones globales de @code{draw}, excepto @code{points_joined}, @code{point_type}, 
2803 and @code{key}, que se asignan internamente por @code{starplot}. Si es necesario que el 
2804 usuario les dé sus propios valores a estas opciones, o quiere construir una escena más compleja,
2805 debe hacer uso de @code{starplot_description}.
2807 @item
2808 La siguiente opción local de @code{draw}: @code{line_width}.
2810 @end itemize
2812 La función @code{starplot_description} crea un objeto gráfico
2813 útil para formar escenas complejas, junto con otros objetos gráficos.
2814 Se dispone también de la función @code{wxstarplot} para crear
2815 histogramas incorporados en los interfaces wxMaxima y iMaxima.
2817 Ejemplo:
2819 Gráfico basado en frecuencias absolutas. La localización y
2820 el radios lo define el usuario.
2822 @example
2823 (%i1) load ("descriptive")$
2824 (%i2) l1: makelist(random(10),k,1,50)$
2825 (%i3) l2: makelist(random(10),k,1,200)$
2826 @group
2827 (%i4) starplot(
2828         l1, l2,
2829         stars_colors = [blue,red],
2830         sample_keys = ["1st sample", "2nd sample"],
2831         star_center = [1,2],
2832         star_radius = 4,
2833         proportional_axes = xy,
2834         line_width = 2 ) $ 
2835 @end group
2836 @end example
2838 @end deffn
2842 @deffn {Función} stemplot (@var{m})
2843 @deffnx {Función} stemplot (@var{m}, @var{option})
2845 Dibuja diagrama de tallos y hojas.
2847 La única opción disponible es:
2849 @itemize @bullet
2851 @item
2852 @var{leaf_unit} (valor por defecto, @code{1}): indica la unidad de las hojas; debe ser
2853 una potencia de 10.
2855 @end itemize
2857 Ejemplo:
2859 @example
2860 (%i1) load ("descriptive")$
2861 (%i2) load("distrib")$
2862 @group
2863 (%i3) stemplot(
2864         random_normal(15, 6, 100),
2865         leaf_unit = 0.1);
2866 -5|4
2867  0|37
2868  1|7
2869  3|6
2870  4|4
2871  5|4
2872  6|57
2873  7|0149
2874  8|3
2875  9|1334588
2876 10|07888
2877 11|01144467789
2878 12|12566889
2879 13|24778
2880 14|047
2881 15|223458
2882 16|4
2883 17|11557
2884 18|000247
2885 19|4467799
2886 20|00
2887 21|1
2888 22|2335
2889 23|01457
2890 24|12356
2891 25|455
2892 27|79
2893 key: 6|3 =  6.3
2894 (%o3)                  done
2895 @end group
2896 @end example
2898 @end deffn