Vogel-Dobbener entropy - MATLAB Cody - MATLAB Central

Problem 44933. Vogel-Dobbener entropy

Difficulty:Rate

Vogel-Dobbener entropy is a measure of dispersion for ordinal variables.

Given an ordered list of distinct observations u_(1), ..., u_(k) with observed relative frequencies f_1, ..., f_k, the Vogel-Dobbener entropy is defined as

 VD = -(sum_{i=1}^{k-1} (F_i log2(F_i) + (1 - F_i) log2(1 - F_i))

where F_1, ... F_k are the cumulative relative frequences, i.e.

 F_i = sum_{j=1}^i f_i

The Vogel-Dobbener entropy of a sample satisfies 0 <= VD <= (k - 1); the normalized Vogel-Dobbener entropy is thus defined as

 VD* = VD / (k - 1)

For example, suppose that your sample is [2.7 3.3 2.0 3.3 1.7 3.7]. Then:

  • k = 5 (there are five distinct observations);
  • u_(1), ..., u_(k) = [1.7 2.0 2.7 3.3 3.7]; (note that 3.3 only appears once);
  • f_1, ..., f_k = [1/6 1/6 1/6 2/6 1/6];
  • F_1, ..., F_k = [1/6 2/6 3/6 5/6 6/6];
  • VD = 3.2183; (approx.)
  • VD* = 0.8046. (approx.)

Your task is to write a function that, given a list of observations (unordered and possibly containing duplicates) computes the normalized Vogel-Dobbener entropy VD* of the sample. Round to four decimal digits.

Hint: if all observations in the sample are the same, then k = 1, the sum in the definition of VD is empty, and VD equals zero.

Solution Stats

34.21% Correct | 65.79% Incorrect
Last Solution submitted on Apr 01, 2024

Problem Comments

Solution Comments

Show comments
Primes and Rough Numbers, Basic ideas
What is a rough number? What can they be used...
2
4

Problem Recent Solvers11

Suggested Problems

More from this Author17

Community Treasure Hunt

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

Start Hunting!
Go to top of page