Main Insight

  1. Describe the Annual per capita poverty threshold. compare this threshold across different regions, province and District and across time.

  2. Compare the Total Magnitude of Poor Families from 1991 – 2015 and per region.

  3. Correlations between different poverty indicators: You can also explore the relationships between different poverty indicators to understand how poverty incidence, magnitude, and subsistence incidence are related.

# libraries
library(scales)
library(tidyverse)
library(patchwork)
library(skimr)
library(lubridate)
library(psych)
library(DT)

Data Processing

# load the data
povstat_df <- read_csv("povstat_processed.csv", show_col_types = FALSE)
## New names:
## * `` -> `...1`
povstat_df <- povstat_df %>% 
  rename(place = province) %>% 
  mutate(value = as.double(value)) %>% 
  select(- ...1)
  
head(povstat_df)
## # A tibble: 6 x 7
##   Variable                               Year place value adm_level region unit 
##   <chr>                                 <dbl> <chr> <dbl> <chr>     <chr>  <chr>
## 1 Annual Per Capita Poverty Threshold ~  1991 1st ~    NA District  NCR    in P~
## 2 Annual Per Capita Poverty Threshold ~  2006 1st ~ 15699 District  NCR    in P~
## 3 Annual Per Capita Poverty Threshold ~  2009 1st ~ 19227 District  NCR    in P~
## 4 Annual Per Capita Poverty Threshold ~  2012 1st ~ 20344 District  NCR    in P~
## 5 Annual Per Capita Poverty Threshold ~  2015 1st ~ 25007 District  NCR    in P~
## 6 Poverty Incidence among Families (%)   1991 1st ~    NA District  NCR    %
# data summary
skim(povstat_df)
Data summary
Name povstat_df
Number of rows 3605
Number of columns 7
_______________________
Column type frequency:
character 5
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Variable 0 1.00 26 46 0 7 0
place 0 1.00 3 19 0 103 0
adm_level 245 0.93 6 8 0 4 0
region 245 0.93 3 11 0 18 0
unit 0 1.00 1 10 0 4 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Year 0 1.00 2006.6 8.36 1991 2006.0 2009.0 2012.0 2015 ▃▁▁▇▇
value 597 0.83 171712.0 1049844.11 0 25.9 13931.5 82882.5 23745895 ▇▁▁▁▁

Data Summary

  • The dataset contains a total of 3605 observations (rows) and 7 columns (variables).
  • There are missing values in the dataset. The adm_level variable has 245 missing values, and the region variable also has 245 missing values. The value variable has 597 missing values.
  • Further analysis will be needed to understand the reasons for the missing values in the “adm_lvl”, “region” and “value” variable.

Data Cleaning

# checking the duplicate value
povstat_df[povstat_df %>% 
  duplicated(), ]
## # A tibble: 0 x 7
## # ... with 7 variables: Variable <chr>, Year <dbl>, place <chr>, value <dbl>,
## #   adm_level <chr>, region <chr>, unit <chr>
  • Certainly! Based on the data provided, it appears that there are no duplicate observations (rows) in the dataset. Duplicate data refers to instances where the same data values are repeated multiple times within a dataset, resulting in multiple rows that contain identical information.

Identifying missing values in value column

# filtering only missing value in value Column
value_na <- povstat_df %>% 
  filter(is.na(value))

value_na
## # A tibble: 597 x 7
##    Variable                              Year place value adm_level region unit 
##    <chr>                                <dbl> <chr> <dbl> <chr>     <chr>  <chr>
##  1 Annual Per Capita Poverty Threshold~  1991 1st ~    NA District  NCR    in P~
##  2 Poverty Incidence among Families (%)  1991 1st ~    NA District  NCR    %    
##  3 Magnitude of Poor Families            1991 1st ~    NA District  NCR    fami~
##  4 Poverty Incidence among Population ~  1991 1st ~    NA District  NCR    %    
##  5 Magnitude of Poor Population          1991 1st ~    NA District  NCR    popu~
##  6 Subsistence Incidence among Populat~  1991 1st ~    NA District  NCR    %    
##  7 Magnitude of Subsistence Poor Popul~  1991 1st ~    NA District  NCR    popu~
##  8 Annual Per Capita Poverty Threshold~  1991 2nd ~    NA District  NCR    in P~
##  9 Poverty Incidence among Families (%)  1991 2nd ~    NA District  NCR    %    
## 10 Magnitude of Poor Families            1991 2nd ~    NA District  NCR    fami~
## # ... with 587 more rows
  • It appears that there are missing values in the “value” column, which seem to correspond to the Year 1991. To confirm this, we can filter the data to only include rows where the “value” column is missing and check if the corresponding year is 1991.
povstat_df %>% 
  filter(Year == 1991) %>%
  filter(!is.na(value)) %>% 
  select(value)
## # A tibble: 126 x 1
##       value
##       <dbl>
##  1   5201  
##  2     26.9
##  3 104747  
##  4     30.5
##  5 631372  
##  6     11.3
##  7 234254  
##  8   6706  
##  9     36.7
## 10  83557  
## # ... with 116 more rows
  • It appears that for the Year 1991, there are only 126 observations out of a total of 3605 that have a value in the “value” column, indicating a low completeness rate for that year. Since the data in these rows with missing values in the “value” column is not useful for analysis, we may choose to remove all rows corresponding to the Year 1991 from the dataset.

  • Dropping rows with missing values or incomplete data is a common approach in data analysis when the missing data is not expected to significantly impact the results or conclusions. In this case, since the completeness rate for the year 1991 is low and there are only a small number of observations with values in the “value” column, removing these rows may be a reasonable approach to ensure data integrity and accuracy in the analysis.

povstat_df %>%
  filter(Year != "1991") %>% 
  filter(is.na(value))
## # A tibble: 2 x 7
##   Variable                      Year place   value adm_level region unit      
##   <chr>                        <dbl> <chr>   <dbl> <chr>     <chr>  <chr>     
## 1 Magnitude of Poor Families    2015 Batanes    NA <NA>      <NA>   families  
## 2 Magnitude of Poor Population  2015 Batanes    NA <NA>      <NA>   population
  • There are two columns in the dataset that have null or missing values, similar to the “Year” column for the year 1991. Since these columns have no indicator or medianingful data, we may choose to drop these columns from the dataset to ensure data integrity and accuracy in the analysis.

