Difference between revisions of "Impact Calculation Tool for R"

From Testiwiki
Jump to: navigation, search
(Created page with "=Life table calculations= ==Input data== ===Population structure in the beginning of the assessment follow-up period (pop_data)=== <t2b name="population" index="Age" desc="...")
 
Line 110: Line 110:
 
===Annual birth rate (birth_rate)===
 
===Annual birth rate (birth_rate)===
  
<t2b name="birth.rate" index="Follow-up period,Unit" desc="Kuvaus" unit="-">
+
<t2b name="birth.rate" index="Follow-up period" desc="Kuvaus" unit="-">
2010 57000  
+
2010|57000|
2011 57000  
+
2011|57000|
2012 57000  
+
2012|57000|
2013 57000  
+
2013|57000|
2014 57000  
+
2014|57000|
2015 57000  
+
2015|57000|
2016 57000  
+
2016|57000|
2017 57000  
+
2017|57000|
2018 57000  
+
2018|57000|
2019 57000  
+
2019|57000|
2020 57000  
+
2020|57000|
2021 57000  
+
2021|57000|
2022 57000  
+
2022|57000|
2023 57000  
+
2023|57000|
2024 57000  
+
2024|57000|
2025 57000  
+
2025|57000|
2026 57000  
+
2026|57000|
2027 57000  
+
2027|57000|
2028 57000  
+
2028|57000|
2029 57000
+
2029|57000|
 
</t2b>
 
</t2b>
  
 
===Mortality rate===
 
===Mortality rate===
 
  
 
===Mortality risk (mort_risk)===
 
===Mortality risk (mort_risk)===
Line 151: Line 150:
  
 
==Analytica codes==
 
==Analytica codes==
 +
 +
'''Indices used in the model:'''
  
 
===Follow-up year (fu_year)===
 
===Follow-up year (fu_year)===
  
 
sequence(Start_year,Start_year+(Followup_time-1),1)
 
sequence(Start_year,Start_year+(Followup_time-1),1)
 
  
 
===Year in life table (year_lt)===
 
===Year in life table (year_lt)===
  
 
sequence(Start_year,Start_year+Followup_time+99,1)
 
sequence(Start_year,Start_year+Followup_time+99,1)
 
  
 
===Follow-up period in 5-year time steps (fu_period)===
 
===Follow-up period in 5-year time steps (fu_period)===
Line 166: Line 165:
 
sequence(Start_year,Start_year+(Followup_time-1),5)
 
sequence(Start_year,Start_year+(Followup_time-1),5)
  
 
+
===5-year period in life table (period_lt)===
===5-year period in life table (period_lt)
 
  
 
sequence(Start_year,Start_year+Followup_time+99,5)
 
sequence(Start_year,Start_year+Followup_time+99,5)
 
  
 
===Age of child (age_child)===
 
===Age of child (age_child)===
Line 177: Line 174:
  
  
 
+
'''Variables, which need to be translated into ovariables:'''
 
 
  
 
===Population in time, child (pop_in_time_child)===
 
===Population in time, child (pop_in_time_child)===
  
 
var k: Birth_rate[Fu_year=Year_lt];
 
var k: Birth_rate[Fu_year=Year_lt];
 +
 
k:= if k = null then 0 else k;
 
k:= if k = null then 0 else k;
 +
 
var a:= if @Year_lt = 1 then Pop_data else (if @Age=1 then k else 0);
 
var a:= if @Year_lt = 1 then Pop_data else (if @Age=1 then k else 0);
 +
 
a:= a[Age=age_child];
 
a:= a[Age=age_child];
  
Line 190: Line 189:
  
 
j:=j[Fu_period=Period_lt];
 
j:=j[Fu_period=Period_lt];
 +
 
j:= Si_pi(j, 5, Period_lt, Year_lt, Year_help)*5;
 
j:= Si_pi(j, 5, Period_lt, Year_lt, Year_help)*5;
 +
 +
j:= if j = null then j[Period_lt=max(Fu_period)] else j;
  
 
j:= if j < 0 then 0 else j;
 
j:= if j < 0 then 0 else j;
 +
 
j:= if j > 1 then 1 else j;
 
j:= if j > 1 then 1 else j;
  
Line 198: Line 201:
  
 
var x:= 1;
 
var x:= 1;
 +
 
while x<= min([size(age_child),size(Year_lt)]) do (
 
while x<= min([size(age_child),size(Year_lt)]) do (
 +
 
var b:= a*j;
 
var b:= a*j;
 
b:= b[@age_child=@age_child-1, @Year_lt=@Year_lt-1];
 
b:= b[@age_child=@age_child-1, @Year_lt=@Year_lt-1];
 +
 
a:= if b=null then a else b;
 
a:= if b=null then a else b;
 +
 
x:= x+1);
 
x:= x+1);
  
Line 210: Line 217:
  
 
var a:= sum(if floor(Age/5)+1 = @Age_cat then Pop_data else 0 , Age);
 
var a:= sum(if floor(Age/5)+1 = @Age_cat then Pop_data else 0 , Age);
 +
 
a:= if @Age_cat=1 then sum(Pop_in_time_child, Age_child) else (if @period_lt = 1 then a else  0);
 
a:= if @Age_cat=1 then sum(Pop_in_time_child, Age_child) else (if @period_lt = 1 then a else  0);
  
var j:= sum(Mort_risk_scenarios,Mort_endpoint);
+
var j:= Mort_risk;
j:=if Mort_effect = 'Acute' then j[Exposure='BAU'] else j;
+
 
 
j:=j[Fu_period=Period_lt];
 
j:=j[Fu_period=Period_lt];
j:= if j = null then j[Exposure='Reference',Period_lt=max(Fu_period)] else j;
+
 
 +
j:= if j = null then j[Period_lt=max(Fu_period)] else j;  
  
 
j:= if j < 0 then 0 else j;
 
j:= if j < 0 then 0 else j;
 +
 
j:= if j > 1 then 1 else j;
 
j:= if j > 1 then 1 else j;
  
Line 223: Line 233:
  
 
j:= sum(if floor(Age/5)+1 = @Age_cat then j else 0 , Age)/5;
 
j:= sum(if floor(Age/5)+1 = @Age_cat then j else 0 , Age)/5;
 +
 
var m:=j[@Age_cat=@Age_cat+1];
 
var m:=j[@Age_cat=@Age_cat+1];
 +
 
m:= if m=null then 0 else m;
 
m:= if m=null then 0 else m;
 +
 
var n:=((j^5)+(j^4*m)+(j^3*m^2)+(j^2*m^3)+(j*m^4))/5;
 
var n:=((j^5)+(j^4*m)+(j^3*m^2)+(j^2*m^3)+(j*m^4))/5;
  
 
var x:= 1;
 
var x:= 1;
 +
 
while x<= min([size(Age_cat),size(Period_lt)]) do (
 
while x<= min([size(Age_cat),size(Period_lt)]) do (
 
var b:= a*n;
 
var b:= a*n;
 +
 
b:= b[@Age_cat=@Age_cat-1, @Period_lt=@Period_lt-1];
 
b:= b[@Age_cat=@Age_cat-1, @Period_lt=@Period_lt-1];
 +
 
a:= if b=null then a else b;
 
a:= if b=null then a else b;
 +
 
x:= x+1);
 
x:= x+1);
 +
 
a
 
a

Revision as of 11:12, 8 July 2013

Life table calculations

Input data

Population structure in the beginning of the assessment follow-up period (pop_data)

population(-)
ObsAgeResultKuvaus
1056683
2156683
3256683
435668
5456683
6560615
7660615
8760615
9860615
10960615
111066167
121166167
131266167
14136616
151466167
161563786
171663786
181763786
191863786
201963786
212066423
222166423
232266423
242366424
252466423
262565882
272665882
282765882
292865882
302965882
313061495
323161495
333261495
343361495
353461495
363572474
373672474
383772474
393872474
403972474
414075917
424175917
434275917
444375917
454475917
464576977
474676977
484776977
494876977
504976977
515080206
525180206
535280206
545380206
555480206
565580291
575680291
585780291
595880291
605980291
616054300
626154300
636254300
646354300
656454300
666548077
676648077
686748077
696848077
706948077
717041475
727141475
737241475
747341475
757441475
767534987
777634987
787734987
797834987
807934987
818023300
828123300
838223300
848323300
858423300
868511292
878611292
888711292
898811292
908911292
91904394
92914394
93924394
94934394
95944394
9695886
9796886
9897886
9998886
10099886

Annual birth rate (birth_rate)

birth.rate(-)
ObsFollow-up periodResultKuvaus
1201057000
2201157000
3201257000
4201357000
5201457000
6201557000
7201657000
8201757000
9201857000
10201957000
11202057000
12202157000
13202257000
14202357000
15202457000
16202557000
17202657000
18202757000
19202857000
20202957000

Mortality rate

Mortality risk (mort_risk)

Mortality rate/Population

Start year (start-year)

2010

Follow-up time in years (followup_time)

20


Analytica codes

Indices used in the model:

Follow-up year (fu_year)

sequence(Start_year,Start_year+(Followup_time-1),1)

Year in life table (year_lt)

sequence(Start_year,Start_year+Followup_time+99,1)

Follow-up period in 5-year time steps (fu_period)

sequence(Start_year,Start_year+(Followup_time-1),5)

5-year period in life table (period_lt)

sequence(Start_year,Start_year+Followup_time+99,5)

Age of child (age_child)

sequence(0,4,1)


Variables, which need to be translated into ovariables:

Population in time, child (pop_in_time_child)

var k: Birth_rate[Fu_year=Year_lt];

k:= if k = null then 0 else k;

var a:= if @Year_lt = 1 then Pop_data else (if @Age=1 then k else 0);

a:= a[Age=age_child];

var j:= Mort_risk[Age=age_child];

j:=j[Fu_period=Period_lt];

j:= Si_pi(j, 5, Period_lt, Year_lt, Year_help)*5;

j:= if j = null then j[Period_lt=max(Fu_period)] else j;

j:= if j < 0 then 0 else j;

j:= if j > 1 then 1 else j;

j:= 1-j;

var x:= 1;

while x<= min([size(age_child),size(Year_lt)]) do (

var b:= a*j; b:= b[@age_child=@age_child-1, @Year_lt=@Year_lt-1];

a:= if b=null then a else b;

x:= x+1);

sum(if Year_lt = period_vs_year then a else 0,Year_lt)


Population in time, beginning of time step (pop_in_time_beg)

var a:= sum(if floor(Age/5)+1 = @Age_cat then Pop_data else 0 , Age);

a:= if @Age_cat=1 then sum(Pop_in_time_child, Age_child) else (if @period_lt = 1 then a else 0);

var j:= Mort_risk;

j:=j[Fu_period=Period_lt];

j:= if j = null then j[Period_lt=max(Fu_period)] else j;

j:= if j < 0 then 0 else j;

j:= if j > 1 then 1 else j;

j:= 1-j;

j:= sum(if floor(Age/5)+1 = @Age_cat then j else 0 , Age)/5;

var m:=j[@Age_cat=@Age_cat+1];

m:= if m=null then 0 else m;

var n:=((j^5)+(j^4*m)+(j^3*m^2)+(j^2*m^3)+(j*m^4))/5;

var x:= 1;

while x<= min([size(Age_cat),size(Period_lt)]) do ( var b:= a*n;

b:= b[@Age_cat=@Age_cat-1, @Period_lt=@Period_lt-1];

a:= if b=null then a else b;

x:= x+1);

a