Matlab - Buscar objetivo como en excel en MATLAB

 
Vista:
sin imagen de perfil
Val: 54
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar objetivo como en excel en MATLAB

Publicado por Milena (30 intervenciones) el 01/09/2020 18:38:32
Buenos días, tengo una consulta..
si por ejemplo tengo el siguiente vector columna y su coeficiente de asimetría:

1
2
Serie=[36.9;22.1;43.2;128.5;135.7;61.7;96.6;58.9;31.8;52.5;70.6;108.2;173.5;257.8;47.5;124.9;70.2;80.5;260.6];
Coe_asim=skewness(datos_entrada,0);

Necesito que el coeficiente de asimetría sea cercano a cero.. y lo hago con un coeficiente landa:

1
Serie2 = (Serie.^landa)-1)./landa

En excel, si le doy buscar objetivo, me dice que landa es igual a -0.083 para que el nuevo coeficiente de asimetría de la Serie2 sea -0,0001060... Cómo hago este procedimiento en MATLAB? se puede?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 54
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar objetivo como en excel en MATLAB

Publicado por Milena (30 intervenciones) el 01/09/2020 21:35:54
Gracias por tu respuesta,
Estaba mirando como funciona, pero dentro de la función no estaría especificado que el coeficiente de asimetría debe dar cerca a cero, no se como incluir esta condición, dado que la obtengo hasta completar todos los datos con el landa que se itera
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 54
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar objetivo como en excel en MATLAB

Publicado por Milena (30 intervenciones) el 01/09/2020 22:16:33
Lo logré solucionar así:

1
2
3
4
5
6
7
8
9
function f = Paso1_BoxCox(x)
datos_entrada=[36.9;22.1;43.2;128.5;135.7;61.7;96.6;58.9;31.8;52.5;70.6;108.2;173.5;257.8;47.5;124.9;70.2;80.5;260.6];
 
f = 0;
for k = -20:20
    Ec=((datos_entrada.^x)-1)./x;
    f = f + skewness(Ec,0);
end
end


1
2
Landa_ini=0.1;
Landa=fsolve(@Paso1_BoxCox,Landa_ini)

Hay manera de incluir en el fsolve el vector "datos de entrada" ? Es que no siempre será el mismo, como para tenerlo dentro de la función
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Buscar objetivo como en excel en MATLAB

Publicado por Daniel (354 intervenciones) el 02/09/2020 09:49:13
Hola,

fsolve es para reslver sistema de ecuaciones no lineales, fminsearch es para buscar un resultado.

Lo que hay que hacer es una función que devuelva una medida del error para que esta la miminize, algo como:

1
fminsearch(@(x) abs(Paso1_BoxCox(x) - 3), datos)

lo que buscará el valor de x para que el resultado de Paso1_BoxCox se 3.

Saludos,
Daniel Rodríguez
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar