Virtual Age
Compute the virtual age of the system, according to the quality of the
intervention system (summarized in the rejuvenation parameter q) and
the previous history of the system itself (reflected in current_virtual_age).
Further, the mixed virtual age function from Ferreira et al. (2015) is considered,
leading to a linear combination of Kijima Type I and Type II virtual age models.
Parameters:
| Name |
Type |
Description |
Default |
propagation |
|
float
Reflects the weight between Kijima Type I and Kijima Type II virtual age models
intrinsic to the last intervention. 0 <= propagation <= 1 such that
propagation = 1 leads to Kijima Type I and propagation = 0 leads to Kijima Type II.
|
required
|
q |
|
float
The rejuvenation parameter. It allows one to study the quality of the intervention system.
If q = 0, one has the Weibull-based Renewal Process - RP (in which each intervention
usually brings the system to an 'as good as new' - AGAN condition). If q = 1,
one has the Weibull-based Non-Homogeneous Poisson Process - NHPP (in which each
intervention usually brings the system to an 'as bad as old' - ABAO condition). On the other hand,
if b > 1, then 0 < q < 1 might reflect that each intervention usually brings the system
to an intermediate condition, between AGAN and ABAO. Further, either b < 1 and q > 1
or b > 1 and q < 0 might reflect the situations in which each intervention usually
brings the system to a 'better than in its beginning' condition.
|
required
|
current_virtual_age |
|
float
The value of the virtual age underlying the system, reflecting its condition
previously to x. If current_virtual_age is not determined, then it is assumed
that the system is new, i.e. current_virtual_age = 0.
|
0
|
x |
|
float
The time since the last intervention.
|
0
|
Returns:
| Type |
Description |
dict
|
A dictionary containing:
'propagation': The input weight propagation
'virtual_age': The virtual age of the system at time x
|
Examples:
>>> virtual_age(propagation=0.5, q=0.8, current_virtual_age=2, x=3)
{'propagation': 0.5, 'virtualAge': 4.2}
References
Ferreira RJ, Firmino PRA, Cristino CT (2015):
A Mixed Kijima Model Using the Weibull-Based Generalized Renewal Processes.
PLoS ONE, 10(7), e0133772.
https://doi.org/10.1371/journal.pone.0133772
Source code in wgrp/virtual_ages.py
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 | def virtual_age(propagation, q, current_virtual_age=0, x=0) -> dict:
"""
Virtual Age:
Compute the virtual age of the system, according to the quality of the
intervention system (summarized in the rejuvenation parameter `q`) and
the previous history of the system itself (reflected in `current_virtual_age`).
Further, the mixed virtual age function from Ferreira et al. (2015) is considered,
leading to a linear combination of Kijima Type I and Type II virtual age models.
Parameters:
propagation : float
Reflects the weight between Kijima Type I and Kijima Type II virtual age models
intrinsic to the last intervention. `0 <= propagation <= 1` such that
`propagation = 1` leads to Kijima Type I and `propagation = 0` leads to Kijima Type II.
q : float
The rejuvenation parameter. It allows one to study the quality of the intervention system.
If `q = 0`, one has the Weibull-based Renewal Process - RP (in which each intervention
usually brings the system to an 'as good as new' - AGAN condition). If `q = 1`,
one has the Weibull-based Non-Homogeneous Poisson Process - NHPP (in which each
intervention usually brings the system to an 'as bad as old' - ABAO condition). On the other hand,
if `b > 1`, then `0 < q < 1` might reflect that each intervention usually brings the system
to an intermediate condition, between AGAN and ABAO. Further, either `b < 1` and `q > 1`
or `b > 1` and `q < 0` might reflect the situations in which each intervention usually
brings the system to a 'better than in its beginning' condition.
current_virtual_age : float
The value of the virtual age underlying the system, reflecting its condition
previously to `x`. If `current_virtual_age` is not determined, then it is assumed
that the system is new, i.e. `current_virtual_age = 0`.
x : float
The time since the last intervention.
Returns:
A dictionary containing:
'propagation': The input weight `propagation`
'virtual_age': The virtual age of the system at time `x`
Examples:
>>> virtual_age(propagation=0.5, q=0.8, current_virtual_age=2, x=3)
{'propagation': 0.5, 'virtualAge': 4.2}
References:
Ferreira RJ, Firmino PRA, Cristino CT (2015):
A Mixed Kijima Model Using the Weibull-Based Generalized Renewal Processes.
PLoS ONE, 10(7), e0133772.
https://doi.org/10.1371/journal.pone.0133772
"""
KijimaI = current_virtual_age + q * x
KijimaII = q * (current_virtual_age + x)
virtualAge = propagation * KijimaI + (1 - propagation) * KijimaII
return {'propagation': propagation, 'virtualAge': virtualAge}
|