Identifying missing value in adm_lvl column

unique(povstat_df$adm_level)
## [1] "District" "Region"   "Province" NA         "Country"
adm_level_na <-povstat_df %>% 
  filter(is.na(adm_level)) 

unique(adm_level_na$place)
## [1] "Aurora"         "Batanes"        "Camiguin"       "Cotabato City,"
## [5] "Guimaras,"      "Isabela City,"  "Siquijor,"
  • It appears that the “adm_lvl” column is connected to the “place” column in the dataset, and there are some missing values in the “adm_lvl” column. Upon further investigation, it seems that the places with missing “adm_lvl” values are Aurora, Batanes, Camiguin, Guimaras, and Siquijor, which are provinces. However, Cotabato City and Isabela City are cities, so we will ignore them in this analysis.

  • To address the missing “adm_lvl” values, we may choose to impute or fill in the “adm_lvl” column for these provinces with the value “Province” since they are provinces based on the context of the data.For Cotabato City and Isabela City, since they are cities and do not have corresponding “adm_lvl” values, we may choose to drop these rows from the dataset to maintain data integrity and accuracy in the analysis.

Identifying missing value in region column

unique(povstat_df$region)
##  [1] "NCR"         "ARMM"        "CAR"         "CARAGA"      "Region VI"  
##  [6] "Region V"    NA            "Region III"  "Region VI-A" "Region VIII"
## [11] "Region VII"  "Region X"    "Region II"   "Region XI"   "Region I"   
## [16] "Region IV-B" "Region XII"  "Philippines" "Region IX"
region_na <-povstat_df %>% 
  filter(is.na(region)) %>% 
  select(place)
unique(region_na)
## # A tibble: 7 x 1
##   place         
##   <chr>         
## 1 Aurora        
## 2 Batanes       
## 3 Camiguin      
## 4 Cotabato City,
## 5 Guimaras,     
## 6 Isabela City, 
## 7 Siquijor,
  • Upon further investigation, it appears that the “region” column is also connected to the “place” column in the dataset, similar to the “adm_lvl” column. It is observed that for Cotabato City and Isabela City, both the “adm_lvl” and “region” columns have missing values, likely because they are cities and not provinces.

  • To address this, we may choose to drop the rows where the “place” Cotabato City and Isabela City since they have missing values for both “adm_lvl” and “region” columns, and the data for these cities may not be useful for the analysis.

  • While the Provinces including Aurora, Batanes, Camiguin, Guimaras, and Siqiuijor we gonna impute its corresponding Region number.

 clean_df <- povstat_df %>%
  
  # dropping null value in value column
  filter(!is.na(value)) %>%
  filter(Year != 1991) %>% 
  
  # imputing the missing value of adm_level and drop the Places that is City
   mutate(adm_level = if_else(place %in% c("Aurora", "Camiguin", "Guimaras,", "Siquijor,", "Batanes"), 
                         "Province", adm_level )) %>% 
  filter(!(place %in% c("Cotabato City,","Isabela City,", "Province"))) %>%
  
  # imputing the missing region and Drop the city
  mutate(region = if_else(place == "Aurora", "Region III", region)) %>% 
  mutate(region = if_else(place == "Batanes", "Region II", region)) %>% 
  mutate(region = if_else(place == "Camiguin", "Region X", region)) %>% 
  mutate(region = if_else(place == "Guimaras,", "Region VI", region)) %>% 
  mutate(region = if_else(place == "Siquijor,", "Region VII", region)) %>% 
  filter(!(region %in% c("Cotabato City", "Isabela City")))
  
skim(clean_df) 
Data summary
Name clean_df
Number of rows 2826
Number of columns 7
_______________________
Column type frequency:
character 5
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Variable 0 1 26 46 0 7 0
place 0 1 3 19 0 101 0
adm_level 0 1 6 8 0 4 0
region 0 1 3 11 0 18 0
unit 0 1 1 10 0 4 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Year 0 1 2010.5 3.35 2006 2006.75 2009.0 2012.00 2015 ▇▇▁▇▇
value 0 1 156656.8 974332.67 0 25.50 14341.5 79277.75 23745895 ▇▁▁▁▁
sampledf <- clean_df %>% 
  filter(place != region) %>% 
   filter(place != "PHILIPPINES")

unique(sampledf$adm_level)
## [1] "District" "Province" "Region"

Its seems there still a region in place column but we gonna find out why still there is a value of region in this column.

sampledf %>% 
  filter(place %in% c("Caraga", "Region IV-A")) %>% 
  select(place, region)
## # A tibble: 56 x 2
##    place  region
##    <chr>  <chr> 
##  1 Caraga CARAGA
##  2 Caraga CARAGA
##  3 Caraga CARAGA
##  4 Caraga CARAGA
##  5 Caraga CARAGA
##  6 Caraga CARAGA
##  7 Caraga CARAGA
##  8 Caraga CARAGA
##  9 Caraga CARAGA
## 10 Caraga CARAGA
## # ... with 46 more rows

Upon examining the dataset, we noticed that the region column contains the string “Caraga” in lowercase, which is not the same as “CARAGA” in the filter condition we used earlier. Additionally, we found that the value “Region IV-A” in the region column should actually be “Region VI-A”.

clean_df <- clean_df  %>% 
  filter(place != region) %>% 
   filter(place != "PHILIPPINES") %>% 
  filter(!(place %in% c("Caraga", "Region IV-A")))
