MATLAB Answers

how do I write variance in percentage?

16 views (last 30 days)
edo nissim
edo nissim on 19 Jan 2020
Edited: John D'Errico on 19 Jan 2020
Hi.
I know how to get a variance in matlab, but I want it to be written as a percentage.
how do I convert the variance that I got to percentage writting way?

  0 Comments

Sign in to comment.

Answers (2)

Cameron B
Cameron B on 19 Jan 2020
Edited: Cameron B on 19 Jan 2020
You would probably use the coefficient of variation. Coefficient of variation is the standard deviation divided by the mean and it’s units are in percent. And because variance is just the standard deviation squared, we only need to calculate the average now. So for you it would be something like this
%lets assume you calculated the variance of some variable x called var_x
CoV_x = 100*sqrt(var_x)/mean(x);

  2 Comments

edo nissim
edo nissim on 19 Jan 2020
so, if i used the function:
x = fitdist(radii, 'Normal');
v = var(x)
now i need to write:
cov_v = sqrt(v)/mean(x);
or
cov_v = sqrt(v)/mean(radii);
?
(radii includes all the numbers, which I do the variance on those)
thank you!
Cameron B
Cameron B on 19 Jan 2020
I’d use
%assuming x is your variable
CoV_x = 100*std(x)/mean(x); %this is in units of percentage

Sign in to comment.


John D'Errico
John D'Errico on 19 Jan 2020
Edited: John D'Errico on 19 Jan 2020
A percentage of what? Percentage always implies you are comparing one number to another. That is, suppose you have some variable X, where X has units U_x (whatever are the units on X, perhaps feet or meters, etc.). The variance of X has units of U_x^2, thus feet^2, meters^2, etc. As such, you cannot compare the variance of X to X directly as a percentage.
Why cannot you do that? Because percentages must always be unit-less. That is, lacking any units at all. This is important, because you could always do a unit conversion on X, converting meters to centimeters, perhaps. The result of doing so is the ratio of var(X)/X now has units, and that ratio will depend on the units of X. Again, that would be meaningless.
What can you do? You might compare two variances. Thus compare the variance of X to the variance of Y, where both X and Y have the same units. Now it makes sense to consider the two in comprison, and I could talk about var(X)/var(Y)*100. So now we would indeed have a true percentage.
But my point is, you need to remember that a valid percentage always lacks units.
What else can you do? You can think of a standard deviation in a percentage sense. Thus, it makes sense to think about the standard deviation of X relative to the value of X itself (or perhaps, the mean of X.) That is, something like std(X)/mean(X)*100 is a unitless parameter, where we can talk about how large that standard deviation is compared to X itself. Why does this work, when it fails with the variance? It works, because that percentage stays identically the same under a change of units. That is, change the units on X from meters to centimeters, and the ratio std(X)/mean(X)*100 will be mathematically the same value. This is why things like a coefficient of variation make sense mathematically. For that matter, a correlation coefficient is already in a ratio form, lacking any units at all.
Just for kicks, lets try an example:
Xm = rand(1,10); % assume that Xm has units of meters.
Xcm = Xm*100; % Xcm has units of centimeters
std(Xcm)./mean(Xcm)*100
ans =
50.1117
std(Xm)./mean(Xm)*100
ans =
50.1117
The percentage here is thus an invariant under change of units, as it should be. That will not be true if we look at a ratio of the variance to the mean. And no such computation should ever vary, regardless if we used a ruler to make our measurements based on meters, inches, or for that matter, furlongs.
As I suggested above, variance ratios still work nicely in this context. That is, suppose Xm and Ym were measured in meters. But had we changed the ruler to read out in centimeters, then the computations:
var(Xm)/var(Ym)*100
var(Xm*100)/var(Ym*100)*100
are mathematically the same. It matters not what variation of ruler we use. Percentage is a unitless parameter.

  0 Comments

Sign in to comment.

Sign in to answer this question.