1
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
Laboratorio Nº 1
(Conociendo el Matlab)
PARTE 1: FUNCIONES BÁSICAS
1.
H
ALLE EL PERCENTIL
25,
50
Y
75
PARA CADA UNA DE LAS COLUMNAS DE LA MATRIZ GENERADO POR
LA FUNCIÓN MAGIC
(5),
SE TIENE QUE TENER POR RESULTADO OTRA MATRIZ QUE ALMACENE LOS
PERCENTILES DE TAL FORMA QUE LA MATRIZ SEA DE ORDEN
3
X
5.
>> x=magic(5) x =
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
>> y = prctile(x,[25 50 75]) y =
8.5000 5.7500 5.5000 6.5000 7.5000 11.0000 12.0000 13.0000 14.0000 15.0000 18.5000 19.5000 20.5000 20.2500 17.5000
2.
H
ALLE LA MEDIA GEOMÉTRICA DE LOS NÚMEROS ALEATORIOS GENERADOS POR LA FUNCIÓN POR LA
FUNCIÓN EXPRND
(1,5,1).
>> x=exprnd(1,1,5) x =
0.3187 1.1735 0.1761 0.5655 0.9931
>> geomean(x) ans =
0.5172
3.
H
ALLE LA MEDIA HARMÓNICA DE LOS NÚMEROS ALEATORIOS GENERADOS POR LA FUNCIÓN
BETARND
(10,10,[1
10]).
>> x=betarnd(10,1,[1 10]) x =
0.9760 0.8894 0.8518 0.8208 0.8525 0.9771 0.9098 0.9812 0.8703 0.9379
>> harmmean(x) ans =
2
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
4.
H
ALLE LA MEDIA TRUNCADA PARA LOS NÚMEROS ALEATORIOS GENERADOS POR LA FUNCIÓN
CHI
2
RND
(2,15,1).
>> x=chi2rnd(2,15,1)
x =
1.5363 1.9163 5.3526 0.8384 2.6320 3.1101 3.5355 0.2808 1.7104 1.7607 0.2719 0.4516 3.9966 1.1299 2.0767
>> trim = trimmean(x,10)
trim =
1.9212
5.
H
ALLE EL RANGO INTERCUARTILICO PARA LOS NÚMEROS ALEATORIOS GENERADOS POR LA FUNCIÓN
NORMRND
(0,1,10,1).
>> x=normrnd(0,1,10,1)
x =
-2.2023 0.9863 -0.5186 0.3274 0.2341 0.0215 -1.0039 -0.9471 -0.3744 -1.1859
>> RI=iqr(x)
RI =
1.2380
3
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
>> x=poissrnd(1,10,1) x =
0 0 1 2 2 1 0 2 1 0
>> Rango=range(x)
Rango =
2
7.
H
ALLE LA TABLA DE FRECUENCIA DE LOS NÚMEROS ALEATORIOS GENERADOS POR LA FUNCIÓN
BINORND
(30,0.2,8,1).
>> x=binornd(30,0.2,8,1) x =
4 8 6 6 4 6 4 6
>> tabulate(x)
Value Count Percent 1 0 0.00% 2 0 0.00% 3 0 0.00% 4 3 37.50% 5 0 0.00% 6 4 50.00% 7 0 0.00% 8 1 12.50%
4
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
>> load fisheriris >> x1=meas(:,1) >> cov(x1)
9.
H
ALLAR LA CORRELACIÓN DE
S
PERMAN PARA LOS SIGUIENTES DATOS
:
10.
C
ARGAR LA BASE DE DATOS DEL
M
ATLAB DE NOMBRE
“
CARSMALL
”
Y LUEGO HACER UNA DIAGRAMA DE
CAJAS DE LA VARIABLE KILOMETRAJE DEL CARRO
(MPG)
AGRUPADO POR LA VARIABLE
O
RIGEN
(O
RIGIN
).
>> load carsmall >> boxplot(MPG, Origin)
PARTE 2: EJERCICIOS VARIOS
1.
G
ENERE UNA SECUENCIA DE NÚMEROS DEL
1
AL
50.
n=input('Cuantos números desea generar: '); p=0;
CI (Coeficiente
intelectual de una
persona)
Xi
Horas de TV a la
semana
Yi
106
7
86
0
100
28
100
50
99
28
103
28
97
20
113
12
113
7
x=input('Ingrese x='); y=input('Ingrese y=');
%x=[106 86 10 100 99 103 97 113 113]; %y=[7 0 28 50 28 28 20 12 7]; [m n]=size(x); xord1=sort(x); yord1=sort(y); for i=1:n xord2(i)=xord1(n-(i-1)); yord2(i)=yord1(n-(i-1)); end for j=1:n for i=1:n if x(j)==xord2(i) rangox(j)=i; end end end for j=1:n for i=1:n if y(j)==yord2(i) rangoy(j)=i; end end end d=rangox-rangoy; d2=d.^2; r=1-(6*sum(d2)/(n*(n^2-1)));
fprintf('Correlación de Spearman r =%8.4f \n',r)
USA France Japan Germany Sweden Italy
5
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
for i=1:1:n p=p+1; x=p end
2.
G
ENERE
20
NÚMEROS DE UNA PROGRESIÓN ARITMÉTICA DE RAZÓN
5,
CUYO NÚMERO INICIAL SEA
9.
r=9;
for i=1:20 x(i)=r r=r+5;
end
3.
M
UESTRE EN PANTALLA LOS PRIMEROS
10
NÚMEROS PARES
.
n=input('Cuantos números pares desea generar: ') c=0;
for i=1:1:n c=c+2; x=c
end
4.
G
ENERE
10
NÚMEROS ALEATORIOS DE UNA DISTRIBUCIÓN
U(1,3).
>> X = random('Uniform',1,3,10,1) X =
2.2412 2.9034 2.2800 1.4947 1.7054 1.3757 1.9813 1.8185 1.9271 2.2219
5.
G
ENERE
5
GRUPOS DE NÚMEROS ALEATORIAS QUE PROVENGAN DE UNA DISTRIBUCIÓN NORMAL
ESTÁNDAR CON
10
OBSERVACIONES
.
>> N = random('normal',0,1,5,10)
N =
-1.0559 -1.1283 0.6565 -1.3194 0.2316 1.1380 -0.8436 -0.2463 -0.0653 -0.0793 1.4725 -1.3493 -1.1678 0.9312 -0.9898 -0.6841 0.4978 0.6630 0.4853 1.5352 0.0557 -0.2611 -0.4606 0.0112 1.3396 -1.2919 1.4885 -0.8542 -0.5955 -0.6065 -1.2173 0.9535 -0.2624 -0.6451 0.2895 -0.0729 -0.5465 -1.2013 -0.1497 -1.3474 -0.0412 0.1286 -1.2132 0.8057 1.4789 -0.3306 -0.8468 -0.1199 -0.4348 0.4694
6.
G
ENERE
20
NÚMEROS ALEATORIOS DE DISTRIBUCIÓN NORMAL CON MEDIA
3
Y DESVIACIÓN ESTÁNDAR
4.
>> N = random('normal',3,4,1,20)
6
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
Columns 1 through 13
-0.6143 3.1435 0.4899 5.1416 5.2115 2.1852 -5.2173 3.5302 9.3718 7.0736 -3.3216 2.6854 0.2734 Columns 14 through 20
-1.0982 -1.9374 4.1552 1.2828 3.2232 1.5285 1.1401
7.
G
ENERE
10
NÚMEROS ALEATORIOS DE DISTRIBUCIÓN CHI CUADRADO CON
4
GRADOS DE LIBERTAD
.
>> N = random('chisquare',4,10,1)
N =
0.8578 10.3108 4.2465 1.1984 5.2053 7.8043 1.5137 3.6947 2.9871 1.1414
8.
C
ON LOS SIGUIENTE DATOS
:
22,
25,
16,
21,
20,
24,
29,
27,
27,
28,
29,
24,
22,
21,
22,
24,
26,
29,
29,
29,
25,
16,
18,
20,
35,
36,
31,
30,
40,
19,
18,
20,
30,
22,
21,
22,
23,
23,
29.
D
ETERMINE
LA
MEDIA
ARITMÉTICA
,
LA
MEDIANA
,
PRIMER
CUARTIL
,
TERCER
CUARTIL
.
x=input('Ingrese el conjunto de datos x=');
%x=[22 25 16 21 20 24 29 27 27 28 29 24 22 21 22 24 26 29 29 29 25 16 18 20 35 36 31 30 40 19 18 20 30 22 21 22 23 23 29]; [m n]=size(x);
media=mean(x); mediana=median(x); cuartil1=prctile(x,25); cuartil3=prctile(x,75);
fprintf('Media aritmética =%8.4f \n',media); fprintf('Mediana =%8.4f \n',mediana); fprintf('Primer cuartil =%8.4f \n',cuartil1); fprintf('Tercer cuartil =%8.4f \n',cuartil3);
9.
I
MPORTE LOS DATOS FAITHFUL QUE VIENE INCORPORADO EN EL
R,
LA BASE DE DATOS FAITHFUL
CONTIENE INFORMACIÓN ACERCA DE LA DURACIÓN DE ERUPCIONES DE UN FAMOSO GEISER Y EL
TIEMPO TRANSCURRIDO ENTRE CADA ERUPCIÓN
.
7
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
C
.
D
ETERMINE EL TIEMPO MÍNIMO Y MÁXIMO DE LA VARIABLE TIEMPO TRANSCURRIDO ENTRE
CADA ERUPCIÓN
D
.
D
ETERMINE LE DESVIACIÓN ESTÁNDAR Y LA VARIANZA DURACIÓN DE LAS ERUPCIONES
E
.
D
ETERMINE LA CORRELACIÓN ENTRE LA DURACIÓN DE LA ERUPCIÓN Y EL TIEMPO DE ESPERA
ENTRE ERUPCIONES
.
1º Exportar data del R a txt. :
data() faithful attach(faithful)
erupciones<-data.frame(faithful)
write.table(erupciones,file="erupciones.txt",col.names=TRUE,eol="\r\n")
2º Importamos data de txt. a Matlab
3º Solución en Matlab
erupciones;
cor=corrcoef(erupciones(:,1),erupciones(:,2));
fprintf('Duración promedio de las erupciones =%8.4f \n',mean(erupciones(:,1))); fprintf('Mediana de la duración de las erupciones =%8.4f \n',median(erupciones(:,1))); fprintf('Tiempo mínimo transcurrido entre cada erupción =%8.4f \n',min(erupciones(:,2))); fprintf('Tiempo máximo transcurrido entre cada erupción =%8.4f \n',max(erupciones(:,2))); fprintf('Desviación estandar de la duración de las erupciones =%8.4f \n',std(erupciones(:,1))); fprintf('Varianza de la duración de las erupciones =%8.4f \n',var(erupciones(:,1)));
fprintf('Correlación entre la duración de la erupción y el tiempo de espera entre erupciones =%8.4f \n',cor(1,2));
PARTE 3: GRAFICACIÓN
8
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
a)
F
(
X
)=5-4
X
-
X
2,
[-6,2]
b)
F
(
X
)=2
X
2-8
X
-11
,
[-1,5]
c)
F
(
X
)= e
-0.1tsin(2x), [0,4π]
disp('f(x)=5-4x-x2');
x1=input('Ingrese los valores de x='); %x1=-6:0.1:1;
f1=5-4*x1-x1.^2
('f(x)=2x2-8x-11');
x2=input('Ingrese los valores de x='); %x2=-1:0.1:5;
f2=2*(x2.^2)-8*x2-11
disp('exp(-0.1t)sin(2x)');
x3=input('Ingrese los valores de x='); t=input('Ingrese el valor de t='); %x3=0:pi/100:4*pi;
f3=exp(-0.1*t)*sin(2*x3)
subplot(2,2,1),plot(x1,f1,'r'),xlabel('x'),ylabel('f(x)'),,title('f(x)=5-4x-x2') subplot(2,2,2),plot(x2,f2,'b'),xlabel('x'),ylabel('f(x)'),,title('f(x)=2x2-8x-11') subplot(2,2,3),plot(x3,f3,'m'),xlabel('x'),ylabel('f(x)'),,title('f(x)=exp(-0.1t)sin(2x)')
PARTE 4: PROGRAMACIÓN
-6 -4 -2 0 2
-10 -5 0 5 10
x
f(
x
)
f(x)=5-4x-x2
-2 0 2 4 6
-20 -15 -10 -5 0
x
f(
x
)
f(x)=2x2-8x-11
0 5 10 15
-1 -0.5 0 0.5 1
x
f(
x
)
9
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
1.
E
LABORAR UN PROGRAMA QUE CALCULE LA MEDIA ARITMÉTICA DE UN CONJUNTO DE DATOS
,
LOS DATOS
DEBEN ESTAR REPRESENTADOS EN UNA MATRIZ COLUMNA
.
n=input('ingrese la cantidad de datos=') x=round(n*rand(n,1))
x1=mean(x);
fprintf('La media es =%8.4f \n',x1)
2.
E
LABORAR UN PROGRAMA QUE CALCULE EL PERCENTIL
25
Y
75
DE UN CONJUNTO DE DATOS DISCRETOS
NO AGRUPADOS
,
LOS DATOS PUEDEN SER DE UN ARCHIVO DE TEXTO O SE INGRESAN CUANDO TE LOS
PIDA EL PROGRAMA
.
clear clc
z=input('Ingrese sus datos: ') Q1=median(z(find(z<median(z)))); Q3=median(z(find(z>median(z)))); disp('El percentil 25 es : ') Q1
disp('El percentil 75 es : ') Q3
3.
E
LABORAR UN PROGRAMA QUE TE SOLICITE INGRESAR LA CANTIDAD DE DATOS Y LUEGO INGRESAR UNO A
UNO LOS DATOS
,
FINALMENTE CALCULAR LA DESVIACIÓN ESTÁNDAR
.
n=input('Ingrese el valor de n =') r=0;
s2=0; for i=1:n
x=input('ingrese dato =') s1=x^2;
s2=s2+x; r=r+s1;
end
ds=sqrt((r-n*(s2/n)^2)/(n-1))
4.
E
LABORAR UN PROGRAMA QUE CALCULE LA MEDIANA
,
POR EJEMPLO PARA LOS SIGUIENTES DATOS QUE
HAN SIDO AGRUPADOS EN LA TABLA QUE SE MUESTRA ABAJO
.
10
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
n=40
x=[6.75,6.5,7.25,7,7.25,7,6.5,6.7,6.7,6.75,7,6.5,6,6.5,6.25,6.75,6.25,6.75,6.75,6.25,6.5,6.25,6,6.25,7,6.50,6.5,6.75,6.65,6.75,7.15,6.6 5,6.75,6.75,7,7,7,7.1,7.1,7.15];
for i=1:40;
if (x(1,i)>5.97)&(x(1,i)<6.18); z(i)=1;
end i=i+1; end for i=1:40;
if (x(1,i)>6.19)&(x(1,i)<6.4) z(i)=2;
end i=i+1; end for i=1:40;
if (x(1,i)>6.41)&(x(1,i)<6.62); z(i)=3;
end i=i+1; end for i=1:40;
if (x(1,i)>6.63)&(x(1,i)<6.84); z(i)=4;
end i=i+1; end for i=1:40;
if (x(1,i)>6.85)&(x(1,i)<7.06); z(i)=5;
end i=i+1; end for i=1:40;
if (x(1,i)>7.07)&(x(1,i)<7.28); z(i)=6;
end i=i+1;
end
frecuencia=tabulate(z) frecuencia1=frec(:,2)
f_acum=[frecuencia1(1,1);frecuencia1(1,1)+frecuencia1(2,1); frecuencia1(1,1)+frecuencia1(2,1)+frecuencia1(3,1);
frecuencia1(1,1)+frecuencia1(2,1)+frecuencia1(3,1)+frecuencia1(4,1);
frecuencia1(1,1)+frecuencia1(2,1)+frecuencia1(3,1)+frecuencia1(4,1)+frecuencia1(5,1);
frecuencia1(1,1)+frecuencia1(2,1)+frecuencia1(3,1)+frecuencia1(4,1)+frecuencia1(5,1)+frecuencia1(6,1)]
F1=f_acum(3,1) F2=f_acum(4,1)
Mediana= 6.63+((n/2-F1)/(n/2 - F2))*0.21
11
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
x=[6.75 6.5 7.25 7 7.25 7 6.5 6.7 6.7 6.75 7 6.5 6 6.5 6.25 6.75 6.25 6.75 6.75 6.25 6.5 6.25 6 6.25 6 6.25 7 6.5 6.5 6.75 6.65 6.75 7.15 6.65 6.75 6.75 7 7 7 7.1 7.1 7.15 ];
v= sort(x); mod=zeros(1,12); for i=1:40 cont=0; for j=1:40 if v(i)== v(j) cont=cont+1; end
mod(i)= cont; end
end
mayor=max(mod); for i= 1:40 if mod(i)== mayor v(i)
end end
6.
E
SCRIBA UN PROGRAMA QUE
,
TRAS PEDIR AL USUARIO UN NÚMERO LE INFORME DE SI ES PAR
,
IMPAR O
NO ENTERO
.
x=input('Ingrese el número ='); dif=x-floor(x);
if dif==0 if mod(x,2)==0
disp('El número ingresado es par'); else
disp('El número ingresado es impar'); end
else
disp('El número ingresado no es entero'); end
7.
E
SCRIBA UN PROGRAMA QUE PERMITA IDENTIFICAR SI UN NÚMERO ES PRIMO O NO
,
Y SI LO ES QUE
SALGA QUE APAREZCA UN MENSAJE DICIENDO
“E
STE NÚMERO ES PRIMO
”.
n=input('Ingresar un numero : '); i=2;
primo=1; while i<=sqrt(n)
if rem(n,i)==0 % Resto de dividir n entre i primo=0;
break end i=i+1; end if primo
disp('El número dado es primo') else
disp('El número dado no es primo') end
8.
E
SCRIBA UN PROGRAMA QUE CALCULE EL FACTORIAL DE UN NÚMERO
.
12
LABORATORIO 1 – ESTADISTICA COMPUTACIONAL
n=input('Ingrese el numero =') if n==0
fac=1; else for i=1:n fac=fac*i; end