clean_df
## # A tibble: 2,322 x 7
##    Variable                             Year place  value adm_level region unit 
##    <chr>                               <dbl> <chr>  <dbl> <chr>     <chr>  <chr>
##  1 Annual Per Capita Poverty Threshol~  2006 1st ~ 1.57e4 District  NCR    in P~
##  2 Annual Per Capita Poverty Threshol~  2009 1st ~ 1.92e4 District  NCR    in P~
##  3 Annual Per Capita Poverty Threshol~  2012 1st ~ 2.03e4 District  NCR    in P~
##  4 Annual Per Capita Poverty Threshol~  2015 1st ~ 2.50e4 District  NCR    in P~
##  5 Poverty Incidence among Families (~  2006 1st ~ 2.7 e0 District  NCR    %    
##  6 Poverty Incidence among Families (~  2009 1st ~ 3.2 e0 District  NCR    %    
##  7 Poverty Incidence among Families (~  2012 1st ~ 3.6 e0 District  NCR    %    
##  8 Poverty Incidence among Families (~  2015 1st ~ 3.5 e0 District  NCR    %    
##  9 Magnitude of Poor Families           2006 1st ~ 9.91e3 District  NCR    fami~
## 10 Magnitude of Poor Families           2009 1st ~ 1.24e4 District  NCR    fami~
## # ... with 2,312 more rows
  • After conducting data cleaning, it has come to my attention that there are some values in the “place” column that do not appear to be valid since this value is a region and the Country It’s self so we gonna drop it since we only focusing on the Province and district.

  • To further process the data, we will be converting it from a long format to a wide format. This transformation will enable us to better analyze and interpret the data, and potentially uncover patterns or insights that may not be readily apparent in the original format. By organizing the data in a wider format, we can facilitate comparisons between the different categories and make it easier to draw medianingful conclusions from the data. This step will contribute to a more comprehensive and insightful analysis of the dataset, ultimately aiding us in achieving our analysis goals.

# convert the data from long format to wide format

wide_df <- clean_df %>% 
  pivot_wider(names_from = Variable, values_from = value)

head(wide_df)
## # A tibble: 6 x 12
##    Year place        adm_level region unit     `Annual Per Ca~` `Poverty Incid~`
##   <dbl> <chr>        <chr>     <chr>  <chr>               <dbl>            <dbl>
## 1  2006 1st District District  NCR    in Pesos            15699             NA  
## 2  2009 1st District District  NCR    in Pesos            19227             NA  
## 3  2012 1st District District  NCR    in Pesos            20344             NA  
## 4  2015 1st District District  NCR    in Pesos            25007             NA  
## 5  2006 1st District District  NCR    %                      NA              2.7
## 6  2009 1st District District  NCR    %                      NA              3.2
## # ... with 5 more variables: `Magnitude of Poor Families` <dbl>,
## #   `Poverty Incidence among Population (%)` <dbl>,
## #   `Magnitude of Poor Population` <dbl>,
## #   `Subsistence Incidence among Population (%)` <dbl>,
## #   `Magnitude of Subsistence Poor Population` <dbl>
 TOTAL_APCPT_YEAR <- wide_df %>% 
  group_by(Year) %>% 
  summarise("Total Annual Per Capita Poverty Threshold (in Pesos)" = sum(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm  = TRUE))
 TOTAL_APCPT_YEAR
## # A tibble: 4 x 2
##    Year `Total Annual Per Capita Poverty Threshold (in Pesos)`
##   <dbl>                                                  <dbl>
## 1  2006                                                1121404
## 2  2009                                                1409987
## 3  2012                                                1584129
## 4  2015                                                1818947

First Insight

Describe the Annual per capita poverty threshold. compare this threshold across different regions, province and District and across time.

 TOTAL_APCPT_YEAR %>% 
  ggplot(aes( x= as.Date(paste0(Year, "-01-01")), y = `Total Annual Per Capita Poverty Threshold (in Pesos)`)) +
  geom_line(size = 0.8, colour = "#112446") +
  geom_point( shape=21, color="black", fill="#69b3a2", size=6)+
  geom_smooth(method = lm, se = F) +
  annotate("text", x = as.Date("2010-01-01"), y = 2.2e6, label = paste0("Correlation = ", round(cor(TOTAL_APCPT_YEAR$Year, TOTAL_APCPT_YEAR$`Total Annual Per Capita Poverty Threshold (in Pesos)`, use = "complete.obs"), 5))) +
  labs(y = "Pesos",
       x = "Year",
       title = "Total Annual Per Capita Poverty Threshold (in Pesos) Per Year") +
  theme_classic() +
  scale_x_date(date_breaks = "1 year",
               date_labels = "%Y", 
               limits = as.Date(c("2006-01-01", "2015-01-01")))
## `geom_smooth()` using formula 'y ~ x'

Graph 1.0 explanation

  • The line graph shows the Annual Per Capita Poverty Threshold over a period of 10 years, from 2006 to 2015. We can see that there is a sharp rise in the poverty threshold during this period.

  • The line on the graph appears to be almost straight, indicating that the increase in poverty threshold was steady and linear during these 10 years.

  • Moreover, if we look at the correlation coefficient (a measure of how closely two variables are related), it has a value of 0.9956, which is very close to 1. This indicates a strong positive correlation between the year and the Annual Per Capita Poverty Threshold, medianing that as the year increases, the poverty threshold also increases.

  • Another interesting observation is that there is a higher increase in the poverty threshold every 3 years from 2006 to 2015. This could be due to various factors such as inflation, economic growth, and government policies.

  • Overall, the graph clearly illustrates the increase in poverty threshold over time, and the strong correlation between the year and the poverty threshold.

Region

