TAULES, PARÀMETRES I GRÀFICS ESTADÍSTICS AMB GEOGEBRA PER A L’AULA D’ESO
Autor: Juan Manuel Couchoud Pérez
Adreça electrònica: juan.manuel.couchoud@gmail.com
Institució de referència: Professor de matemàtiques de l’IES Vall de la Safor de Villalonga. Membre de la Societat d’Educació Matemàtica de la Comunitat Valenciana al-Khwārizmī.
Modalitat: Comunicació.
Nivell educatiu: Secundària.
Paraules clau: estadística, taules, paràmetres, gràfics, GeoGebra.
Idioma: Valencià.
Resum: Aquesta comunicació presenta un applet de GeoGebra d’estadístiques d’una variable, que permet de forma mot ràpida, pràcticament amb un “còpia ^C, enganxa ^V, entra ↲”, la creació de taules, el càlcul de paràmetres i el dibuix de gràfics d’estadístiques qualitatives, quantitatives discretes i quantitatives contínues. Aquest benefici temporal que permet l’applet, facilita la correcció d’activitats i l’estudi del comportament dels paràmetres estadístics.
Descripció: Els càlculs estadístics són especialment costosos des del punt de vista temporal, tant per a l’alumnat com per al professorat en les sessions escolars. Les calculadores tradicionals estan preparades per a les estadístiques quantitatives discretes, però no per a les contínues i qualitatives.
Estudiar l’estadística seguint els models estadístics permet a l’alumnat distingir quines característiques són adequades a cada model. Es tracten tres models: estadístiques qualitatives, quantitatives discretes i quantitatives contínues.
El programa presenta un full amb la taula de dades i els paràmetres estadístics i una sèrie de gràfics estadístics bàsics que aprofiten la geometria dinàmica de GeoGebra per adaptar l’altura i l’ample dels gràfics. Destaca la utilització d’unitats en la presentació dels paràmetres i el càlcul gràfic de percentils en el gràfic de freqüències relatives acumulades en percentatge.
Presentat en les XIII Jornades d’Educació Matemàtica de la Comunitat Valenciana. Innovació i tecnologia en educació matemàtica. Alacant, 19 i 20 d’octubre de 2018
INTRODUCCIÓ
L’estudi de l’estadística en l’ESO està centrat en models d’una variable i una petita introducció a l’estadística de dues variables en quart d’ESO. La docència de l’estadística presenta una sèrie de dificultats: es presenten els coneixements barrejant els models estadístics, generant una confusió important en el tractament matemàtic de cada model estadístic; també el tractament gràfic presenta moltes confusions, arribant a barrejar diferents tipus de gràfics en el mateix dibuix. Especialment, les calculadores tenen un bon tractament dels models quantitatius discrets, però no dels models quantitatius continus. La creació de les taules de freqüències té un cost temporal important, dificultant la verificació d’aquestes.
EL PROGRAMA
Buscava una eina amb més capacitat de càlcul que una calculadora però sense la complexitat de programes professionals com R. Existeixen programes en aquesta zona, pensats per l’ensenyament secundari com stadis, estaplus i el propi mòdul estadístic de GeoGebra, però necessitava també una eina que consumirà poc de temps en l’aula, i amb tots els paràmetres estadístics típics de l’ensenyament secundari (Grence, 2015,2016).
Aquest programa (Couchoud, 2013, 2015) està implementat en GeoGebra que incorpora el llenguatge de programació JavaScript i LaTeX per a escriure textos matemàtics. Pot ser utilitzat tant localment amb el GeoGebra instal•lat a l’ordinador com “on-line” connectant-se a les pàgines de material de GeoGebra. Els gràfics aprofiten el dinamisme geomètric de GeoGebra per a modificar l’altura, l’amplitud i realitzar càlculs de percentils gràficament.
Està limitat a l’estudi de l’estadística descriptiva dels models qualitatius, quantitatius discrets i quantitatius continus.
COMPARATIVA DE LA INFORMACIÓ DELS MODELS
El programa presenta la informació estadística següent , en funció del model estadístic.
Model | Qualitatiu | Quantitatiu discret | Quantitatiu continu |
Títol | x | x | x |
Entrada de les dades en format text | x | x | x |
Càlcul mostral i poblacional | x | x | x |
Selecció de decimals | x | x | x |
Taula | x | x | x |
Columna amb els valors de la variable | x | x | |
Columna amb els intervals de la variable | x | ||
Columna amb les marques de classe | x | ||
Unitats | x | x | |
Columna de freqüència | x | x | x |
Columna de freqüència acumulada | x | x | |
Columna de freqüència relativa | x | x | x |
Columna de freqüència relativa acumulada | x | x | |
Columna de freqüència relativa en % | x | x | x |
Columna de freqüència relativa acumulada en % | x | x | |
Columna de les altures de l’histograma | x | ||
Columna amb els angles del diagrama de sectors | x | x | x |
Columna amb els angles acumulats | x | x | x |
Columna x·f | x | x | |
Columna f(x-mitjana)2 | x | x | |
Columna f(x-mitjana)3 | x | x | |
Columna f(x-mitjana)4 | x | x | |
Grandària de la mostra o de la població | x | x | x |
Moda | x | x | |
Interval modal | x | ||
Mitjana | x | x | |
Primer quartil | x | x | |
Mediana | x | x | |
Tercer quartil | x | x | |
Rang | x | x | |
variància | x | x | |
Desviació típica mostral o poblacional | x | x | |
Coeficient de variació | x | x | |
Coeficient d’asimetria de Fisher (Sáez, 2012) | x | x | |
Coeficient d’asimetria de Pearson (Febrero, 2008) | x | x | |
Coeficient d’asimetria de Bowley (Febrero, 2008) | x | x | |
Coeficient de curtosi (Febrero, 2008) | x | x | |
Coeficient de desigualtat de Gini (Ferreira, 1997) | x | x | |
Gràfic de sectors | x | x | x |
Gràfic de barres | x | x | |
Gràfic poligonal | x | ||
Histograma | x | ||
Polígon de freqüències acumulades en percentatge | x | ||
Càlcul gràfic de percentils | x |
Els coeficients d’asimetria, curtosi i desigualtat, que no formen part del temari de secundària poden estar ocults.
ENTRADA DE DADES I RESULTATS
L’entrada de dades en forma de text permet disposar de moltes estadístiques en un document de text, ocupant molt poc espai, alliberant a l’usuari de la costosa introducció de dades tabulars. És aquesta característica la que permet amb un “còpia, enganxa i entrar” disposar de tota la informació estadística indicada anteriorment.
La coma és el separador de la informació i per tant no pot formar part del títol, de les unitats, ni del valor de les variables qualitatives.
El primer nombre que cal escriure indica el model estadístic a utilitzar: “1” per al model qualitatiu, “2” per al model quantitatiu discret i “3” per al model quantitatiu continu.
Model qualitatiu
En el model qualitatiu, després del nombre 1, s’indica el títol i a continuació les parelles de valor i freqüència absoluta.
1,Títol,u,v1,f1,v2,f2…
1, Esport preferit de l´alumnat, Handbol, 10, Natació, 30, Futbol, 60, Bàsquet, 60, Voleibol, 30, Tir amb arc, 10
Els resultats són els següents:
Model quantitatiu discret
En el model quantitatiu discret, després del nombre dos, s’indica el títol, la unitat i a continuació les parelles de valor i freqüència absoluta
1, Títol, unitat, v1, f1, v2, f2 …
2, Nombre d’aparells electrònics per alumne, aparells, 5, 6, 6, 12, 7, 4, 8, 3
Els resultats són els següents:
Model quantitatiu continu
En el model quantitatiu continu, després del nombre tres, s’indica el títol, la unitat i a continuació els intervals seguits de la seua freqüència absoluta. És indispensable que cada interval comence on finalitza l’anterior i que si un interval finalitza de forma tancada, el següent comence de forma oberta o viceversa. Representa també interval no homogenis.
3, Títol, unitat, [v0,v1), f1, [v1,v2), f2 …
3, Estatures de l’alumnat, cm, [155,160), 1, [160,165), 3, [165,170), 6, [170,175), 3, [175,180), 2, [180,185), 1
Els resultats són els següents:
PRÒXIMES VERSIONS
Per a pròximes versions inclouré el diagrama de caixa.
CONCLUSIONS
Aquest programa ha permès millorar el treball d’aula, centrar-se més en l’estudi dels paràmetres, que el càlcul no acapare el temps i que augmente l’autonomia en la realització d’activitats estadístiques. La tecnologia està entrant a les aules i l’educació pública no ha d’estar al darrera.
BIBLIOGRAFIA
Couchoud, J. M. (2013). Taules i gràfics estadístics. Recuperat de
https://www.geogebra.org/m/Rad5D5DE
Couchoud, J. M. (2015). Tablas y gráficos estadísticos. Recuperado de
https://www.geogebra.org/m/a5nN5fky
Febrero, M. Galeano, P. González, J. Pateiro, B. (2008). Estadística. Ingeniería Técnica en Informàtica de Sistemas. Departamento de Estadística e Investigación Operativa. Universidad de Santiago de Compostela. España. Recuperado de https://eio.usc.es/pub/pateiro/files/PubDocenteTeoriaEstadistica.pdf
Ferreira, F. Garín, A. (1997). Una nota sobre el cálculo del índice de Gini. Departamento de Economia Aplicada. Universidad del País Vasco. España. Recuperado de https://docplayer.es/17915973-Una-nota-sobre-el-calculo-del-indice-de-gini.html
Grence, T. Gregori, I. (2016). Matemàtiques Ensenyaments acadèmics 4 ESO, Sèrie Resol. València. Espanya: Edicions Voramar S.A. Santillana Educación S.L.
Grence, T. Macià, P. (2015). Matemàtiques I, Sèrie Resol. Barcelona. Espanya: Grup Promotor, Santillana Educación S.L.
Sáez, A. J. (2012). Apuntes de Estadística para Ingenieros. Departamento de Estadística e Investigación Operativa. Universidad de Jaén. España. Recuperado de https://www4.ujaen.es/~ajsaez/recursos/EstadisticaIngenieros.pdf
IMATGES
Totes les imatges són de l’autor.
ANNEX I
Entre el professorat de matemàtiques hi ha molta gent a la que li agrada realitzar programes informàtics. Aquest programa combina el potencial de GeoGebra amb el llenguatge de programació JavaScript i el format LaTeX de presentació de fórmules. Presente el programa per a que observeu les estratègies informàtiques que han permès implementar-lo.
function ggbOnInit() {} function incorrecte(missatge){ ggbApplet.setValue("tipus",0); var t='\\begin{array}{l} '+missatge+' \\\\ '; t+='\\mbox{Tipus d´estadística: 1 qualitativa, 2 quantitativa discreta, 3 quantitativa contínua} \\\\ '; t+='\\mbox{1,títol,v,f,v,f...} \\\\ '; t+='\\mbox{2,títol,unitat,v,f,v,f...} \\\\ '; t+='\\mbox{3,títol,unitat,[a,b),f,[b,c),f... o 3,títol,unitat,(a,b],f,(b,c],f...} \\\\ '; t+='\\mbox{v és un valor estadístic, f la seua freqüència i [a,b) un interval. Admet altres intervals (a,b].} \\end{array}'; ggbApplet.evalCommand('elsvalors:"'+t+'"'); } function stringnet(s){ var m=s; while(m.search(' ')>-1){m=m.replace(' ',' ');}; while(m.substr(0,1)==' ') {m=m.substr(1);}; while(m.substr(m.length-1,1)==' ') {m=m.substr(0,m.length-1);}; return(m); } function natural(valor){ var v=parseInt(valor); if (isNaN(v)) {v=0}; if (v<0){v=0}; return(v); } function esnombre(valor){ var v=parseFloat(valor); return(!isNaN(v)); } function nd(v){ // escriu els nombres amb la quantitat de decimals indicats var decimals=ggbApplet.getValue('decimals'); return(v.toFixed(decimals)); } function mp(v){ // surt el simbol de mostra o de població var w=''; if (ggbApplet.getValue('mostra')==0){ if (v=='n') {w='\\textit{N}';} else if (v=='x') {w='\\textit{x}';} else if (v=='f') {w='\\textit{f}';} else if (v=='F') {w='\\textit{F}';} else if (v=='h') {w='\\textit{h}';} else if (v=='H') {w='\\textit{H}';} else if (v=='a') {w='\\textit{a}';} else if (v=='A') {w='\\textit{A}';} else if (v=='g') {w='\\textit{g}';} else if (v=='Mo') {w='\\textit{Mo}';} else if (v=='mitjana') {w='\\mu ';} else if (v=='Q') {w='\\textit{Q}';} else if (v=='G') {w='\\textit{G}';} else if (v=='RIQ') {w='\\textit{RIQ}';} else if (v=='Me') {w='\\textit{Me}';} else if (v=='Rang') {w='\\textit{Rang}';} else if (v=='desviacio') {w='\\sigma ';} else if (v=='CV') {w='\\textit{CV}';} else if (v=='Interval') {w='\\textit{Interval}';} else if (v=='altura') {w='\\textit{altura}';} else {w=v}; } else { if (v=='n') {w='n';} else if (v=='x') {w='x';} else if (v=='f') {w='f';} else if (v=='F') {w='F';} else if (v=='h') {w='h';} else if (v=='H') {w='H';} else if (v=='a') {w='a';} else if (v=='A') {w='A';} else if (v=='g') {w='g';} else if (v=='Mo') {w='Mo';} else if (v=='mitjana') {w='\\bar{x}';} else if (v=='Q') {w='Q';} else if (v=='G') {w='G';} else if (v=='RIQ') {w='RIQ';} else if (v=='Me') {w='Me';} else if (v=='Rang') {w='Rang';} else if (v=='desviacio') {w='s';} else if (v=='CV') {w='CV';} else if (v=='Interval') {w='Interval';} else if (v=='altura') {w='altura';} else {w=v}; }; return(w); } function calculataula(){ // Inicia l'altura de la informació ggbApplet.setValue('persiana',1); // Lectura de les dades var dades=''+ggbApplet.getValueString('lesdades'); var mostra=ggbApplet.getValue('mostra'); var mesdades=ggbApplet.getValue('mesdades'); if (dades=='1'){ dades='1, Esport preferit de l´alumnat, Handbol, 10, Natació, 30, Futbol, 60, Bàsquet, 60, Voleibol, 30, Tir amb arc, 10'; ggbApplet.evalCommand('lesdades:"'+dades+'"'); }; if (dades=='2'){ dades='2, Nombre d´aparells electrònics que té l´alumnat, aparells, 5, 6, 6, 12, 7, 4, 8, 3'; ggbApplet.evalCommand('lesdades:"'+dades+'"'); }; if (dades=='3'){ dades='3, Estatures de l´alumnat, cm, [155, 160), 1, [160, 165), 3, [165, 170), 6, [170, 175), 3, [175, 180), 2, [180, 185), 1'; ggbApplet.evalCommand('lesdades:"'+dades+'"'); }; if (dades=='4'){ dades='3, Notes ponderades de l´alumnat, punts, [0, 2), 11, [2, 4), 34, [4, 5), 34, [5, 6), 82, [6, 8), 142, [8, 10], 60'; ggbApplet.evalCommand('lesdades:"'+dades+'"'); }; // anàlisi de les dades var d = dades.split(","); var correcte=true; if (d[0]!=1 && d[0]!=2 && d[0]!=3) {incorrecte("\\mbox{Falta el tipus d'estadística: 1, 2 o 3}");return;}; // Estadística qualitativa if (d[0]==1){ ggbApplet.setValue("tipus",1); var i=2; if(d.length<4 || d.length % 2!=0) {incorrecte("\\mbox{Falten dades}");return;}; d[1]=stringnet(""+d[1]); if (d[1]=="") {incorrecte("\\mbox{Falta el títol}");return;}; while (correcte && i<d.length){ d[i]=stringnet(""+d[i]); if (d[i]=="") {incorrecte("\\mbox{Falta el valor de }x_{"+(i/2)+"}");correcte=false;}; d[i+1]=natural(""+d[i+1]); i=i+2; }; if(!correcte){return;}; var files=(d.length-2)/2; // quantitat de valors que té la variable var x=new Array(); // valors var f=new Array(); // freqüència var F=new Array(); // freqüències acumulada var h=new Array(); // freqüència relativa var hp=new Array(); // freqüència relativa en percentatge var H=new Array(); // freqúència relativa acumulada var Hp=new Array(); // freqüència relativa acumulada en percentatge var a=new Array(); // angle del diagrama de sectors var A=new Array(); // angle acumulat del diagrama de sectors var sf=0; // sumador de freqüències per a calcular les freqüències acumulades var fmax=0; // freqüència màxima var mo=""; // moda for (i=0;i<files;i++){ x[i]=d[2*i+2]; f[i]=parseInt(d[2*i+3]); if(f[i]==fmax) { mo+="\\mbox{"+x[i]+", } "; }; if(f[i]>fmax) { mo="\\mbox{"+x[i]+", } "; fmax=f[i]; }; sf+=f[i]; F[i]=sf; }; for (i=0;i<files;i++){ h[i]=f[i]/sf; hp[i]=100*h[i]; H[i]=F[i]/sf; Hp[i]=100*H[i]; a[i]=360*h[i]; A[i]=360*H[i]; }; var t="\\begin{array}{l} \\mbox{Estadística qualitativa: "+d[1]+" } \\\\ "; t+=" \\begin{array}{l|r|r|r|r|r|} \\ "+mp('x')+"_i & "+mp('f')+"_i & "+mp('h')+"_i & "+mp('h')+"_i \\% & "+mp('a')+"_i & "+mp('A')+"_i \\ \\\\ "; for (i=0;i<files;i++){ t+="\\hline \\ \\mbox{"+x[i]+"} & "+f[i]+" & "+nd(h[i]) +" & "+nd(hp[i])+" & "+nd(a[i])+" & "+nd(A[i])+" \\ \\\\ "; }; t+=" \\hline \\mbox{ } & "+sf+" & "+nd(1)+" & "+nd(100)+" & "+nd(360)+" & \\mbox{ } \\ \\end{array} \\\\ "; t+=mp('n')+"="+sf+",\\mbox{ } "+mp('Mo')+" = "+mo+" \\\\ "; t+=mp('x')+"\\mbox{ valor, }"+mp('f')+"\\mbox{ freqüència, }"+mp('h')+"\\mbox{ freqüència relativa, }"+mp('h')+"\\% \\mbox{ freqüència relativa en percentatge, }"+mp('a')+"\\mbox{ angle, }"+mp('A')+"\\mbox{ angle acumulat.}"; t+=" \\end{array} "; ggbApplet.evalCommand('elsvalors:"'+t+'"'); t="llistaS={0"; for (i=0;i<files;i++){ t+=',"'+x[i]+' '+hp[i].toFixed(1)+'%",'+A[i]; }; t+="}"; ggbApplet.evalCommand(t); t="llistaB={"+fmax; for (i=0;i<files;i++){ t+=','+f[i]+',"'+x[i]+'","'+hp[i].toFixed(1)+'%"'; }; t+="}"; ggbApplet.evalCommand(t); }; // estadística quantitativa discreta if (d[0]==2){ ggbApplet.setValue("tipus",2); var i=3; if(d.length<5 || d.length % 2!=1) {incorrecte("\\mbox{Falten dades}");return;}; d[1]=stringnet(""+d[1]); if (d[1]=="") {incorrecte("\\mbox{Falta el títol}");return;}; d[2]=stringnet(""+d[2]); if (d[2]=="") {incorrecte("\\mbox{Falta la unitat}");return;}; while (correcte && i<d.length){ if(esnombre(d[i])){ d[i]=parseFloat(d[i]); } else { incorrecte("\\mbox{El valor de }x_{"+((i-1)/2)+"} \\mbox{ no és un nombre }");correcte=false; }; d[i+1]=natural(""+d[i+1]); i=i+2; }; if(!correcte){return;}; var files=(d.length-3)/2; var x=new Array(); var f=new Array(); var F=new Array(); var hp=new Array(); var h=new Array(); var H=new Array(); var Hp=new Array(); var a=new Array(); var A=new Array(); var xf=new Array(); var fxx=new Array(); var G=new Array(); // propietat acumulada relativa per a calcula el coeficient de Gini var fxxx=new Array(); var fxxxx=new Array(); var sf=0; var sxf=0; var sfxx=0; var sfxxx=0; var sfxxxx=0; var fmax=0; var mo=""; var anterior=0; var gini=0; // coeficient de Gini var aH=0; // frèqüència acumulada relativa anterior per a calcula el coeficient de Gini var aG=0; // propietat acumulada relativa anterior per a calcula el coeficient de Gini for (i=0;i<files;i++){ x[i]=parseFloat(d[2*i+3]); if (i==0){ anterior=x[0]; } else { if (x[i]<=x[i-1]) { incorrecte("\\mbox{Els valors no estan ordenats } x_{"+i+"} \\ge x_{"+(i+1)+"}.");correcte=false; }; }; f[i]=parseInt(d[2*i+4]); if(f[i]==fmax) { mo+="\\mbox{"+x[i]+" "+d[2]+", } "; }; if(f[i]>fmax) { mo="\\mbox{"+x[i]+" "+d[2]+", } "; fmax=f[i]; }; sf+=f[i]; F[i]=sf; }; if(!correcte){return;}; for (i=0;i<files;i++){ h[i]=f[i]/sf; hp[i]=100*h[i]; H[i]=F[i]/sf; Hp[i]=100*H[i]; a[i]=360*h[i]; A[i]=360*H[i]; xf[i]=x[i]*f[i]; sxf+=xf[i]; G[i]=sxf; // propietat acumulada relativa }; for (i=0;i<files;i++){ G[i]=G[i]/sxf; }; for (i=0;i<files;i++){ gini+=((H[i]-G[i])+(aH-aG))*(H[i]-aH); aH=H[i]; aG=G[i]; }; var mitjana=sxf/sf; for (i=0;i<files;i++){ fxx[i]=f[i]*(x[i]-mitjana)*(x[i]-mitjana); sfxx+=fxx[i]; fxxx[i]=fxx[i]*(x[i]-mitjana); sfxxx+=fxx[i]*(x[i]-mitjana); fxxxx[i]=fxx[i]*(x[i]-mitjana)*(x[i]-mitjana); sfxxxx+=fxx[i]*(x[i]-mitjana)*(x[i]-mitjana); }; var variancia=sfxx/(sf-mostra); //mostra=0 és població, mostra=1 és mostra var moment3=sfxxx/(sf-mostra); //mostra=0 és població, mostra=1 és mostra var moment4=sfxxxx/(sf-mostra); //mostra=0 és població, mostra=1 és mostra var destipica=Math.pow(variancia, 0.5); var cv=destipica/Math.abs(mitjana); var rang=x[files-1]-x[0]; var me=0; var z=0; while(Hp[z]<50.0){z++;}; if(Hp[z]==50.0){ me=(x[z]+x[z+1])/2; } else { me=x[z]; }; var q1=0; z=0; while(Hp[z]<25.0){z++;}; if(Hp[z]==25.0){ q1=(x[z]+x[z+1])/2; } else { q1=x[z]; }; var q3=0; z=0; while(Hp[z]<75.0){z++;}; if(Hp[z]==75.0){ q3=(x[z]+x[z+1])/2; } else { q3=x[z]; }; var RIQ=q3-q1; var Af=moment3/(Math.pow(destipica,3)); var Ap=3*(mitjana-me)/destipica; var Ab=(q3+q1-2*me)/(q3-q1); var curtosi=moment4/(Math.pow(destipica,4))-3; var tcurtosi="Distribució "+(curtosi<-0.1 ? "platicúrtica" : (curtosi>0.1 ? "leptocúrtica" : "mesocúrtica" ) ); var t="\\begin{array}{l} \\mbox{Estadística quantitativa discreta: "+d[1]+" } \\\\ "; if (mesdades==1){ t+=" \\begin{array}{l|r|r|r|r|r|r|r|r|r|r|r|r|} \\ "+mp('x')+"_i & "+mp('f')+"_i & "+mp('F')+"_i & "+mp('h')+"_i & "+mp('H')+"_i & "+mp('h')+"_i \\% & "+mp('H')+"_i \\% & "+mp('a')+"_i & "+mp('A')+"_i & "+mp('x')+"_i "+mp('f')+"_i & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^2 & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^3 & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^4 \\ \\\\ "; } else { t+=" \\begin{array}{l|r|r|r|r|r|r|r|r|r|r|} \\ "+mp('x')+"_i & "+mp('f')+"_i & "+mp('F')+"_i & "+mp('h')+"_i & "+mp('H')+"_i & "+mp('h')+"_i \\% & "+mp('H')+"_i \\% & "+mp('a')+"_i & "+mp('A')+"_i & "+mp('x')+"_i "+mp('f')+"_i & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^2 \\ \\\\ "; }; for (i=0;i<files;i++){ if(mesdades==1){ t+="\\hline \\ \\mbox{"+x[i]+"} & "+f[i]+" & "+F[i]+" & "+nd(h[i])+" & "+nd(H[i])+" & "+nd(hp[i])+" & "+nd(Hp[i])+" & "+nd(a[i])+" & "+nd(A[i])+" & "+nd(xf[i])+" & "+nd(fxx[i])+" & "+nd(fxxx[i])+" & "+nd(fxxxx[i])+" \\ \\\\ "; } else { t+="\\hline \\ \\mbox{"+x[i]+"} & "+f[i]+" & "+F[i]+" & "+nd(h[i])+" & "+nd(H[i])+" & "+nd(hp[i])+" & "+nd(Hp[i])+" & "+nd(a[i])+" & "+nd(A[i])+" & "+nd(xf[i])+" & "+nd(fxx[i])+" \\ \\\\ "; }; }; if (mesdades==1){ t+=" \\hline \\mbox{ } & "+sf+" & \\mbox{ } & "+nd(1.0)+" & \\mbox{ } & "+nd(100.0)+" & \\mbox{ } & "+nd(360.0)+" & \\mbox{ } & "+nd(sxf)+" & "+nd(sfxx)+" & "+nd(sfxxx)+" & "+nd(sfxxxx)+" \\ \\end{array} \\\\ "; } else { t+=" \\hline \\mbox{ } & "+sf+" & \\mbox{ } & "+nd(1.0)+" & \\mbox{ } & "+nd(100.0)+" & \\mbox{ } & "+nd(360.0)+" & \\mbox{ } & "+nd(sxf)+" & "+nd(sfxx)+" \\ \\end{array} \\\\ "; }; t+=mp('n')+"="+sf+",\\mbox{ } "+mp('Mo')+"= "+mo+" \\mbox{ } "+mp('mitjana')+"="+nd(mitjana)+" \\mbox{ "+d[2]+", } \\\\"; t+=mp('Q')+"_1= "+nd(q1)+" \\mbox{ "+d[2]+", } \\mbox{ } "+mp('Me')+"= "+nd(me)+" \\mbox{ "+d[2]+", } \\mbox{ } "+mp('Q')+"_3= "+nd(q3)+" \\mbox{ "+d[2]+", } \\mbox{ } "+mp('RIQ')+"= "+nd(RIQ)+" \\mbox{ "+d[2]+", } \\\\"; t+=mp('Rang')+"= "+rang+" \\mbox{ "+d[2]+", } "+mp('desviacio')+"^2="+nd(variancia)+" \\mbox{ ("+d[2]+")}^2, \\ "+mp('desviacio')+"="+nd(destipica)+" \\mbox{ "+d[2]+"}, "+mp('CV')+"="+nd(cv)+" \\\\ "; if (mesdades==1){ t+="\\mbox{Coeficents d'asimetria }"+mp('A')+"_{Fisher}="+nd(Af)+"\\mbox{ }"+mp('A')+"_{Pearson}="+nd(Ap)+"\\mbox{ }"+mp('A')+"_{Bowley}="+nd(Ab)+" \\\\"; t+="\\mbox{Coeficent de curtosi }"+mp('g')+"="+nd(curtosi)+"\\mbox{ "+tcurtosi+"} \\\\"; t+="\\mbox{Coeficent de desdigualtat de Gini }"+mp('G')+"="+nd(gini)+" \\\\"; }; t+=mp('x')+"\\mbox{ valor, }"+mp('f')+"\\mbox{ freqüència, }"+mp('h')+"\\mbox{ freqüència relativa, }"+mp('h')+"\\% \\mbox{ freqüència relativa en percentatge, }"+mp('a')+"\\mbox{ angle, }"+mp('A')+"\\mbox{ angle acumulat.}"; t+=" \\end{array} "; ggbApplet.evalCommand('elsvalors:"'+t+'"'); t="llistaS={0"; for (i=0;i<files;i++){ t+=',"'+x[i]+" "+d[2]+' '+hp[i].toFixed(1)+'%",'+A[i]; }; t+="}"; ggbApplet.evalCommand(t); t="llistaB={"+fmax; for (i=0;i<files;i++){ t+=','+f[i]+',"'+x[i]+" "+d[2]+'","'+hp[i].toFixed(1)+'%"'; }; t+="}"; ggbApplet.evalCommand(t); }; // Estadística quantitativa contínua if (d[0]==3){ ggbApplet.setValue("tipus",3); var i=3; var e1=""; var e2=""; if(d.length<6 || d.length % 3!=0) {incorrecte("\\mbox{Falten dades}");return;}; d[1]=stringnet(""+d[1]); if (d[1]=="") {incorrecte("\\mbox{Falta el títol}");return;}; d[2]=stringnet(""+d[2]); if (d[2]=="") {incorrecte("\\mbox{Falta la unitat}");return;}; while (correcte && i<d.length){ d[i]=stringnet(d[i]); if (d[i].substring(0,1)!="[" && d[i].substring(0,1)!="(") { incorrecte("\\mbox{L'interval }"+(i/3)+" \\mbox{ ha de començar amb [ o ( }");correcte=false;break; }; if(!esnombre(d[i].substring(1))){ incorrecte("\\mbox{L'extrem inicial de l'interval }"+(i/3)+" \\mbox{ ha de ser numèric }");correcte=false;break; }; d[i+1]=stringnet(d[i+1]); e1=""+d[i+1]; if (d[i+1].substring(e1.length-1)!="]" && d[i+1].substring(e1.length-1)!=")") { incorrecte("\\mbox{L'interval }"+(i/3)+" \\mbox{ ha de finalitzar amb ] o ) }");correcte=false;break; }; if(!esnombre(d[i+1].substring(0,e1.length-1))){ incorrecte("\\mbox{L'extrem final de l'interval }"+(i/3)+" \\mbox{ ha de ser numèric }");correcte=false;break; }; d[i+2]=natural(""+d[i+2]); i=i+3; }; if(!correcte){return;}; var files=(d.length-3)/3; var t1=new Array(); var v1=new Array(); var v2=new Array(); var interval=new Array(); var t2=new Array(); var x=new Array(); var f=new Array(); var F=new Array(); var hp=new Array(); var h=new Array(); var H=new Array(); var Hp=new Array(); var alt=new Array(); var altmax=0; var a=new Array(); var A=new Array(); var xf=new Array(); var fxx=new Array(); var G=new Array(); // propietat acumulada relativa per a calcula el coeficient de Gini var fxxx=new Array(); var fxxxx=new Array(); var sf=0; var sxf=0; var sfxx=0; var sfxxx=0; var sfxxxx=0; var fmax=0; var gini=0; // coeficient de Gini var aH=0; // frèqüència acumulada relativa anterior per a calcula el coeficient de Gini var aG=0; // propietat acumulada relativa anterior per a calcula el coeficient de Gini var mo=""; for (i=0;i<files;i++){ t1[i]=d[(i+1)*3].substring(0,1); v1[i]=parseFloat(d[(i+1)*3].substring(1)); e1=""+d[(i+1)*3+1]; t2[i]=d[(i+1)*3+1].substring(e1.length-1); v2[i]=parseFloat(d[(i+1)*3+1].substring(0,e1.length-1)); x[i]=(v1[i]+v2[i])/2; if (v1[i]>=v2[i]) { incorrecte("\\mbox{En l'interval } "+(i+1)+"\\mbox{ els extrems no estan ordenats.}");correcte=false;break; }; if (i>0){ if (t2[i-1]=="]" && t1[i]=="[") { incorrecte("\\mbox{L'interval } "+(i+1)+"\\mbox{ ha de começar amb (}");correcte=false;break; }; if (t2[i-1]==")" && t1[i]=="(") { incorrecte("\\mbox{L'interval } "+(i+1)+"\\mbox{ ha de começar amb [}");correcte=false;break; }; if (v2[i-1]!=v1[i]) { incorrecte("\\mbox{L'interval } "+(i+1)+"\\mbox{ ha de começar on finalitza l'interval anterior }");correcte=false; }; }; interval[i]=t1[i]+v1[i]+","+v2[i]+t2[i]; f[i]=parseInt(d[(i+1)*3+2]); if(f[i]==fmax) { mo+="\\mbox{"+interval[i]+" "+d[2]+", } "; }; if(f[i]>fmax) { mo="\\mbox{"+interval[i]+" "+d[2]+", } "; fmax=f[i]; }; sf+=f[i]; F[i]=sf; alt[i]=f[i]/(v2[i]-v1[i]); if (alt[i]>altmax){altmax=alt[i]}; }; if(!correcte){return;}; for (i=0;i<files;i++){ h[i]=f[i]/sf; hp[i]=100*h[i]; H[i]=F[i]/sf; Hp[i]=100*H[i]; a[i]=360*h[i]; A[i]=360*H[i]; xf[i]=x[i]*f[i]; sxf+=xf[i]; G[i]=sxf; // propietat acumulada relativa }; for (i=0;i<files;i++){ G[i]=G[i]/sxf; }; for (i=0;i<files;i++){ gini+=((H[i]-G[i])+(aH-aG))*(H[i]-aH); aH=H[i]; aG=G[i]; }; var mitjana=sxf/sf; for (i=0;i<files;i++){ fxx[i]=f[i]*(x[i]-mitjana)*(x[i]-mitjana); sfxx+=fxx[i]; fxxx[i]=fxx[i]*(x[i]-mitjana); sfxxx+=fxx[i]*(x[i]-mitjana); fxxxx[i]=fxx[i]*(x[i]-mitjana)*(x[i]-mitjana); sfxxxx+=fxx[i]*(x[i]-mitjana)*(x[i]-mitjana); }; var variancia=sfxx/(sf-mostra); //mostra=0 és població, mostra=1 és mostra var moment3=sfxxx/(sf-mostra); //mostra=0 és població, mostra=1 és mostra var moment4=sfxxxx/(sf-mostra); //mostra=0 és població, mostra=1 és mostra var destipica=Math.pow(variancia, 0.5); var cv=destipica/Math.abs(mitjana); var rang=v2[files-1]-v1[0]; var q1=0; var q2=0; var q3=0; var q=0; while(25>Hp[q]){q++;}; if (q==0){ q1=25*(v2[0]-v1[0])/Hp[0]+v1[0]; } else { q1=(25-Hp[q-1])*(v2[q]-v2[q-1])/(Hp[q]-Hp[q-1])+v2[q-1]; }; q=0; while(50>Hp[q]){q++;}; if (q==0){ q2=50*(v2[0]-v1[0])/Hp[0]+v1[0]; } else { q2=(50-Hp[q-1])*(v2[q]-v2[q-1])/(Hp[q]-Hp[q-1])+v2[q-1]; }; q=0; while(75>Hp[q]){q++;}; if (q==0){ q3=75*(v2[0]-v1[0])/Hp[0]+v1[0]; } else { q3=(75-Hp[q-1])*(v2[q]-v2[q-1])/(Hp[q]-Hp[q-1])+v2[q-1]; }; var RIQ=q3-q1; var Af=moment3/(Math.pow(destipica,3)); var Ap=3*(mitjana-q2)/destipica; var Ab=(q3+q1-2*q2)/(q3-q1); var curtosi=moment4/(Math.pow(destipica,4))-3; var tcurtosi="Distribució "+(curtosi<-0.1 ? "platicúrtica" : (curtosi>0.1 ? "leptocúrtica" : "mesocúrtica" ) ); var t="\\begin{array}{l} \\mbox{Estadística quantitativa contínua: "+d[1]+" } \\\\ "; if (mesdades==1){ t+=" \\begin{array}{l|r|r|r|r|r|r|r|r|r|r|r|r|r|r|} \\ "+mp('Interval')+" & "+mp('x')+"_i & "+mp('f')+"_i & "+mp('F')+"_i & "+mp('h')+"_i & "+mp('H')+"_i & "+mp('h')+"_i \\% & "+mp('H')+"_i \\% & "+mp('altura')+" & "+mp('a')+"_i & "+mp('A')+"_i & "+mp('x')+"_i "+mp('f')+"_i & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^2 & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^3 & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^4 \\ \\\\ "; } else { t+=" \\begin{array}{l|r|r|r|r|r|r|r|r|r|r|r|r|} \\ "+mp('Interval')+" & \\mbox{"+mp('x')+"}_\\mbox{i} & "+mp('f')+"_i & "+mp('F')+"_i & "+mp('h')+"_i & "+mp('H')+"_i & "+mp('h')+"_i \\% & "+mp('H')+"_i \\% & "+mp('altura')+" & "+mp('a')+"_i & "+mp('A')+"_i & "+mp('x')+"_i "+mp('f')+"_i & "+mp('f')+"_i("+mp('x')+"_i - "+mp('mitjana')+")^2 \\ \\\\ "; }; for (i=0;i<files;i++){ if(mesdades==1){ t+="\\hline \\ \\mbox{"+interval[i]+"} & "+x[i]+" & "+f[i]+" & "+F[i]+" & "+nd(h[i])+" & "+nd(H[i])+" & "+nd(hp[i])+" & "+nd(Hp[i])+" & "+nd(alt[i])+" & "+nd(a[i])+" & "+nd(A[i])+" & "+nd(xf[i])+" & "+nd(fxx[i])+" & "+nd(fxxx[i])+" & "+nd(fxxxx[i])+" \\ \\\\ "; } else { t+="\\hline \\ \\mbox{"+interval[i]+"} & "+x[i]+" & "+f[i]+" & "+F[i]+" & "+nd(h[i])+" & "+nd(H[i])+" & "+nd(hp[i])+" & "+nd(Hp[i])+" & "+nd(alt[i])+" & "+nd(a[i])+" & "+nd(A[i])+" & "+nd(xf[i])+" & "+nd(fxx[i])+" \\ \\\\ "; }; }; if (mesdades==1){ t+=" \\hline \\mbox{ } & \\mbox{ } & "+sf+" & \\mbox{ } & "+nd(1.0)+" & \\mbox{ } & "+nd(100.0)+" & \\mbox{ } & \\mbox{ } & "+nd(360.0)+" & \\mbox{ } & "+nd(sxf)+" & "+nd(sfxx)+" & "+nd(sfxxx)+" & "+nd(sfxxxx)+" \\ \\end{array} \\\\ "; } else { t+=" \\hline \\mbox{ } & \\mbox{ } & "+sf+" & \\mbox{ } & "+nd(1.0)+" & \\mbox{ } & "+nd(100.0)+" & \\mbox{ } & \\mbox{ } & "+nd(360.0)+" & \\mbox{ } & "+nd(sxf)+" & "+nd(sfxx)+" \\ \\end{array} \\\\ "; }; t+=mp('n')+"="+sf+",\\mbox{ } "+mp('Mo')+"= "+mo+" \\mbox{ } "+mp('mitjana')+"="+nd(mitjana)+" \\mbox{ "+d[2]+", } \\\\"; t+=mp('Q')+"_1= "+nd(q1)+" \\mbox{ "+d[2]+", } \\mbox{ } "+mp('Me')+"= "+nd(q2)+" \\mbox{ "+d[2]+", } \\mbox{ } "+mp('Q')+"_3= "+nd(q3)+" \\mbox{ "+d[2]+", } \\mbox{ } "+mp('RIQ')+"= "+nd(RIQ)+" \\mbox{ "+d[2]+", } \\\\"; t+=mp('Rang')+"= "+rang+" \\mbox{ "+d[2]+", } "+mp('desviacio')+"^2="+nd(variancia)+" \\mbox{ ("+d[2]+")}^2, \\ "+mp('desviacio')+"="+nd(destipica)+" \\mbox{ "+d[2]+"}, "+mp('CV')+"="+nd(cv)+" \\\\ "; if (mesdades==1){ t+="\\mbox{Coeficents d'asimetria }"+mp('A')+"_{Fisher}="+nd(Af)+"\\mbox{ }"+mp('A')+"_{Pearson}="+nd(Ap)+"\\mbox{ }"+mp('A')+"_{Bowley}="+nd(Ab)+" \\\\"; t+="\\mbox{Coeficent de curtosi }"+mp('g')+"="+nd(curtosi)+"\\mbox{ "+tcurtosi+"} \\\\"; t+="\\mbox{Coeficent de desdigualtat de Gini }"+mp('G')+"="+nd(gini)+" \\\\"; }; t+=mp('x')+"\\mbox{ marca de classe, }"+mp('f')+"\\mbox{ freqüència, }"+mp('h')+"\\mbox{ freqüència relativa, }"+mp('h')+"\\% \\mbox{ freqüència relativa en percentatge, }"+mp('a')+"\\mbox{ angle, }"+mp('A')+"\\mbox{ angle acumulat.} \\\\"; t+=mp('F')+"\\mbox{ freqüència acumulada }"+mp('H')+"\\mbox{ freqüència relativa acumulada }"+mp('H')+"\\% \\mbox{ freqüència relativa acumulada en percentatge.}"; t+=" \\end{array} "; ggbApplet.evalCommand('elsvalors:"'+t+'"'); t="llistaS={0"; for (i=0;i<files;i++){ t+=',"'+interval[i]+" "+d[2]+' '+hp[i].toFixed(1)+'%",'+A[i]; }; t+="}"; ggbApplet.evalCommand(t); t="llistaH={"+(v1[0]-0.1*rang)+","+(v2[files-1]+0.1*rang)+","+(1.1*altmax); for (i=0;i<files;i++){ t+=','+v1[i]+','+v2[i]+','+alt[i]+','+f[i]+',"'+hp[i].toFixed(1)+'%"'; }; t+="}"; ggbApplet.evalCommand(t); t="llistaP={"+(v1[0]-0.1*rang)+","+(v2[files-1]+0.1*rang)+","+v1[0]+","+0; for (i=0;i<files;i++){ t+=','+v2[i]+','+Hp[i]; }; t+="}"; ggbApplet.evalCommand(t); }; }