Como calcular a cobertura de 99% no Matlab?
-
24-09-2019 - |
Pergunta
Eu tenho uma matriz no MATLAB e preciso encontrar o valor de 99% para cada coluna. Em outras palavras, o valor tal que 99% da população tem um valor maior que ele. Existe uma função no Matlab para isso?
Solução
Use a função quantil.
Y = quantile(X,P);
onde x é uma matriz e p é escalar ou vetor de probabilidades. Por exemplo, se p = 0,01, o y será vetorial de valores para cada coluna, para que 99% dos valores da coluna sejam maiores.
Outras dicas
A solução mais simples é usar a função Quantil Como Yuk sugeriu.
Y = quantile(X,0.01);
No entanto, você precisará do Estatística caixa de ferramentas Para usar a função Quantil. Uma solução que não depende das caixas de ferramentas pode ser encontrada observando que Quantil chama a função Prctile, que em si chama a função interna Interp1q Para fazer o cálculo primário. Para o caso geral de uma matriz 2-D que não contém Nan Valores Você pode calcular os quantis de cada coluna usando o seguinte código:
P = 0.01; %# Your probability
S = sort(X); %# Sort the columns of your data X
N = size(X,1); %# The number of rows of X
Y = interp1q([0 (0.5:(N-0.5))./N 1]',S([1 1:N N],:),P); %'# Get the quantiles
Isso deve lhe dar os mesmos resultados que a chamada Quantil, sem precisar de caixas de ferramentas.
Se você não tem a caixa de ferramentas estatísticas, sempre há
y=sort(x);
y(floor(length(y)*0.99))
ou
y(floor(length(y)*0.01))
dependendo do que você quis dizer.