-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathstata_example
169 lines (113 loc) · 5.43 KB
/
stata_example
1
2
3
4
5
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
use "S:\SAMF-SOC-Coronaogsolidaritet\Analyse\DST befolkningssurvey\Data\renset\KUFrivillighed2020_4_panel_runder_merged_long_format_temp.dta", clear
encode resp_id1, gen(respondent)
xtset respondent round
* Kontrolvariable og socio-økonomi
** Køn
bysort respondent (round): generate kvinde = koen[1]==2
** Alder
bysort respondent (round): generate ung_alder = alder_grp[1]<=2
bysort respondent (round): generate mid_alder = alder_grp[1]>=3 & alder_grp[1]<=5
bysort respondent (round): generate gam_alder = alder_grp[1]>=6
** Risikogruppe
bysort respondent (round): generate risiko = alvorligt[1]>=5 if alvorligt[1]<.
** Helbred
bysort respondent (round): generate daarligthelbred = helbred[1]<=3 if helbred[1]<.
** Uddannelse
bysort respondent (round): generate grundskolde = udgrp[1]==1 if udgrp[1]<.
bysort respondent (round): generate kvu = udgrp[1]==2 if udgrp[1]<.
bysort respondent (round): generate mvu = udgrp[1]==3 if udgrp[1]<.
bysort respondent (round): generate lvu = udgrp[1]==4 if udgrp[1]<.
** Beskæftigelse
bysort respondent (round): generate ibeskaef = beskaef_h[1]==1 if beskaef_h[1]<.
bysort respondent (round): generate udenbeskaef = beskaef_h[1]==2 if beskaef_h[1]<.
bysort respondent (round): generate pensionist = beskaef_h[1]==3 if beskaef_h[1]<.
bysort respondent (round): generate studerende = beskaef_h[1]==4 if beskaef_h[1]<.
bysort respondent (round): generate andet = beskaef_h[1]==5 if beskaef_h[1]<.
bysort respondent (round): generate arbejdsmarked = ibeskaef[1]==5 | studerende[1]==1
bysort respondent (round): generate udearbejdsmarked = udenbeskaef[1]==5 | pensionist[1]==1 | andet[1]==1
** Urbanisering
recode urban (1 2 = 1 "Storby/forstad") (3 = 2 "Mellem by") (4 5 = 3 "Landet"), gen(urban2)
bysort respondent (round): generate urban1 = urban2[1]
** Afstand til supermarked
encode(daglig_1_other), gen(supermarked1)
recode supermarked (1 3 4 = 0) (2 6 15 16 26= 1) (7 27 28 = 2) (8 30 = 3) (9 31 = 4) (10 33 = 5) (11 34 = 50) (12 35 36 = 6) (5 13 37 = 7) (14 39 = 8) (41 = 9) (17 = 10) (18 = 100) (19 = 11) (20 21 = 12) (22 = 13) (23 = 14) (24 = 15) (25 = 18) (29 = 20) (32 = 49) (38 = 73) (40 = 80), gen(supermarked2)
bysort respondent (round): generate supermarked = supermarked2[1]
gen z_supermarked = (supermarked-1.403138)/4.599395
** Exposure, mediator, outcome
** Netværk/Social kapital
foreach v of varlist skfam_1 skfam_2 skfam_3 skfam_4 skfam_5 {
recode `v' (0 1 = 0) (2 = 1) (3 = 2) (4 = 3) (else=.), gen(`v'1)
}
gen netvaerk = skfam_11 + skfam_21 + skfam_31 + skfam_41 + skfam_51
tab netvaerk
sum netvaerk
tab1 skfam_1 - skfam_5
generate forening = 0
replace forening = 1 if skfam_5==4 | skfam_5==3
generate venner = 0 if round==1
replace venner=1 if skfam_2==4 | skfam_2==3
generate familie = 0 if round==1
replace familie=1 if skfam_1==4 | skfam_1==3
tab familie skfam_1
bysort respondent (round): generate familie
xtile netvaerk_4 = netvaerk, nq(4)
tab netvaerk_4
generate netvaerk_bin = netvaerk>=9
** Ny mobilisering
foreach v of varlist hjboern - hjfungere {
recode `v' (2 3 = 1) (1 4 = 0) (else=.), gen(`v'a)
}
gen ikkemob = 0
replace ikkemob = 1 if hjboern2==1 | hjinforma==1 | hjindkoeba==1 | hjtransporta==1 | hjdonationa==1 | hjfungerea==1
tab ikkemob round
** Modtage hjælp
tab1 hjboern
foreach v of varlist hjboern - hjfungere {
recode `v' (1 2 = 1) (3 4 = 0) (else=.), gen(`v'1)
}
foreach v of varlist hjboern - hjfungere {
recode `v' (3 = 1) (1 2 4 = 0) (else=.), gen(`v'2)
}
gen mob_modtage2 = 0
replace mob_modtage2=1 if hjboern2==1 | hjinform2==1 | hjindkoeb2==1 | hjtransport2==1 | hjdonation2==1 | hjfungere2==1
foreach v of varlist hjboern - hjfungere {
recode `v' (1 = 1) (2 3 4 = 0) (else=.), gen(`v'3)
}
gen mob_modtage3 = 0
replace mob_modtage3=1 if hjboern3==1 | hjinform3==1 | hjindkoeb3==1 | hjtransport3==1 | hjdonation3==1 | hjfungere3==1
tab mob_modtage2 round
mob_modtage3
gen mob_modtage1 = 0
replace mob_modtage1=1 if hjboern1==1 | hjinform1==1 | hjindkoeb1==1 | hjtransport1==1 | hjdonation1==1 | hjfungere1==1
bysort respondent (round): gen mob_modtage = mob_modtage1[2]
** Give hjælp
foreach v of varlist frboern_1 - frboern_7 {
recode `v' (1 = 1) (2 3 = 0) (else=.), gen(`v'1)
}
gen mob_give1 = 0
replace mob_give1=1 if frboern_11==1 | frboern_21==1 | frboern_31==1 | frboern_41==1 | frboern_51==1 | frboern_61==1 | frboern_71==1
bysort respondent (round): gen mob_give = mob_give1[2]
** Både modtage og give samlet
gen mob_begge = 0
replace mob_begge=1 if mob_modtage==1 | mob_give==1
** Self-efficacy
tab bekaempe round
tab hjaelpeloes
bysort respondent (round): gen efficacy = bekaempe[3]
bysort respondent (round): gen minustro = hjaelpeloes[3]
* Fjern missing/Datarens
foreach var in kvinde ung_alder mid_alder gam_alder risiko daarligthelbred grundskolde kvu mvu lvu supermarked {
drop if missing(`var')
}
foreach var in mob_give mob_modtage mob_begge {
drop if missing(`var')
}
drop if missing(efficacy)
** ANALYSE 1: Socioøkonomi --> Netværk
regress netvaerk i.beskaef_h i.udgrp kvinde mid_alder gam_alder z_supermarked
** ANALYSE 2: Netværk --> Mobilisering --> self-efficacy
regress minustro i.koen i.alder_grp i.udgrp i.venner ikkemob venner#i.ikkemob
regress efficacy mob_begge kvinde mid_alder gam_alder i.beskaef_h risiko daarligthelbred
** Kausal meditationsanalyse
paramed minustro, avar(venner) mvar(ikkemob) cvars(kvinde) a0(0) a1(1) m(0) yreg(linear) mreg(logistic) nointeraction
paramed efficacy, avar(netvaerk_bin) mvar(mob_begge) a0(0) a1(1) m(0) yreg(linear) mreg(logistic)