Québec Foreign Immigration

Author

Robert Gravatt

Québec Immigration Patterns and Pathways

This project explores immigration patterns to the province of Québec using official data published by the Gouvernement du Québec. The dataset includes variables such as years of admission, country of origin, immigration category (e.g., economic, family, refugee), language proficiency (in French and English) and educational level. These variables help us understand who is immigrating to Québec, under what programs, and how they align with Québec’s cultural and linguistic priorities.

Our goal is to analyze shifts in immigration volume and composition over time, identify key source countries, and explore how language and occupation intersect with immigration pathways. This analysis will also consider Québec’s unique immigration policies, which differ from those of other Canadian provinces.

Data Source: Gouvernement du Québec – Statistiques et recherches en immigration, en francisation et en intégration https://www.donneesquebec.ca/recherche/dataset/presence-des-personnes-immigrantes/resource/79f916dd-5fb1-41f9-92ec-9191ad37488d

library(tidyverse)
library(RColorBrewer)

# Load the dataset using read_csv()
quebec_data <- read_csv("portraits-regionaux-2012-2021-presence-2023.csv")
names(quebec_data)
[1] "Region"                          "Categorie"                      
[3] "Detail"                          "n_personnes_presentes_2012_2016"
[5] "n_personnes_presentes_2017_2021" "n_personnes_presentes_2012_2021"
quebec_data$n_personnes_presentes_2012_2016 <- as.numeric(quebec_data$n_personnes_presentes_2012_2016)
quebec_data$n_personnes_presentes_2017_2021 <- as.numeric(quebec_data$n_personnes_presentes_2017_2021)
quebec_data$n_personnes_presentes_2012_2021 <- as.numeric(quebec_data$n_personnes_presentes_2012_2021)

Linear Regression Model

model <- lm(
  n_personnes_presentes_2012_2021 ~ Region + Categorie, data = quebec_data
  )
summary(model)

Call:
lm(formula = n_personnes_presentes_2012_2021 ~ Region + Categorie, 
    data = quebec_data)

Residuals:
   Min     1Q Median     3Q    Max 
-32643   -776    122    780  61952 

Coefficients:
                                                                      Estimate
(Intercept)                                                            1846.35
RegionAgglomération de Longueuil                                       4023.05
RegionBas Saint-Laurent                                                  43.90
RegionCentre-du-Québec                                                  273.02
RegionChaudière-Appalaches                                              502.35
RegionCôte-Nord                                                        -149.34
RegionEstrie                                                           1080.76
RegionGapésie–Îles-de-la-Madeleine                                      127.00
RegionLanaudière                                                       1572.13
RegionLaurentides                                                      1790.86
RegionLaval                                                            4117.36
RegionMontérégie (excluant l’agglomération de Longueuil)               3294.23
RegionMontréal                                                        33331.47
RegionNord-du-Québec                                                   -300.50
RegionSaguenay–Lac-Saint-Jean                                            98.97
CategorieConnaissance du français et de l'anglais lors de l'admission -1124.91
CategorieContinent et région de naissance Afrique                     -2178.44
CategorieContinent et région de naissance Amérique                    -2628.08
CategorieContinent et région de naissance Asie                        -2765.11
CategorieContinent et région de naissance Europe                      -2682.95
CategorieContinent et région de naissance Océanie et autres pays      -5126.76
CategorieGroupe d'âge                                                 -1820.86
CategorieMunicipalité régionale de comté de résidence                 -1907.84
CategorieNombre d'actifs                                               4161.74
CategorieNombre d'inactifs                                            -1889.01
CategoriePrincipaux pays de naissance_10ème                           -2850.06
CategoriePrincipaux pays de naissance_1re                             -1657.40
CategoriePrincipaux pays de naissance_2ème                            -2285.47
CategoriePrincipaux pays de naissance_3ème                            -2409.40
CategoriePrincipaux pays de naissance_4ème                            -2463.69
CategoriePrincipaux pays de naissance_5ème                            -2512.62
CategoriePrincipaux pays de naissance_6ème                            -2600.54
CategoriePrincipaux pays de naissance_7ème                            -2691.69
CategoriePrincipaux pays de naissance_8ème                            -2710.90
CategoriePrincipaux pays de naissance_9ème                            -2738.12
CategorieScolarité des immigrants âgés de 15 ans et plus              -2533.38
Categoriesexe                                                         -1819.34
CategorieSexe                                                          5496.88
                                                                      Std. Error
