Lino Galiana (Insee), Tom Seimandi (Insee)
Pourquoi le machine learning ?
info_mutations == "Tableau" ? html`<div>${table_mutations1}<div>` : html`<div>${plot_mutations}<div>`
url = "https://files.data.gouv.fr/geo-dvf/latest/csv/2020/communes/92/92049.csv"
proxy = "https://corsproxy.io/?"
dvf = d3.csv(proxy + url)
table_mutations1 = Inputs.table(dvf, {"columns": ['date_mutation', 'valeur_fonciere', 'adresse_nom_voie']})
plot_mutations = Plot.plot({
y: {grid: true, label: "Nombre de transactions"},
x: {
ticks: 12,
transform: (d) => Math.pow(10, d),
type: "log",
tickFormat: "~s",
label: "Prix (échelle log) →"
},
marks: [
Plot.rectY(
dvf.filter(d => d.valeur_fonciere > 10000),
Plot.binX({y: "count"},
{
x: d => Math.log10(d.valeur_fonciere),
tip: true
})
),
Plot.ruleY([0])
]
})
Exemple: les données DVF
info_power_plants == "Tableau" ? html`<div>${table_power_plants}<div>` : html`<div>${plot_power_plants}<div>`
import {us_power_plants, states} from "@observablehq/build-your-first-map-with-observable-plot"
table_power_plants = Inputs.table(
us_power_plants
)
plot_power_plants = Plot.plot({
projection: "albers-usa",
marks: [
Plot.geo(states, { fill: "white", stroke: "#e2e2e2" }),
Plot.dot(us_power_plants, {
x: "longitude",
y: "latitude",
r: "Total_MW",
fill: "PrimSource",
opacity: 0.7,
tip: true
}),
Plot.dot(us_power_plants, { // Can you figure out what this additional Plot.dot layer adds?
x: "longitude",
y: "latitude",
r: "Total_MW",
fill: "PrimSource",
stroke: "black",
filter: d => d.Total_MW > 3500,
}),
Plot.text(us_power_plants, { // Add text to the map using data from us_power_plants
x: "longitude", // Place text horizontally at plant longitude
y: "latitude", // Place text vertically at plant latitude
text: "Plant_Name", // The text that appears is the value from the Plant_Name column,
filter: (d) => d.Total_MW > 3500, // Only add text for plants with capacity exceeding 3500 MW
fontSize: 12, // Increased font size
fontWeight: 600, // Increased font weight
stroke: "white", // Adds white outer stroke to text (for readability)
fill: "black", // Text fill color
textAnchor: "start", // Left align text with the x- and y-coordinates
dx: 15 // Shifts text to the right (starting from left alignment with coordinate)
})
],
r: { range: [1, 15] },
color: { legend: true },
height: 500,
width: 800,
margin: 50
})
d3.json(urlApe).then(res => {
var IC, results;
({ IC, ...results } = res);
IC = parseFloat(IC);
const rows = Object.values(results).map(obj => {
return `
<tr>
<td>${obj.code} | ${obj.libelle}</td>
<td>${obj.probabilite.toFixed(3)}</td>
</tr>
`;
}).join('');
const confidenceRow = `<tr>
<td colspan="2" style="text-align:left; "><em>Indice de confiance: ${IC.toFixed(3)}</em></td>
</tr>`;
const tableHTML = html`
<table>
<caption>
Prédiction de l'activité
</caption>
<tr>
<th style="text-align:center;">Libellé (NA2008)</th>
<th>Probabilité</th>
</tr>
${rows}
${confidenceRow}
</table>`;
// Now you can use the tableHTML as needed, for example, inserting it into the DOM.
// For example, assuming you have a container with the id "tableContainer":
return tableHTML;
});
Aspect transactionnel
Donnée n’est stabilisée qu’après plusieurs cycles de gestion
La collecte devient un processus vivant
Les déclarations administratives (Rivière 2018)
Obligation est faite à un certain nombre d’entités (individus, entreprises, organismes publics) de fournir des informations respectant une certaine forme, selon certaines modalités (internet, papier) et temporalités.
Par exemple, les déclarations fiscales des ménages sont annuelles, avec un calendrier déterminé à l’avance (qui dépend du format, papier ou internet).
McKinsey définissait les propriétés du big data selon 5V:
Le secret statistique (article 7bis de la loi de 1951)
Le secret statistique crée une obligation spéciale dans le cas de données confidentielles collectées, détenues ou produites pour des usages statistiques. Il interdit strictement la communication de données individuelles ou susceptibles d’identifier les personnes, issues de traitements à finalités statistiques, que ces traitements proviennent d’enquêtes ou de bases de données. En dérogation aux règles communes applicables au secret professionnel, le secret statistique est en effet opposable à toute réquisition judiciaire ou émanant d’autorités administratives (fiscale ou douanière par exemple).
Donnée | Autorité centralisatrice |
---|---|
DSN | Gip-MDS |
Données hospitalières | ATIH-10 |
SI gestion des eaux | SANDRE12 |
Le CSNS
Code statistique non signifiant (CSNS) pour les besoins de mise en œuvre de traitements à finalité de statistique publique impliquant le numéro de sécurité sociale (NIR) ou des traits d’identité, en particulier les appariements au sein du Service statistique publique.
Enjeux méthodologiques très liés au changement de paradigme de collecte
Plus un design ad hoc
robots.txt
Python
: BeautifulSoup
(parser), Scrapy
(crawler)R
: httr
, rvest
, polite
Selenium
: outils d’automatisationPython
: requests
Voir geoportail, statistiques-locales.insee.fr ou France Pixel par Etienne Côme
Un exemple de visualisation express des données Filosofi grâce à la librairie gridviz
(visible sur Observable)
PostGIS
crochet | de | du | et | la | passion | pratique | sa | timbre | transmettre | tricot | vivre | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
La pratique du tricot et du crochet | 1 | 0 | 2 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
Transmettre sa passion du timbre | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
Vivre de sa passion | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
Fasttext
OpenFoodFacts
avec Elasticsearch
et uint8
), valeurs flottantes entre 0 et 1, etc.\[ G_x = \begin{bmatrix} +1 & 0 & -1\\ +2 & 0 & -2\\ +1 & 0 & -1 \end{bmatrix} \star A \quad \text{et} \quad G_y = \begin{bmatrix} +1 & +2 & +1\\ 0 & 0 & 0\\ -1 & -2 & -1 \end{bmatrix} \star A \]
avec \(\star\) l’opérateur de convolution 2-dimensionnel en traitement du signal