Percentile of a value based on array of data (2024)

86 Ansichten (letzte 30 Tage)

Ältere Kommentare anzeigen

Maximzzz am 8 Mär. 2015

  • Verknüpfen

    Direkter Link zu dieser Frage

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data

  • Verknüpfen

    Direkter Link zu dieser Frage

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data

Kommentiert: Thomas Possidente am 1 Dez. 2021

Akzeptierte Antwort: David Young

Hello!

I have an array with historical data and would like to know where an exogenous variable fits in this array using percentile.

Let's assume a vector with 1:1000 and 950 as a given, the function should return 95%.

It would be possible to create a function to do the task, but maybe matlab has a built-in function to do this ?

Thanks a lot, Max.

0 Kommentare

-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Melden Sie sich an, um diese Frage zu beantworten.

Akzeptierte Antwort

David Young am 8 Mär. 2015

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#answer_170548

Bearbeitet: David Young am 8 Mär. 2015

In MATLAB Online öffnen

% Test data

historicalData = rand(1000, 1);

exogenousVariable = 0.7;

% Compute centile

nless = sum(historicalData < exogenousVariable);

nequal = sum(historicalData == exogenousVariable);

centile = 100 * (nless + 0.5*nequal) / length(historicalData);

This actually computes 94.95 rather than 95 for your example, because the test value is equal to one of the data points. You can round to the nearest whole number or to any other number of significant figures using the round function.

2 Kommentare

Keine anzeigenKeine ausblenden

Maximzzz am 8 Mär. 2015

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#comment_270675

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#comment_270675

In MATLAB Online öffnen

Hello, thanks for your answer! After some research on my own I came up with another solution

function x = comp_percentile(datas,value)

perc = prctile(datas,1:100);

[c index] = min(abs(perc'-value));

x = index+1;

end

Thomas Possidente am 1 Dez. 2021

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#comment_1863640

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#comment_1863640

In MATLAB Online öffnen

Note that the original answer by David Young is more robust than the version in OP's comment. The version in OP's comment will only give percentile answers to the nearest integer percent. Additionally, David Young's answer can be easily modified to perform the operations on multiple exogenousVariables at once like so -

function centile = comp_percentile(data,value)

data = data(:)';

value = value(:);

nless = sum(data < value, 2);

nequal = sum(data == value, 2);

centile = 100 * (nless + 0.5.*nequal) / length(data);

end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

the cyclist am 8 Mär. 2015

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#answer_170533

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#answer_170533

In MATLAB Online öffnen

Sounds like you want the prctile function.

You could have found this yourself by typing

docsearch percentile

at the command prompt.

1 Kommentar

-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Maximzzz am 8 Mär. 2015

Direkter Link zu diesem Kommentar

https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#comment_270673

  • Verknüpfen

    Direkter Link zu diesem Kommentar

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#comment_270673

Thank you for your answer!

If I am correct, prctile returns the value of a certain percentile (i.e. returns the value for the 42nd percentile) ? I would like juste the contrary, given a value I would like to know the closest percentile related to that value.

Melden Sie sich an, um zu kommentieren.

the cyclist am 8 Mär. 2015

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#answer_170559

  • Verknüpfen

    Direkter Link zu dieser Antwort

    https://de.mathworks.com/matlabcentral/answers/182131-percentile-of-a-value-based-on-array-of-data#answer_170559

This is the inverse of the percentile function, right? There is not a built-in function for that, as far as I know. There are a few contributions in the File Exchange. (They show up if you google the keywords inverse percentile matlab .) Here is one example.

0 Kommentare

-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

Melden Sie sich an, um diese Frage zu beantworten.

Siehe auch

Kategorien

MATLABData Import and AnalysisDescriptive Statistics

Mehr zu Descriptive Statistics finden Sie in Help Center und File Exchange

Tags

  • percentile
  • rank

Produkte

  • MATLAB

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Es ist ein Fehler aufgetreten

Da Änderungen an der Seite vorgenommen wurden, kann diese Aktion nicht abgeschlossen werden. Laden Sie die Seite neu, um sie im aktualisierten Zustand anzuzeigen.


Translated by Percentile of a value based on array of data (8)

Percentile of a value based on array of data (9)

Website auswählen

Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .

Sie können auch eine Website aus der folgenden Liste auswählen:

Amerika

  • América Latina (Español)
  • Canada (English)
  • United States (English)

Europa

  • Belgium (English)
  • Denmark (English)
  • Deutschland (Deutsch)
  • España (Español)
  • Finland (English)
  • France (Français)
  • Ireland (English)
  • Italia (Italiano)
  • Luxembourg (English)
  • Netherlands (English)
  • Norway (English)
  • Österreich (Deutsch)
  • Portugal (English)
  • Sweden (English)
  • Switzerland
    • Deutsch
    • English
    • Français
  • United Kingdom(English)

Asien-Pazifik

Kontakt zu Ihrer lokalen Niederlassung

Percentile of a value based on array of data (2024)
Top Articles
Latest Posts
Article information

Author: Tuan Roob DDS

Last Updated:

Views: 5813

Rating: 4.1 / 5 (62 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Tuan Roob DDS

Birthday: 1999-11-20

Address: Suite 592 642 Pfannerstill Island, South Keila, LA 74970-3076

Phone: +9617721773649

Job: Marketing Producer

Hobby: Skydiving, Flag Football, Knitting, Running, Lego building, Hunting, Juggling

Introduction: My name is Tuan Roob DDS, I am a friendly, good, energetic, faithful, fantastic, gentle, enchanting person who loves writing and wants to share my knowledge and understanding with you.