GuillaumeGay commited on
Commit
8993c27
·
verified ·
1 Parent(s): 7bbbbf6

Add small_commune_v3 (Var + Bouches-du-Rhône)

Browse files
Files changed (5) hide show
  1. README.md +22 -0
  2. v3/forecasts_2026.csv +0 -0
  3. v3/metadata.json +94 -0
  4. v3/model.joblib +3 -0
  5. v3/usual_rates.csv +273 -0
README.md CHANGED
@@ -18,6 +18,8 @@ tags:
18
 
19
  # firepredict: daily wildfire-start risk for the communes of the Var (France)
20
 
 
 
21
  A small logistic regression that gives each of the 153 communes of the Var (83), France, a daily chance that a fire of 0.1 ha or more starts there. It is built only from open data. Code, data pipeline and full report: [github.com/guillaumegay13/firepredict](https://github.com/guillaumegay13/firepredict).
22
 
23
  > **Research preview.** This is not an official warning tool. Fire danger warnings in France are issued by Météo-France and the prefectures. The every-year results below are exploratory (see [Limitations](#limitations)); the clean test is the 2026 one.
@@ -141,6 +143,26 @@ The inputs were chosen after looking at results across all years, so the scores
141
  - **Retrospective 2026 test, blind to the outcomes.** On 9 November 2026, before any 2026 fire record was published, the model was frozen and its forecasts for 1 January – 9 November 2026 were saved in `forecasts_2026.csv` (SHA-256 `2be6091ab25539dc47bb751822d2a9b2b48f21218f8238bf0be1e1653dc8c6d6`). They were all computed on that day, from the weather available then. This is a retrospective test, not a live trial. When BDIFF publishes the 2026 fires, the forecasts will be scored as they are.
142
  - **Live archive.** From 9 November 2026, each day's forecast from the frozen model is saved in the [`forecasts/`](https://github.com/guillaumegay13/firepredict/tree/main/forecasts) folder of the GitHub repository and committed the same day, so the git history dates it.
143
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  ## Limitations
145
 
146
  - **Exploratory results.** The inputs and the 30-day window were chosen after looking at the same years used for evaluation, so p-values and ranges are optimistic. The ranges are conditional on the chosen model.
 
18
 
19
  # firepredict: daily wildfire-start risk for the communes of the Var (France)
20
 
21
+ > **Two versions in this repository.** The files at the root are `small_commune_v2` (the Var only, 5 inputs), described below. The folder [`v3/`](v3/) holds `small_commune_v3`, one model shared by the Var (83) and the Bouches-du-Rhône (13); see the section "Version 3" below. Both are frozen and both have a 2026 test.
22
+
23
  A small logistic regression that gives each of the 153 communes of the Var (83), France, a daily chance that a fire of 0.1 ha or more starts there. It is built only from open data. Code, data pipeline and full report: [github.com/guillaumegay13/firepredict](https://github.com/guillaumegay13/firepredict).
24
 
25
  > **Research preview.** This is not an official warning tool. Fire danger warnings in France are issued by Météo-France and the prefectures. The every-year results below are exploratory (see [Limitations](#limitations)); the clean test is the 2026 one.
 
143
  - **Retrospective 2026 test, blind to the outcomes.** On 9 November 2026, before any 2026 fire record was published, the model was frozen and its forecasts for 1 January – 9 November 2026 were saved in `forecasts_2026.csv` (SHA-256 `2be6091ab25539dc47bb751822d2a9b2b48f21218f8238bf0be1e1653dc8c6d6`). They were all computed on that day, from the weather available then. This is a retrospective test, not a live trial. When BDIFF publishes the 2026 fires, the forecasts will be scored as they are.
144
  - **Live archive.** From 9 November 2026, each day's forecast from the frozen model is saved in the [`forecasts/`](https://github.com/guillaumegay13/firepredict/tree/main/forecasts) folder of the GitHub repository and committed the same day, so the git history dates it.
145
 
146
+
147
+ ## Version 3 (folder `v3/`)
148
+
149
+ `small_commune_v3`, frozen on 9 November 2026, is a single logistic regression trained on the Var and the Bouches-du-Rhône together (2,140 positive commune-days). It uses the five inputs above plus:
150
+
151
+ - `rate_x_summer`: log usual rate × June–September. Busy communes concentrate their fires in summer more than quiet ones; without this term the model underestimated the Var's busiest communes in summer by half and overestimated Aix-en-Provence in winter.
152
+ - `dept_13`: one level per department (1 for the Bouches-du-Rhône), so the chances are calibrated in each department. In a transfer test, rankings carried over between departments but probabilities did not.
153
+
154
+ `v3/usual_rates.csv` has a `department` column; `v3/metadata.json` lists the inputs, weights and fill values.
155
+
156
+ Every-year test, each year hidden in both departments at once (positive commune-days):
157
+
158
+ | | Var (83) | Bouches-du-Rhône (13) |
159
+ |---|---|---|
160
+ | ROC AUC, v3 | 0.779 (v2: 0.782) | 0.864 (single-department model: 0.865) |
161
+ | FWI × commune history | 0.757; v3 better in 17 / 19 years | 0.858; v3 better in 13 / 20 years |
162
+ | 15 communes a day: caught | 219 (reference 220) | 630 (reference 605) |
163
+
164
+ Calibration holds in both departments up to 1%; above 1% in the Var the model predicts 1.2% where 0.8% happened. The same limits apply as for v2 (exploratory results, approximate FWI, two neighbouring departments only). The 2026 test of v3 covers both departments: `v3/forecasts_2026.csv`, SHA-256 `783debd1cd6848fb0cd667ef2abc418a2221379c9698366e1e6ead8eae0a856c`. Daily v3 forecasts are archived in the GitHub repository under `forecasts/v3/`.
165
+
166
  ## Limitations
167
 
168
  - **Exploratory results.** The inputs and the 30-day window were chosen after looking at the same years used for evaluation, so p-values and ranges are optimistic. The ranges are conditional on the chosen model.
v3/forecasts_2026.csv ADDED
The diff for this file is too large to render. See raw diff
 
v3/metadata.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "version": "small_commune_v3",
3
+ "frozen_at": "2026-11-09T18:22:06+00:00",
4
+ "git_commit": "2c6273ccec739a86e8ee47ff234dfb9a6fc00d60",
5
+ "departments": [
6
+ "83",
7
+ "13"
8
+ ],
9
+ "question": "chance that at least one fire >= 0.1 ha starts in the commune on the target day; issued the morning before, from data up to two days before the target day",
10
+ "inputs": [
11
+ "log_usual_rate",
12
+ "log_local_fwi",
13
+ "local_wb_30d",
14
+ "orange_period",
15
+ "red_period",
16
+ "rate_x_summer",
17
+ "dept_13"
18
+ ],
19
+ "weights_standardised": {
20
+ "log_usual_rate": 0.4967,
21
+ "log_local_fwi": 0.6093,
22
+ "local_wb_30d": -0.5668,
23
+ "orange_period": 0.2342,
24
+ "red_period": 0.2297,
25
+ "rate_x_summer": 0.6662,
26
+ "dept_13": 0.0118
27
+ },
28
+ "fill_values": {
29
+ "log_usual_rate": -1.297705,
30
+ "log_local_fwi": 2.753336,
31
+ "local_wb_30d": -39.099998,
32
+ "orange_period": 0.0,
33
+ "red_period": 0.0,
34
+ "rate_x_summer": -0.0,
35
+ "dept_13": 0.0
36
+ },
37
+ "training_positive_commune_days": {
38
+ "83": 902,
39
+ "13": 1238
40
+ },
41
+ "training_years": {
42
+ "83": [
43
+ 2006,
44
+ 2007,
45
+ 2008,
46
+ 2009,
47
+ 2010,
48
+ 2011,
49
+ 2012,
50
+ 2013,
51
+ 2014,
52
+ 2015,
53
+ 2016,
54
+ 2017,
55
+ 2018,
56
+ 2019,
57
+ 2020,
58
+ 2021,
59
+ 2022,
60
+ 2023,
61
+ 2025
62
+ ],
63
+ "13": [
64
+ 2006,
65
+ 2007,
66
+ 2008,
67
+ 2009,
68
+ 2010,
69
+ 2011,
70
+ 2012,
71
+ 2013,
72
+ 2014,
73
+ 2015,
74
+ 2016,
75
+ 2017,
76
+ 2018,
77
+ 2019,
78
+ 2020,
79
+ 2021,
80
+ 2022,
81
+ 2023,
82
+ 2024,
83
+ 2025
84
+ ]
85
+ },
86
+ "model_sha256": "3e4e928b44492b0eedcaca8ad90d3042bc1826b4c0bce34761adaf9beefb69d6",
87
+ "forecasts_2026": {
88
+ "kind": "outcome-blinded retrospective test",
89
+ "rows": 85136,
90
+ "first_day": "2026-01-01",
91
+ "last_day": "2026-11-09",
92
+ "sha256": "783debd1cd6848fb0cd667ef2abc418a2221379c9698366e1e6ead8eae0a856c"
93
+ }
94
+ }
v3/model.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3e4e928b44492b0eedcaca8ad90d3042bc1826b4c0bce34761adaf9beefb69d6
3
+ size 1873
v3/usual_rates.csv ADDED
@@ -0,0 +1,273 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ department,insee,usual_rate
2
+ 83,83001,0.21052631578947367
3
+ 83,83002,0.3684210526315789
4
+ 83,83003,0.5263157894736842
5
+ 83,83004,0.7368421052631579
6
+ 83,83005,0.05263157894736842
7
+ 83,83006,0.15789473684210525
8
+ 83,83007,0.5789473684210527
9
+ 83,83008,0.0
10
+ 83,83009,0.2631578947368421
11
+ 83,83010,0.21052631578947367
12
+ 83,83011,0.3157894736842105
13
+ 83,83012,0.631578947368421
14
+ 83,83013,0.0
15
+ 83,83014,0.0
16
+ 83,83015,0.2631578947368421
17
+ 83,83016,0.2631578947368421
18
+ 83,83017,0.2631578947368421
19
+ 83,83018,0.21052631578947367
20
+ 83,83019,0.47368421052631576
21
+ 83,83020,0.10526315789473684
22
+ 83,83021,0.21052631578947367
23
+ 83,83022,0.10526315789473684
24
+ 83,83023,0.5263157894736842
25
+ 83,83025,0.10526315789473684
26
+ 83,83026,0.47368421052631576
27
+ 83,83027,0.3157894736842105
28
+ 83,83028,0.42105263157894735
29
+ 83,83029,0.2631578947368421
30
+ 83,83030,0.21052631578947367
31
+ 83,83031,0.5263157894736842
32
+ 83,83032,0.21052631578947367
33
+ 83,83033,0.47368421052631576
34
+ 83,83034,0.47368421052631576
35
+ 83,83035,0.3157894736842105
36
+ 83,83036,0.15789473684210525
37
+ 83,83037,0.10526315789473684
38
+ 83,83038,0.05263157894736842
39
+ 83,83039,0.05263157894736842
40
+ 83,83040,0.10526315789473684
41
+ 83,83041,0.42105263157894735
42
+ 83,83042,0.10526315789473684
43
+ 83,83043,0.5263157894736842
44
+ 83,83044,0.15789473684210525
45
+ 83,83045,0.3684210526315789
46
+ 83,83046,0.42105263157894735
47
+ 83,83047,0.21052631578947367
48
+ 83,83048,0.21052631578947367
49
+ 83,83049,0.21052631578947367
50
+ 83,83050,1.5263157894736843
51
+ 83,83051,0.8421052631578947
52
+ 83,83052,0.15789473684210525
53
+ 83,83053,0.21052631578947367
54
+ 83,83054,0.10526315789473684
55
+ 83,83055,0.3157894736842105
56
+ 83,83056,0.5789473684210527
57
+ 83,83057,0.3157894736842105
58
+ 83,83058,0.6842105263157895
59
+ 83,83059,0.10526315789473684
60
+ 83,83060,0.15789473684210525
61
+ 83,83061,1.0
62
+ 83,83062,0.21052631578947367
63
+ 83,83063,0.5263157894736842
64
+ 83,83064,0.15789473684210525
65
+ 83,83065,0.42105263157894735
66
+ 83,83066,0.42105263157894735
67
+ 83,83067,0.2631578947368421
68
+ 83,83068,0.5789473684210527
69
+ 83,83069,0.9473684210526315
70
+ 83,83070,0.3157894736842105
71
+ 83,83071,0.3684210526315789
72
+ 83,83072,0.9473684210526315
73
+ 83,83073,0.6842105263157895
74
+ 83,83074,0.05263157894736842
75
+ 83,83075,0.21052631578947367
76
+ 83,83076,0.15789473684210525
77
+ 83,83077,0.15789473684210525
78
+ 83,83078,0.05263157894736842
79
+ 83,83079,0.10526315789473684
80
+ 83,83080,0.2631578947368421
81
+ 83,83081,0.2631578947368421
82
+ 83,83082,0.2631578947368421
83
+ 83,83083,0.3157894736842105
84
+ 83,83084,0.05263157894736842
85
+ 83,83085,0.42105263157894735
86
+ 83,83086,0.6842105263157895
87
+ 83,83087,0.42105263157894735
88
+ 83,83088,0.21052631578947367
89
+ 83,83089,0.10526315789473684
90
+ 83,83090,0.47368421052631576
91
+ 83,83091,0.2631578947368421
92
+ 83,83092,0.3157894736842105
93
+ 83,83093,0.0
94
+ 83,83094,0.15789473684210525
95
+ 83,83095,0.3684210526315789
96
+ 83,83096,0.3157894736842105
97
+ 83,83097,0.21052631578947367
98
+ 83,83098,0.05263157894736842
99
+ 83,83099,0.42105263157894735
100
+ 83,83100,0.3157894736842105
101
+ 83,83101,0.631578947368421
102
+ 83,83102,0.10526315789473684
103
+ 83,83103,0.15789473684210525
104
+ 83,83104,0.21052631578947367
105
+ 83,83105,0.0
106
+ 83,83106,0.15789473684210525
107
+ 83,83107,0.7368421052631579
108
+ 83,83108,0.10526315789473684
109
+ 83,83109,0.15789473684210525
110
+ 83,83110,0.05263157894736842
111
+ 83,83111,0.10526315789473684
112
+ 83,83112,0.15789473684210525
113
+ 83,83113,0.15789473684210525
114
+ 83,83114,0.21052631578947367
115
+ 83,83115,0.15789473684210525
116
+ 83,83116,0.2631578947368421
117
+ 83,83117,0.10526315789473684
118
+ 83,83118,0.3157894736842105
119
+ 83,83119,0.10526315789473684
120
+ 83,83120,0.3684210526315789
121
+ 83,83121,0.47368421052631576
122
+ 83,83122,0.0
123
+ 83,83123,0.2631578947368421
124
+ 83,83124,1.0526315789473684
125
+ 83,83125,0.10526315789473684
126
+ 83,83126,0.42105263157894735
127
+ 83,83127,0.42105263157894735
128
+ 83,83128,0.0
129
+ 83,83129,0.21052631578947367
130
+ 83,83130,0.0
131
+ 83,83131,0.05263157894736842
132
+ 83,83132,0.05263157894736842
133
+ 83,83133,0.5263157894736842
134
+ 83,83134,0.3684210526315789
135
+ 83,83135,0.0
136
+ 83,83136,0.15789473684210525
137
+ 83,83137,1.631578947368421
138
+ 83,83138,0.2631578947368421
139
+ 83,83139,0.3684210526315789
140
+ 83,83140,0.8421052631578947
141
+ 83,83141,0.21052631578947367
142
+ 83,83142,0.15789473684210525
143
+ 83,83143,0.5263157894736842
144
+ 83,83144,0.15789473684210525
145
+ 83,83145,0.47368421052631576
146
+ 83,83146,0.3684210526315789
147
+ 83,83147,0.10526315789473684
148
+ 83,83148,0.42105263157894735
149
+ 83,83149,0.3157894736842105
150
+ 83,83150,0.3684210526315789
151
+ 83,83151,0.0
152
+ 83,83152,0.10526315789473684
153
+ 83,83153,0.47368421052631576
154
+ 83,83154,0.47368421052631576
155
+ 13,13001,3.75
156
+ 13,13002,1.0
157
+ 13,13003,0.2
158
+ 13,13004,0.4
159
+ 13,13005,1.2
160
+ 13,13006,0.2
161
+ 13,13007,0.8
162
+ 13,13008,0.15
163
+ 13,13009,0.0
164
+ 13,13010,0.3
165
+ 13,13011,0.15
166
+ 13,13012,0.0
167
+ 13,13013,0.05
168
+ 13,13014,0.35
169
+ 13,13015,0.2
170
+ 13,13016,0.25
171
+ 13,13017,0.05
172
+ 13,13018,0.0
173
+ 13,13019,0.95
174
+ 13,13020,0.1
175
+ 13,13021,0.1
176
+ 13,13022,0.45
177
+ 13,13023,0.1
178
+ 13,13024,0.05
179
+ 13,13025,0.35
180
+ 13,13026,0.6
181
+ 13,13027,0.1
182
+ 13,13028,0.8
183
+ 13,13029,0.05
184
+ 13,13030,0.2
185
+ 13,13031,0.05
186
+ 13,13032,0.45
187
+ 13,13033,0.5
188
+ 13,13034,0.2
189
+ 13,13035,0.15
190
+ 13,13036,0.15
191
+ 13,13037,0.5
192
+ 13,13038,0.65
193
+ 13,13039,1.4
194
+ 13,13040,0.85
195
+ 13,13041,0.65
196
+ 13,13042,0.1
197
+ 13,13043,0.35
198
+ 13,13044,0.2
199
+ 13,13045,0.2
200
+ 13,13046,0.1
201
+ 13,13047,3.15
202
+ 13,13048,0.6
203
+ 13,13049,0.35
204
+ 13,13050,0.7
205
+ 13,13051,1.4
206
+ 13,13052,0.0
207
+ 13,13053,0.05
208
+ 13,13054,0.15
209
+ 13,13055,5.85
210
+ 13,13056,4.4
211
+ 13,13057,0.05
212
+ 13,13058,0.6
213
+ 13,13059,0.35
214
+ 13,13060,0.5
215
+ 13,13061,0.0
216
+ 13,13062,0.1
217
+ 13,13063,1.6
218
+ 13,13064,0.1
219
+ 13,13065,0.65
220
+ 13,13066,0.25
221
+ 13,13067,0.45
222
+ 13,13068,0.15
223
+ 13,13069,0.4
224
+ 13,13070,0.05
225
+ 13,13071,1.95
226
+ 13,13072,0.2
227
+ 13,13073,0.35
228
+ 13,13074,0.1
229
+ 13,13075,0.25
230
+ 13,13076,0.25
231
+ 13,13077,1.55
232
+ 13,13078,0.05
233
+ 13,13079,0.3
234
+ 13,13080,0.55
235
+ 13,13081,1.6
236
+ 13,13082,0.4
237
+ 13,13083,0.0
238
+ 13,13084,0.35
239
+ 13,13085,0.2
240
+ 13,13086,0.5
241
+ 13,13087,0.5
242
+ 13,13088,1.0
243
+ 13,13089,0.0
244
+ 13,13090,0.0
245
+ 13,13091,0.5
246
+ 13,13092,0.65
247
+ 13,13093,0.15
248
+ 13,13094,0.05
249
+ 13,13095,0.1
250
+ 13,13096,0.05
251
+ 13,13097,0.4
252
+ 13,13098,1.0
253
+ 13,13099,0.15
254
+ 13,13100,0.25
255
+ 13,13101,0.2
256
+ 13,13102,0.25
257
+ 13,13103,1.1
258
+ 13,13104,0.15
259
+ 13,13105,0.0
260
+ 13,13106,0.95
261
+ 13,13107,0.25
262
+ 13,13108,0.4
263
+ 13,13109,0.2
264
+ 13,13110,0.55
265
+ 13,13111,0.05
266
+ 13,13112,1.0
267
+ 13,13113,0.15
268
+ 13,13114,0.6
269
+ 13,13115,0.1
270
+ 13,13116,0.0
271
+ 13,13117,0.75
272
+ 13,13118,0.5
273
+ 13,13119,0.0