(Intercept)                                                               913.82
RegionAgglomération de Longueuil                                          940.41
RegionBas Saint-Laurent                                                   925.97
RegionCentre-du-Québec                                                    921.45
RegionChaudière-Appalaches                                                907.13
RegionCôte-Nord                                                           948.46
RegionEstrie                                                              993.79
RegionGapésie–Îles-de-la-Madeleine                                        960.27
RegionLanaudière                                                          913.84
RegionLaurentides                                                         906.74
RegionLaval                                                               940.41
RegionMontérégie (excluant l’agglomération de Longueuil)                  894.56
RegionMontréal                                                           1311.75
RegionNord-du-Québec                                                     1002.42
RegionSaguenay–Lac-Saint-Jean                                             939.33
CategorieConnaissance du français et de l'anglais lors de l'admission     887.71
CategorieContinent et région de naissance Afrique                         938.97
CategorieContinent et région de naissance Amérique                        958.75
CategorieContinent et région de naissance Asie                            950.69
CategorieContinent et région de naissance Europe                         1072.45
CategorieContinent et région de naissance Océanie et autres pays         1410.43
CategorieGroupe d'âge                                                     848.73
CategorieMunicipalité régionale de comté de résidence                     857.11
CategorieNombre d'actifs                                                 1602.09
CategorieNombre d'inactifs                                               1414.09
CategoriePrincipaux pays de naissance_10ème                              1496.08
CategoriePrincipaux pays de naissance_1re                                1451.83
CategoriePrincipaux pays de naissance_2ème                               1451.83
CategoriePrincipaux pays de naissance_3ème                               1451.83
CategoriePrincipaux pays de naissance_4ème                               1451.83
CategoriePrincipaux pays de naissance_5ème                               1451.83
CategoriePrincipaux pays de naissance_6ème                               1451.83
CategoriePrincipaux pays de naissance_7ème                               1451.83
CategoriePrincipaux pays de naissance_8ème                               1451.83
CategoriePrincipaux pays de naissance_9ème                               1451.83
CategorieScolarité des immigrants âgés de 15 ans et plus                  838.94
Categoriesexe                                                            4922.83
CategorieSexe                                                            1138.82
                                                                      t value
(Intercept)                                                             2.020
RegionAgglomération de Longueuil                                        4.278
RegionBas Saint-Laurent                                                 0.047
RegionCentre-du-Québec                                                  0.296
RegionChaudière-Appalaches                                              0.554
RegionCôte-Nord                                                        -0.157
RegionEstrie                                                            1.088
RegionGapésie–Îles-de-la-Madeleine                                      0.132
RegionLanaudière                                                        1.720
RegionLaurentides                                                       1.975
RegionLaval                                                             4.378
RegionMontérégie (excluant l’agglomération de Longueuil)                3.683
RegionMontréal                                                         25.410
RegionNord-du-Québec                                                   -0.300
RegionSaguenay–Lac-Saint-Jean                                           0.105
CategorieConnaissance du français et de l'anglais lors de l'admission  -1.267
CategorieContinent et région de naissance Afrique                      -2.320
CategorieContinent et région de naissance Amérique                     -2.741
CategorieContinent et région de naissance Asie                         -2.909
CategorieContinent et région de naissance Europe                       -2.502
CategorieContinent et région de naissance Océanie et autres pays       -3.635
CategorieGroupe d'âge                                                  -2.145
CategorieMunicipalité régionale de comté de résidence                  -2.226
CategorieNombre d'actifs                                                2.598
CategorieNombre d'inactifs                                             -1.336
CategoriePrincipaux pays de naissance_10ème                            -1.905
CategoriePrincipaux pays de naissance_1re                              -1.142
CategoriePrincipaux pays de naissance_2ème                             -1.574
CategoriePrincipaux pays de naissance_3ème                             -1.660
CategoriePrincipaux pays de naissance_4ème                             -1.697
CategoriePrincipaux pays de naissance_5ème                             -1.731
CategoriePrincipaux pays de naissance_6ème                             -1.791
CategoriePrincipaux pays de naissance_7ème                             -1.854
CategoriePrincipaux pays de naissance_8ème                             -1.867
CategoriePrincipaux pays de naissance_9ème                             -1.886
CategorieScolarité des immigrants âgés de 15 ans et plus               -3.020
Categoriesexe                                                          -0.370
CategorieSexe                                                           4.827
                                                                      Pr(>|t|)
