Matlab dibuja el coeficiente de Gini y dibuja la curva de Lorentz

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
El significado es: ordenar los ingresos de todas las personas (suponiendo exactamente 100 personas) de pequeño a grande, y luego comenzar a acumular desde el menor ingreso Para cada persona, la abscisa es la relación del valor acumulado del número de personas al número total de personas, y la ordenada es el valor acumulado de la renta Porcentaje de renta bruta, hasta el último que más gana.

Obviamente, la abscisa y la ordenada en la figura están entre [0-1]. Conectar la esquina inferior izquierda y la esquina superior derecha de la figura significa que la proporción acumulada del número de personas siempre es igual a la proporción acumulada de ingresos, lo que significa que los ingresos son completamente iguales.

Bueno, el área entre la línea anterior de ingreso igual para todos y la curva de ingreso real es A, y el área entre la curva de ingreso real y el eje X es B.
codigo matlab

%x1=0:0.1:1;
%总人口 7681520041
%总收入 1313967.445亿元
%a1=xlsread('C:\Users\zh128\Desktop\update_NY.GNP.xls',1,'C5:C195');
%a2=xlsread('C:\Users\zh128\Desktop\update_NY.GNP.xls',2,'D1:D192');
%a3=xlsread('C:\Users\zh128\Desktop\update_NY.GNP.xls',2,'E1:E192');
a1=xlsread('C:\Users\zh128\Desktop\update_NY.GNP.xls',1,'C5:C195');
a2=xlsread('C:\Users\zh128\Desktop\update_NY.GNP.xls',3,'D1:D192');
a3=xlsread('C:\Users\zh128\Desktop\update_NY.GNP.xls',3,'E1:E192');
a2=a2./7681520041;
x1=a2';

x2=0:0.001:1;%作为拟合数据使用
a3=a3./1313967.445;
t=a3';%收入数百分比

xlen=length(x1);

y=zeros(1,xlen);
x0=zeros(1,xlen);
for i=1:xlen

y(i)=sum(t(1:i));

end

for i=1:xlen

x0(i)=sum(x1(1:i));

end


% c=polyfit(x1,y,7);

c=fit(x0',y','smoothingspline');

%d=polyval(c,x2);

d=c(x2);

%plot([0,1],[0,1],x1,y,['-'])

plot(x0,x0,'b-.',x0,y,'*',x2,d,'-')

title('Lorenz Curve')

xlabel('Cumulative percentage of population'),ylabel('Cumulative revenue percentage')

axis equal

axis([0,1,0,1])

grid on

%计算基尼系数

area1=trapz(x2,d);

area2=trapz(x0,x0);

JN=(area2-area1)/area2;

disp(['Gini coefficient of national income=',num2str(JN)])


Supongo que te gusta

Origin blog.csdn.net/david2000999/article/details/123017727
Recomendado
Clasificación