region_total <- wide_df %>%
  group_by(region) %>%
  summarize(total_Poverty_Threshold = sum(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>% 
  arrange(desc(total_Poverty_Threshold))
region_total
## # A tibble: 17 x 2
##    region      total_Poverty_Threshold
##    <chr>                         <dbl>
##  1 Region III                   522265
##  2 CAR                          433308
##  3 Region V                     417982
##  4 Region VI                    415185
##  5 Region VIII                  411670
##  6 Region II                    378401
##  7 Region VI-A                  364812
##  8 Region X                     353059
##  9 ARMM                         346354
## 10 Region IV-B                  329981
## 11 NCR                          321108
## 12 CARAGA                       298774
## 13 Region XI                    293953
## 14 Region I                     287347
## 15 Region VII                   280534
## 16 Region XII                   276311
## 17 Region IX                    203423
region_total %>% 
  mutate(region = fct_reorder(region, total_Poverty_Threshold, .desc = F)) %>% 
ggplot(data = , aes(x =region, y = total_Poverty_Threshold)) +
  geom_segment(aes(x = region, y = 0, xend = region, yend = total_Poverty_Threshold), color = "gray") +
  geom_point(size = 3, color = "#3960E9", shape = 21, fill = "white", stroke = 1.2) +
  coord_flip() +
  labs(x = "Region", y = "Total Annual Per Capita Poverty Threshold (in Pesos)", title = "Total Annual Per Capita Poverty Threshold by Region (2006-2015)") +
  theme_minimal() +
  scale_y_continuous(labels = comma)

Graph 1.1 explanation

The lollipop chart above shows the total annual per capita poverty threshold by region in the Philippines, ranked from highest to lowest. The ranking begins with Region III having the highest threshold and Region IX having the lowest. It is interesting to note that the ranking is not necessarily consistent with the geographical location of the regions.

Regions III, CAR, V, VI, and VIII have the highest poverty threshold, while Regions IV-B, NCR, CARAGA, XI, and I have a lower threshold. Region IX has the lowest poverty threshold. This ranking can provide insight into the economic conditions of each region and can be useful for policy makers in allocating resources for poverty reduction programs.

It is important to note that poverty threshold is not the same as poverty incidence. Poverty threshold refers to the minimum income required to meet basic needs such as food, clothing, and shelter, while poverty incidence refers to the percentage of individuals or families falling below the poverty line.

Overall, the graph highlights the need for targeted poverty reduction efforts in regions with the lowest poverty threshold, as well as continued support for poverty reduction programs in regions with high poverty threshold to maintain their progress.

region_total <- wide_df %>%
  group_by(region, Year) %>%
  summarize(total_Poverty_Threshold = sum(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>% 
  arrange(desc(total_Poverty_Threshold))
## `summarise()` has grouped output by 'region'. You can override using the
## `.groups` argument.
region_total
## # A tibble: 68 x 3
## # Groups:   region [17]
##    region       Year total_Poverty_Threshold
##    <chr>       <dbl>                   <dbl>
##  1 Region III   2015                  162575
##  2 Region III   2012                  138464
##  3 CAR          2015                  130509
##  4 Region VIII  2015                  129732
##  5 Region V     2015                  128877
##  6 Region VI    2015                  128632
##  7 Region III   2009                  123194
##  8 CAR          2012                  116271
##  9 Region II    2015                  115874
## 10 Region VI-A  2015                  113132
## # ... with 58 more rows
top_region_per_year <- function(year){
    region_total <- wide_df %>%
      filter(Year == year) %>% 
      group_by(region) %>%
      summarize(total_Poverty_Threshold = sum(`Annual Per Capita Poverty Threshold (in Pesos)`,       na.rm = TRUE)) %>% 
      arrange(desc(total_Poverty_Threshold))
    
    
    region_total %>% 
      mutate(region = fct_reorder(region, total_Poverty_Threshold, .desc = F)) %>% 
    ggplot(data = , aes(x =region, y = total_Poverty_Threshold)) +
      geom_segment(aes(x = region, y = 0, xend = region, yend = total_Poverty_Threshold), 
                   color = "gray") +
      geom_point(size = 3, color = "#3960E9", shape = 21, fill = "white", stroke = 1.2) +
      coord_flip() +
      labs(x = "", y = "", 
           title = year) +
      theme_minimal() +
      scale_y_continuous(labels = comma)
}

top_region_2006 <- top_region_per_year("2006")
top_region_2009 <- top_region_per_year("2009")
top_region_2012 <- top_region_per_year("2012")
top_region_2015 <- top_region_per_year("2015")


(top_region_2006 | top_region_2009) / (top_region_2012 | top_region_2015) +
  plot_annotation(title = "Regions Total Annual Per Capita Poverty Threshold per Year",
                  theme = theme(plot.title = element_text(hjust = 0.5, face = "bold")))

Graph 1.2 Explanation

  • The graph displays the total annual per capita poverty threshold by region from 2006 to 2015. It shows that Regions III and CAR consistently hold the top 2 spots with the highest poverty threshold, while Region IX consistently holds the last spot with the lowest poverty threshold. This indicates a significant difference in poverty levels across regions, highlighting the need for targeted and region-specific poverty reduction strategies. Understanding the variation in poverty threshold across regions is essential in designing policies and interventions that effectively address the specific needs and circumstances of each region.

Province

 wide_df %>%
  filter(adm_level == "region")
## # A tibble: 0 x 12
## # ... with 12 variables: Year <dbl>, place <chr>, adm_level <chr>,
## #   region <chr>, unit <chr>,
## #   Annual Per Capita Poverty Threshold (in Pesos) <dbl>,
## #   Poverty Incidence among Families (%) <dbl>,
## #   Magnitude of Poor Families <dbl>,
## #   Poverty Incidence among Population (%) <dbl>,
## #   Magnitude of Poor Population <dbl>, ...
# Filter the top 10 provinces with the highest median Annual Per Capita Poverty Threshold (in Pesos)
top10 <- wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place) %>%
  summarize(median_Poverty_Threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  top_n(10, median_Poverty_Threshold) %>% 
  arrange(desc(median_Poverty_Threshold))

# Sort the wide_df dataset by median poverty threshold and reorder place factor variable
sorted_df <- wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place) %>% 
  summarize(median_poverty_threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  arrange(desc(median_poverty_threshold)) %>% 
  inner_join(wide_df, by = "place") %>% 
  mutate(place = fct_reorder(place, median_poverty_threshold))

# Plot the top 10 provinces using a horizontal box plot
sorted_df %>% 
  filter(place %in% top10$place) %>% 
  ggplot(aes(y = `Annual Per Capita Poverty Threshold (in Pesos)`, x = place, fill )) +
  geom_boxplot(fill = "#69b3a2") + 
  
  labs(title = "Top 10 Provinces with the Highest median Annual Per Capita Poverty Threshold",
       y = "Annual Per Capita Poverty Threshold (in Pesos)", x = "") +
  theme_minimal() +
  coord_flip() +
 theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Graph 1.3 explanation

  • The boxplot above shows the distribution of the Annual Per Capita Poverty Threshold (in Pesos) per Province. There are a total of 79 provinces in the Philippines, and based on the graph, we can identify the Top 10 Provinces with the Highest median Annual Per Capita Poverty Threshold. These provinces are Batanes (with a median poverty threshold of 23,234.50 pesos), Zambales (20,166.50 pesos), Nueva Ecija (19,789.50 pesos), Mt. Province (19,628.00 pesos), Agusan del Sur (19,370.50 pesos), Compostela Valley(19,360.00 pesos), Rizal (19,351.50 pesos) and Bulacan (19,172.00 pesos). .

  • The highest median Annual Per Capita Poverty Threshold is found in Batanes, which also has the highest median value, indicating that this province is relatively higher cost of meeting basic needs compared to all other provinces in the Philippines. Furthermore, the Annual Per Capita Poverty Threshold in Batanes is the highest among all provinces.

  • In top provinces also We can also observe that the IQR is wider in Lanao del Sur, which suggests that the poverty threshold is more widely spread out in this province compared to others. In contrast, the smallest spread of IQR is found in the province of Agusan del Sur.

top10_total_Poverty_Threshold <- wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place, Year) %>%
  summarize(total_Poverty_Threshold = sum(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  arrange(desc(total_Poverty_Threshold)) %>% 
  group_by(Year) %>% 
  top_n(10, total_Poverty_Threshold)
## `summarise()` has grouped output by 'place'. You can override using the
## `.groups` argument.
top10_total_Poverty_Threshold
## # A tibble: 40 x 3
## # Groups:   Year [4]
##    place            Year total_Poverty_Threshold
##    <chr>           <dbl>                   <dbl>
##  1 Batanes          2015                   29118
##  2 Zambales         2015                   26473
##  3 Cavite           2015                   24882
##  4 Bataan           2015                   24770
##  5 Batanes          2012                   24693
##  6 Davao del Norte  2015                   24424
##  7 Rizal            2015                   24198
##  8 Bukidnon         2015                   23682
##  9 Mt. Province     2015                   23620
## 10 Nueva Ecija      2015                   23403
## # ... with 30 more rows
top10_per_year <- function(year){
  top10_total_Poverty_Threshold %>%
  filter(Year == year) %>%
  mutate(place = fct_reorder(place, total_Poverty_Threshold, .desc = F)) %>% 
  ggplot(aes(x = place, weight = total_Poverty_Threshold, fill = total_Poverty_Threshold))+
  geom_bar(width = 0.6, show.legend = F) +
  coord_flip() +
  labs(x = "", y = "", title = year) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = .5, size = 10)
  ) +
  scale_fill_gradient(low = "#50D4C5", high = "#3960E9") +
  geom_text(aes(label = total_Poverty_Threshold, y = total_Poverty_Threshold + 50), color = "black", size = 3, hjust = 1.1)

}

top10_2006 <- top10_per_year("2006")
top10_2009 <- top10_per_year("2009")
top10_2012 <- top10_per_year("2012")
top10_2015 <- top10_per_year("2015")


(top10_2006 | top10_2009) / (top10_2012 | top10_2015) +
  plot_annotation(title = "Top 10 Provinces with the Highest Total Annual Per Capita Poverty Threshold per Year",
                  theme = theme(plot.title = element_text(hjust = 0.5, face = "bold")))

Graph 1.4 explanation

  • The graph above shows the top 10 provinces with the highest Annual Per Capita Poverty Threshold per Year from 2000 to 2015. We can see that over the years, the value of the poverty threshold for each province has been increasing, and this trend is consistent across all provinces.

  • One province that stands out is Batanes, which consistently has a high Annual Per Capita Poverty Threshold over the years. It also has a higher average Annual Per Capita Poverty Threshold compared to other provinces.

  • The provinces with the highest median Annual Per Capita Poverty Threshold - Batanes, Nueva Ecija, Zambales, and Mt. Provinces - are consistently seen in the top 10 provinces with the highest total Capita Poverty Threshold per year from 2006 to 2015. This suggests that these findings are related to each other.

  • In summary, the graph shows that the poverty threshold has been increasing over the years for all provinces, and Batanes consistently has a higher poverty threshold compared to other provinces. The top provinces with the highest median Annual Per Capita Poverty Threshold are also seen in the top 10 provinces with the highest total Capita Poverty Threshold per year, indicating a relationship between the two findings.

wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place) %>%
  summarize(median_Poverty_Threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  top_n(10, -median_Poverty_Threshold) %>% 
  arrange(median_Poverty_Threshold)
## # A tibble: 10 x 2
##    place             median_Poverty_Threshold
##    <chr>                                <dbl>
##  1 Western Samar                       15491 
##  2 Palawan                             15557 
##  3 Tawi-tawi                           15622.
##  4 Negros Occidental                   16082 
##  5 Negros Oriental                     16107 
##  6 Zamboanga del Sur                   16320 
##  7 Biliran                             16372.
##  8 Marinduque                          16429 
##  9 North Cotabato                      16601 
## 10 Kalinga                             16640.
# Filter the top 10 provinces with the lowest median Annual Per Capita Poverty Threshold (in Pesos)
bottom10 <-wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place) %>%
  summarize(median_Poverty_Threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  top_n(10, -median_Poverty_Threshold) %>% 
  arrange(median_Poverty_Threshold)

# Sort the wide_df dataset by median poverty threshold and reorder place factor variable
sorted_df <- wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place) %>% 
  summarize(median_poverty_threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  arrange(median_poverty_threshold) %>% 
  inner_join(wide_df, by = "place") %>% 
  mutate(place = fct_reorder(place, median_poverty_threshold, .desc = T))

# Plot the top 10 provinces using a horizontal box plot
sorted_df %>% 
  filter(place %in% bottom10$place) %>% 
  ggplot(aes(y = `Annual Per Capita Poverty Threshold (in Pesos)`, x = place, fill )) +
  geom_boxplot(fill = "#69b3a2") + 
  
  labs(title = "Top 10 Provinces with the lowest median Annual Per Capita Poverty Threshold",
       y = "Annual Per Capita Poverty Threshold (in Pesos)", x = "") +
  theme_minimal() +
  coord_flip() +
 theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Graph 1.5 explanation

  • The boxplot above displays the distribution of Annual Per Capita Poverty Threshold (in Pesos) across all provinces in the Philippines. From the boxplot, we can see that the province of Western Samar has the lowest median value of Annual Per Capita Poverty Threshold (in Pesos) compared to other provinces.
top10_total_Poverty_Threshold_lowest <- wide_df %>%
  filter(adm_level == "Province") %>% 
  group_by(place, Year) %>%
  summarize(total_Poverty_Threshold = sum(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  arrange(desc(total_Poverty_Threshold)) %>% 
  group_by(Year) %>% 
  top_n(10,  - total_Poverty_Threshold) %>% 
  arrange(total_Poverty_Threshold)
## `summarise()` has grouped output by 'place'. You can override using the
## `.groups` argument.
top10_total_Poverty_Threshold_lowest
## # A tibble: 40 x 3
## # Groups:   Year [4]
##    place              Year total_Poverty_Threshold
##    <chr>             <dbl>                   <dbl>
##  1 Zamboanga del Sur  2006                   11508
##  2 Negros Oriental    2006                   11518
##  3 Palawan            2006                   11521
##  4 Tawi-tawi          2006                   11557
##  5 Western Samar      2006                   11607
##  6 Negros Occidental  2006                   11826
##  7 Biliran            2006                   11841
##  8 Aurora             2006                   11883
##  9 North Cotabato     2006                   12077
## 10 Camiguin           2006                   12152
## # ... with 30 more rows
top10_per_year <- function(year){
  top10_total_Poverty_Threshold_lowest %>%
  filter(Year == year) %>%
  mutate(place = fct_reorder(place, total_Poverty_Threshold, .desc = F)) %>% 
  ggplot(aes(x = place, weight = total_Poverty_Threshold, fill = total_Poverty_Threshold))+
  geom_bar(width = 0.6, show.legend = F) +
  coord_flip() +
  labs(x = "", y = "", title = year) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = .5, size = 10)
  ) +
  scale_fill_gradient(low = "#50D4C5", high = "#3960E9") +
  geom_text(aes(label = total_Poverty_Threshold, y = total_Poverty_Threshold + 50), color = "black", size = 3, hjust = 1.1)

}

top10_2006 <- top10_per_year("2006")
top10_2009 <- top10_per_year("2009")
top10_2012 <- top10_per_year("2012")
top10_2015 <- top10_per_year("2015")


(top10_2006 | top10_2009) / (top10_2012 | top10_2015) +
  plot_annotation(title = "Top 10 Provinces with the Lowest Total Annual Per Capita Poverty Threshold per Year",
                  theme = theme(plot.title = element_text(hjust = 0.5, face = "bold")))

Graph 1.6 explanation

  • The graph above displays the Top 10 Provinces with the Lowest Total Annual Per Capita Poverty Threshold per Year in the Philippines. From the graph, we can see that the provinces with the lowest total values are Zamboanga del Sur, Negros Oriental, Western Samar, and Tawi-Tawi in years 2006, 2009, 2012, and 2015, respectively. We can also observe that the total values of these provinces have been increasing over the years.

  • It is surprising to note that the smallest province, Western Samar, did not consistently belong to the top in terms of having the lowest Total Annual Per Capita Poverty Threshold per Year, unlike the province of Batanes in an earlier analysis where it had a higher mean and also led in having the highest Total Annual Per Capita Poverty Threshold over the years.

  • Moreover, the provinces of Negros Oriental, Palawan, Western Samar, and Tawi-Tawi consistently belong to the top provinces with the lowest median Total Annual Per Capita Poverty Threshold. We can also observe that some provinces with the lowest median values can be seen in some years, indicating the accuracy of our analysis as the results of the graph are related to the previous analysis.

  • In summary, the graph shows that the total Annual Per Capita Poverty Threshold values of the provinces with the lowest values have been increasing over the years. The smallest province, Western Samar, did not consistently belong to the top, while other provinces like Negros Oriental, Palawan, Western Samar, and Tawi-Tawi consistently belong to the top provinces with the lowest median Total Annual Per Capita Poverty Threshold. The results of the graph are related to the previous analysis, indicating the accuracy of our analysis.

District

top10 <- wide_df %>%
  filter(adm_level == "District") %>% 
  group_by(place) %>%
  summarize(median_Poverty_Threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  top_n(10, median_Poverty_Threshold) %>% 
  arrange(desc(median_Poverty_Threshold))
top10
## # A tibble: 4 x 2
##   place        median_Poverty_Threshold
##   <chr>                           <dbl>
## 1 1st District                   19786.
## 2 2nd District                   19786.
## 3 3rd District                   19786.
## 4 4th District                   19786.
# Filter the top district with the lowest median Annual Per Capita Poverty Threshold (in Pesos)
bottom10 <-wide_df %>%
  filter(adm_level == "District") %>% 
  group_by(place) %>%
  summarize(median_Poverty_Threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  top_n(10, -median_Poverty_Threshold) %>% 
  arrange(desc(median_Poverty_Threshold))

# Sort the wide_df dataset by median poverty threshold and reorder place factor variable
sorted_df <- wide_df %>%
  filter(adm_level == "District") %>% 
  group_by(place) %>% 
  summarize(median_poverty_threshold = median(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  arrange(desc(median_poverty_threshold)) %>% 
  inner_join(wide_df, by = "place") %>% 
  mutate(place = fct_reorder(place, median_poverty_threshold))

# Plot the top district using a horizontal box plot
sorted_df %>% 
  filter(place %in% bottom10$place) %>% 
  ggplot(aes(y = `Annual Per Capita Poverty Threshold (in Pesos)`, x = place, fill )) +
  geom_boxplot(fill = "#69b3a2", width = .5) + 
  
  labs(title = "Districts in NCR with the median Annual Per Capita Poverty Threshold",
       y = "Annual Per Capita Poverty Threshold (in Pesos)", x = "") +
  theme_minimal() +
 theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Graph 1.7 explanation

For the distribution in District in adml_level is almost same value of 19785.5 pesos

The

top10_total_Poverty_Threshold_district <- wide_df %>%
  filter(adm_level == "District") %>% 
  group_by(place, Year) %>%
  summarize(total_Poverty_Threshold = sum(`Annual Per Capita Poverty Threshold (in Pesos)`, na.rm = TRUE)) %>%
  arrange(desc(total_Poverty_Threshold)) %>% 
  group_by(Year) %>% 
  top_n(10, total_Poverty_Threshold)
## `summarise()` has grouped output by 'place'. You can override using the
## `.groups` argument.
top10_total_Poverty_Threshold
## # A tibble: 40 x 3
## # Groups:   Year [4]
##    place            Year total_Poverty_Threshold
##    <chr>           <dbl>                   <dbl>
##  1 Batanes          2015                   29118
##  2 Zambales         2015                   26473
##  3 Cavite           2015                   24882
##  4 Bataan           2015                   24770
##  5 Batanes          2012                   24693
##  6 Davao del Norte  2015                   24424
##  7 Rizal            2015                   24198
##  8 Bukidnon         2015                   23682
##  9 Mt. Province     2015                   23620
## 10 Nueva Ecija      2015                   23403
## # ... with 30 more rows
top10_per_year_district <- function(year){
  top10_total_Poverty_Threshold_district %>%
  filter(Year == year) %>%
  mutate(place = fct_reorder(place, total_Poverty_Threshold, .desc = F)) %>% 
  ggplot(aes(x = place, weight = total_Poverty_Threshold, fill = total_Poverty_Threshold))+
  geom_bar(width = 0.6, show.legend = F) +
  coord_flip() +
  labs(x = "", y = "", title = year) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = .5, size = 10)
  ) +
  scale_fill_gradient(low = "#50D4C5", high = "#3960E9") +
  geom_text(aes(label = total_Poverty_Threshold, y = total_Poverty_Threshold + 50), color = "black", size = 3, hjust = 1.1)

}

top10_2006 <- top10_per_year_district("2006")
top10_2009 <- top10_per_year_district("2009")
top10_2012 <- top10_per_year_district("2012")
top10_2015 <- top10_per_year_district("2015")


(top10_2006 | top10_2009) / (top10_2012 | top10_2015) +
  plot_annotation(title = "Districts in NCR with the Highest Total Annual Per Capita Poverty Threshold per Year",
                  theme = theme(plot.title = element_text(hjust = 0.5, face = "bold")))

Graph 1.8 explanation

The bar graph of districts in NCR with the Highest Total Annual Per Capita Poverty Threshold per Year poverty threshold per year has the same value per year as it has no insight at all.

Second Insight

Compare the Total Magnitude of Poor Families from 1991 – 2015 and per region.

 TOTAL_MPF_YEAR <- wide_df %>% 
  group_by(Year) %>% 
  summarise("Total Magnitude of Poor Families" = sum(`Magnitude of Poor Families`, na.rm  = TRUE)) %>% 
  arrange(desc(`Total Magnitude of Poor Families`))
TOTAL_MPF_YEAR
## # A tibble: 4 x 2
##    Year `Total Magnitude of Poor Families`
##   <dbl>                              <dbl>
## 1  2012                            4189937
## 2  2009                            4016936
## 3  2006                            3791135
## 4  2015                            3729660
TOTAL_MPF_YEAR %>% 
  ggplot(aes(x = as.Date(paste0(Year, "-01-01")), y = `Total Magnitude of Poor Families`)) +
  geom_line(size = 0.8, colour = "#112446") +
  geom_point(shape = 21, color = "black", fill = "#69b3a2", size = 6) +
  labs(y = "Famillies",
       x = "Year",
       title = "Total Magnitude of Poor Families Per Year") +
  theme_classic() +
  scale_x_date(date_breaks = "1 year",
               date_labels = "%Y",
               limits = as.Date(c("2006-01-01", "2015-01-01"))) +
  scale_y_continuous(limits = c(2000000, NA))+
   theme(plot.title = element_text(hjust = 0.5, face = "bold"))

Graph 2.0 explanation

  • The line graph above displays the total magnitude of poor families per year in a given population from 2006 to 2015. We can see that there was an increase of around 100,000 to 300,000 total families falling under the poverty line over the course of these years. This indicates a concerning trend of growing poverty within the population during this time period.

  • However, it is worth noting that from the year 2012 to 2015, there is a decrease of 460,277 total families. This is an encouraging trend, as it suggests that measures taken to combat poverty may have started to take effect, resulting in a decline in the total number of families falling under the poverty line.

  • It is important to keep in mind that the line graph does not show a consistent increase or decrease in the total magnitude of poor families per year, making it difficult to identify a clear trend. Nevertheless, the graph does provide insight into the changes in poverty rates over time and can be used to identify any significant changes that have occurred.

  • Overall, the line graph highlights the need for continued efforts to combat poverty in the population, while also acknowledging that progress can be made in reducing the total number of families falling under the poverty line.

TOTAL_MPF_region <- wide_df %>% 
  group_by(region) %>% 
  summarise("Total Magnitude of Poor Families" = sum(`Magnitude of Poor Families`, na.rm  = TRUE)) %>% 
  arrange(desc(`Total Magnitude of Poor Families`))
TOTAL_MPF_region
## # A tibble: 17 x 2
##    region      `Total Magnitude of Poor Families`
##    <chr>                                    <dbl>
##  1 Region VII                             1589681
##  2 Region V                               1470263
##  3 Region VI                              1316966
##  4 Region VIII                            1202323
##  5 Region X                               1194120
##  6 Region XII                             1151583
##  7 Region IX                               994771
##  8 ARMM                                    986681
##  9 Region XI                               943357
## 10 Region VI-A                             904149
## 11 Region III                              903259
## 12 CARAGA                                  766449
## 13 Region I                                630997
## 14 Region IV-B                             608278
## 15 Region II                               512696
## 16 NCR                                     294103
## 17 CAR                                     257992
 TOTAL_MPF_region %>%
  mutate(region = fct_reorder(region, `Total Magnitude of Poor Families`, .desc = F)) %>% 
  ggplot(aes(x = region, weight = `Total Magnitude of Poor Families`, fill = `Total Magnitude of Poor Families`))+
  geom_bar(width = 0.8, show.legend = F) +
  coord_flip() +
  labs(x = "", y = "", title =  "Total Magnitude of Poor Families Per Region") +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = .5, size = 10)
  ) +
  scale_fill_gradient(low = "#50D4C5", high = "#3960E9") +
  geom_text(aes(label = scales::comma_format()(`Total Magnitude of Poor Families`), y = `Total Magnitude of Poor Families` + 50), color = "black", size = 3, hjust = 1.1) +
   theme(plot.title = element_text(hjust = 0.5, face = "bold"))

graph 2.1 explanation

  • The bar graph displays the total magnitude of poor families per Region in the Philippines. Region VII has the highest magnitude with 1,589,681 poor families, followed by Region V and VI. On the other hand, CAR has the lowest magnitude of poor families, followed by NCR and Region II. The graph provides insight into the distribution of poverty across the regions and can be used to inform policies and interventions aimed at reducing poverty in the country.

Third Insight

Correlations between different poverty indicators: You can also explore the relationships between different poverty indicators to understand how poverty incidence, magnitude, and subsistence incidence are related

selected_vars <- wide_df %>% 
  select(`Annual Per Capita Poverty Threshold (in Pesos)`, `Poverty Incidence among Families (%)`, `Magnitude of Poor Families`, `Poverty Incidence among Population (%)`,`Magnitude of Poor Population`,`Subsistence Incidence among Population (%)`, `Magnitude of Subsistence Poor Population`)
# Compute the correlation matrix using the cor() function
cor_matrix <- cor(selected_vars, use = "pairwise.complete.obs")

# Convert the correlation matrix to a data frame
cor_df <- as.data.frame(cor_matrix)

# Add a column with the variable names
cor_df$variable1 <- rownames(cor_df)

# Convert the data frame to a tidy format using the pivot_longer() function
cor_tidy <- pivot_longer(cor_df, -variable1, names_to = "variable2", values_to = "correlation")

# Normalize the correlation values to a continuous scale between 0 and 1
cor_tidy$correlation_norm <- (cor_tidy$correlation + 1) / 2

# Plot the correlation matrix as a heatmap using ggplot2
ggplot(cor_tidy, aes(variable1, variable2, fill = correlation_norm)) +
  geom_tile() +
  scale_fill_gradient2(low="white", mid = "#50D4C5", high="blue", midpoint = 0.5, na.value = "white") +
  theme_minimal() +
  labs(x = NULL, y = NULL, fill = "Correlation", title = "poverty indicators Correlation") +
  theme(axis.text.x = element_text( angle = 90)) +
  geom_text(aes(label = round(correlation,2)), size = 3, color = "white")

Graph 3.0 explanation

  • The matrix shows the correlation coefficients between poverty indicators in the Philippines. The coefficients range from -1 to 1, with positive values indicating a positive correlation and negative values indicating a negative correlation.

  • This matrix illustrates the degree to which poverty indicators in the Philippines are correlated with each other. The high correlations suggest that addressing one aspect of poverty can have spillover effects on other indicators, underscoring the importance of a coordinated and comprehensive approach.

  • The values indicate a high positive correlation between the magnitude of subsistence poor population and the magnitude of poor population at 0.93. Additionally, there is a high positive correlation between poverty incidence among the population and poverty incidence among families at 0.99. Furthermore, poverty incidence among families and subsistence incidence among the population have a high positive correlation of 0.92. These findings suggest that these poverty indicators are closely related and can provide a comprehensive understanding of poverty in a population.

Summary

First Insight

Describe the Annual per capita poverty threshold. compare this threshold across different regions, province and District and across time.

  • The line graph shows the Annual Per Capita Poverty Threshold over a period of 10 years, and it indicates a steady and linear increase during this period. The correlation coefficient value of 0.9956 indicates a strong positive correlation between the year and the poverty threshold. Additionally, there is a noticeable increase in the poverty threshold every 3 years, which could be due to various factors. Overall, the graph demonstrates the increasing poverty threshold over time and the strong correlation between the year and poverty threshold.

  • The graph ranks the total annual per capita poverty threshold by region in the Philippines, with Region III having the highest and Region IX having the lowest. This ranking can guide policy makers in allocating resources for poverty reduction programs. Targeted efforts are needed in regions with the lowest poverty threshold, while continued support is necessary in regions with high poverty threshold.

  • the poverty threshold across different regions from 2006 to 2015. It shows significant differences between regions, with Regions III and CAR having the highest and Region IX having the lowest poverty threshold consistently. This emphasizes the importance of region-specific poverty reduction strategies.

  • The Top 10 provinces with the highest median poverty threshold are identified, with Batanes having the highest value. The IQR is wider in Lanao del Sur, indicating a more widely spread poverty threshold, while Agusan del Sur has the smallest spread.

  • For the top 10 provinces with the highest Annual Per Capita Poverty Threshold from 2000 to 2015, the poverty threshold has been increasing over the years for all provinces, with Batanes consistently having the highest poverty threshold. The provinces with the highest median poverty threshold are also consistently among the top 10 provinces with the highest total poverty threshold per year.

  • The province of Western Samar has the lowest median value of Annual Per Capita Poverty Threshold (in Pesos) compared to other provinces.

  • the total Annual Per Capita Poverty Threshold values of the provinces with the lowest values have been increasing over the years. The smallest province, Western Samar, did not consistently belong to the top, while other provinces like Negros Oriental, Palawan, Western Samar, and Tawi-Tawi consistently belong to the top provinces with the lowest median Total Annual Per Capita Poverty Threshold. The results of the graph are related to the previous analysis, indicating the accuracy of our analysis.

  • The insight in District adm_lvl ios not useful at all because the result is almost has same value.

Second Insight

Compare the Total Magnitude of Poor Families from 1991 – 2015 and per region.

  • the total number of poor families per year from 2006 to 2015 in the Philippines. While there is a concerning trend of increasing poverty over this period, there is a decrease from 2012 to 2015, suggesting that measures to combat poverty may be effective. Continued efforts are needed to address poverty in the population.

  • the total number of poor families per region in the Philippines, with Region VII having the highest number of poor families, and CAR having the lowest. The graph provides valuable information for policymakers to design effective poverty reduction programs.

Third Insight

Correlations between different poverty indicators: You can also explore the relationships between different poverty indicators to understand how poverty incidence, magnitude, and subsistence incidence are related

  • The poverty indicators in the Philippines are highly correlated, with a positive relationship between subsistence poor population and poor population, poverty incidence among the population and families, and poverty incidence among families and subsistence incidence among the population. These correlations suggest that addressing one aspect of poverty can have spillover effects on other indicators, and provide a comprehensive understanding of poverty in the population.

Conclusion

  • From the first insight, we can conclude that the Annual Per Capita Poverty Threshold has been steadily increasing over time, and there are significant differences between regions, provinces, and districts. This emphasizes the need for region-specific poverty reduction strategies and resource allocation.

  • The second insight shows that while there is a concerning trend of increasing poverty in the Philippines, there has been a decrease from 2012 to 2015, suggesting that poverty reduction efforts may be effective. Additionally, Region VII has the highest number of poor families, while CAR has the lowest, which can guide policy makers in allocating resources for poverty reduction programs.

  • The third insight highlights the highly correlated nature of poverty indicators in the Philippines, emphasizing the need for a coordinated and comprehensive approach to poverty reduction. Addressing one aspect of poverty can have spillover effects on other indicators, and a comprehensive understanding of poverty in the population is necessary.