(Intercept)                                                           0.043701
RegionAgglomération de Longueuil                                      2.14e-05
RegionBas Saint-Laurent                                               0.962202
RegionCentre-du-Québec                                                0.767086
RegionChaudière-Appalaches                                            0.579896
RegionCôte-Nord                                                       0.874926
RegionEstrie                                                          0.277170
RegionGapésie–Îles-de-la-Madeleine                                    0.894823
RegionLanaudière                                                      0.085792
RegionLaurentides                                                     0.048639
RegionLaval                                                           1.37e-05
RegionMontérégie (excluant l’agglomération de Longueuil)              0.000248
RegionMontréal                                                         < 2e-16
RegionNord-du-Québec                                                  0.764438
RegionSaguenay–Lac-Saint-Jean                                         0.916117
CategorieConnaissance du français et de l'anglais lors de l'admission 0.205489
CategorieContinent et région de naissance Afrique                     0.020615
CategorieContinent et région de naissance Amérique                    0.006273
CategorieContinent et région de naissance Asie                        0.003742
CategorieContinent et région de naissance Europe                      0.012578
CategorieContinent et région de naissance Océanie et autres pays      0.000298
CategorieGroupe d'âge                                                 0.032252
CategorieMunicipalité régionale de comté de résidence                 0.026326
CategorieNombre d'actifs                                              0.009575
CategorieNombre d'inactifs                                            0.182016
CategoriePrincipaux pays de naissance_10ème                           0.057172
CategoriePrincipaux pays de naissance_1re                             0.253997
CategoriePrincipaux pays de naissance_2ème                            0.115875
CategoriePrincipaux pays de naissance_3ème                            0.097433
CategoriePrincipaux pays de naissance_4ème                            0.090133
CategoriePrincipaux pays de naissance_5ème                            0.083937
CategoriePrincipaux pays de naissance_6ème                            0.073673
CategoriePrincipaux pays de naissance_7ème                            0.064144
CategoriePrincipaux pays de naissance_8ème                            0.062271
CategoriePrincipaux pays de naissance_9ème                            0.059696
CategorieScolarité des immigrants âgés de 15 ans et plus              0.002618
Categoriesexe                                                         0.711809
CategorieSexe                                                         1.69e-06
                                                                         
(Intercept)                                                           *  
RegionAgglomération de Longueuil                                      ***
RegionBas Saint-Laurent                                                  
RegionCentre-du-Québec                                                   
RegionChaudière-Appalaches                                               
RegionCôte-Nord                                                          
RegionEstrie                                                             
RegionGapésie–Îles-de-la-Madeleine                                       
RegionLanaudière                                                      .  
RegionLaurentides                                                     *  
RegionLaval                                                           ***
RegionMontérégie (excluant l’agglomération de Longueuil)              ***
RegionMontréal                                                        ***
RegionNord-du-Québec                                                     
RegionSaguenay–Lac-Saint-Jean                                            
CategorieConnaissance du français et de l'anglais lors de l'admission    
CategorieContinent et région de naissance Afrique                     *  
CategorieContinent et région de naissance Amérique                    ** 
CategorieContinent et région de naissance Asie                        ** 
CategorieContinent et région de naissance Europe                      *  
CategorieContinent et région de naissance Océanie et autres pays      ***
CategorieGroupe d'âge                                                 *  
CategorieMunicipalité régionale de comté de résidence                 *  
CategorieNombre d'actifs                                              ** 
CategorieNombre d'inactifs                                               
CategoriePrincipaux pays de naissance_10ème                           .  
CategoriePrincipaux pays de naissance_1re                                
CategoriePrincipaux pays de naissance_2ème                               
CategoriePrincipaux pays de naissance_3ème                            .  
CategoriePrincipaux pays de naissance_4ème                            .  
CategoriePrincipaux pays de naissance_5ème                            .  
CategoriePrincipaux pays de naissance_6ème                            .  
CategoriePrincipaux pays de naissance_7ème                            .  
CategoriePrincipaux pays de naissance_8ème                            .  
CategoriePrincipaux pays de naissance_9ème                            .  
CategorieScolarité des immigrants âgés de 15 ans et plus              ** 
Categoriesexe                                                            
CategorieSexe                                                         ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4830 on 727 degrees of freedom
  (52 observations deleted due to missingness)
