Link¶
A link joins two univariate statistics as a sequence.
This can be used to pipe the output of one statistic to the input of another. This can be used, for instance, to calculate the mean of the variance of a variable. It can also be used to compute shifted statistics by piping statistics with an instance of stats.Shift
.
Note that a link is not meant to be instantiated via this class definition. Instead, users can link statistics together via the |
operator.
Parameters¶
-
left
Type → stats.base.Univariate
-
right
Type → stats.base.Univariate
The output from
left
'sget
method is passed toright
'supdate
method ifleft
'sget
method doesn't produceNone.
Attributes¶
- name
Examples¶
from river import stats
stat = stats.Shift(1) | stats.Mean()
No values have been seen, therefore get
defaults to the initial value of stats.Mean
,
which is 0.
stat.get()
0.
Let us now call update
.
stat.update(1)
The output from get
will still be 0. The reason is that stats.Shift
has not enough
values, and therefore outputs its default value, which is None
. The stats.Mean
instance is therefore not updated.
stat.get()
0.0
On the next call to update
, the stats.Shift
instance has seen enough values, and
therefore the mean can be updated. The mean is therefore equal to 1, because that's the
only value from the past.
stat.update(3)
stat.get()
1.0
On the subsequent call to update, the mean will be updated with the value 3.
stat.update(4)
stat.get()
2.0
Note that composing statistics returns a new statistic with its own name.
stat.name
'mean_of_shift_1'
Methods¶
get
Return the current value of the statistic.
update
Update the called instance.
Parameters
- x — 'numbers.Number'