Multiple R-squared:  0.5862,    Adjusted R-squared:  0.5651 
F-statistic: 27.83 on 37 and 727 DF,  p-value: < 2.2e-16

Cleaning and grouping for visualization

# Clean strings for extra spaces
quebec_data <- quebec_data |> 
  mutate(
    Categorie = str_trim(Categorie),
    Detail = str_trim(Detail)
  )
top_regions <- quebec_data |> 
  filter(Categorie == "Groupe d'âge") |> 
  group_by(Region) |> 
  summarize(Total = sum(n_personnes_presentes_2017_2021, na.rm = TRUE)) |> 
  arrange(desc(Total)) |> 
  slice_head(n = 7) |> 
  pull(Region)
region_age_counts <- quebec_data |> 
  filter(Categorie == "Groupe d'âge", Region %in% top_regions) |> 
  group_by(Region, Detail) |> 
  summarize(Total = sum(n_personnes_presentes_2017_2021, na.rm = TRUE), .groups = "drop") |> 
  mutate(Total = replace_na(Total, 0))  

Faceted Bar Graphs of Regional Immigrant Presence by age group

# Truncate the long region name to "Montérégie" - Copilot told me how to do this. 
region_age_counts <- region_age_counts |> 
  mutate(Region = case_when(
    str_detect(Region, "Montérégie") ~ "Montérégie",
    TRUE ~ Region
  ))



# Plot faceted bar chart of top regions by age group
ggplot(region_age_counts, aes(x = reorder(Region, -Total), y = Total, fill = Detail)) +
  geom_col(position = "stack") +
  facet_wrap(~ Detail, scales = "free_y") +
  labs(title = "Immigrant Presence in Québec’s Top 7 Regions by Age Group (2017–2021) *",
       x = "Region", y = "Number of Immigrants", fill = "Age Group",
       caption = "source: Ministère de l’Immigration, de la Francisation et de l’Intégration (MIFI) \n *Capitale-Nationale Québec was not included in the data set. Estrie was removed due to missing values.") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
  scale_fill_brewer(palette = "Set2")

Data Cleaning

Prior to modeling and visualization, the six column 817 row CSV dataset was inspected and cleaned to ensure consistency and compatibility with regression analysis. Key variables such as region, age group, and categorical descriptors were standardized and converted to appropriate formats. Observations with missing or malformed entries such extra spaces in strings and NA values were filtered out.

Conclusion

This analysis examined regional and other categorical factors influencing 2023 foreign immigrant presence in the Province of Québec of individuals who entered between 2012 and 2021. A linear regression was fitted to assess the influence of regional and categorical factors on immigrant counts. Several predictors yielded statistically significant coefficients with notably low p-values. The strongest statistical signals came from predictors associated with residents of the greater Montréal region, which showed the lowest p-values. These results highlight the uneven distribution of immigration across Québec and the importance of categorical context in understanding regional variation.

To complement the regression, a faceted bar chart was created to visualize the top seven regions by immigrant count, segmented by age group. This visualization focused exclusively on immigrants admitted between 2017 and 2021, rather than the full 2012-2021 cohort present in Québec in 2023. Montréal showed strong representation across all age groups, while other outlying regions such as Laval, Longueuil, and Montérégie displayed comparable demographic breadth. The chart revealed that age diversity is not unique to any single Montréal-adjacent region, but rather a shared characteristic among several high-volume immigrant destinations.

However, the analysis was constrained by data limitations. Capitale-Nationale, the region which includes Québec City, was absent from the dataset and could not be included in either the regression or visualization. Additionally, Estrie had to be excluded from the age group chart due to missing data for the 25–34 age group, which prevented consistent representation across facets. These gaps may affect the scope of the findings and warrant attention in future data collection and modeling efforts.

Together, the regression and visualization offer a robust foundation for understanding immigration dynamics in Québec, while also identifying areas for further refinement and data completeness.

N.B. I used Copilot many times for error messages and was led astray many times.