{"id":1277,"date":"2026-10-19T06:43:19","date_gmt":"2026-10-19T06:43:19","guid":{"rendered":"https:\/\/helpwithmygisassignment.com\/blog\/?p=1277"},"modified":"2026-10-19T06:30:21","modified_gmt":"2026-10-19T06:30:21","slug":"gwpca-spatial-analysis","status":"publish","type":"post","link":"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/","title":{"rendered":"Geographically Weighted Principal Component Analysis (GWPCA) in GIS"},"content":{"rendered":"<div><\/div>\n<div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Geographically_Weighted_Principal_Component_Analysis_GWPCA_in_GIS\" >Geographically Weighted Principal Component Analysis (GWPCA) in GIS<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Introduction_Why_Spatial_Data_Needs_Local_Multivariate_Analysis\" >Introduction: Why Spatial Data Needs Local Multivariate Analysis<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Global_PCA\" >Global PCA<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#GWPCA\" >GWPCA<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#1_Core_Concepts_of_Geographically_Weighted_PCA\" >1. Core Concepts of Geographically Weighted PCA<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#11_Global_PCA_as_the_starting_point\" >1.1 Global PCA as the starting point<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#12_What_makes_PCA_geographically_weighted\" >1.2 What makes PCA geographically weighted?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#13_Moving_spatial_weighting_matrices_and_kernel_functions\" >1.3 Moving spatial weighting matrices and kernel functions<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Common_kernel_functions\" >Common kernel functions<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#14_Local_means_and_covariance_matrices\" >1.4 Local means and covariance matrices<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#15_Interpreting_local_eigenvalues_and_eigenvectors\" >1.5 Interpreting local eigenvalues and eigenvectors<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#2_Step-by-Step_Practical_Workflow_in_R\" >2. Step-by-Step Practical Workflow in R<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_1_%E2%80%94_Prepare_the_spatial_attribute_table\" >Step 1 \u2014 Prepare the spatial attribute table<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_2_%E2%80%94_Install_and_load_the_R_packages\" >Step 2 \u2014 Install and load the R packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_3_%E2%80%94_Read_and_validate_the_spatial_dataset\" >Step 3 \u2014 Read and validate the spatial dataset<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_4_%E2%80%94_Handle_missing_values_and_low-variance_variables\" >Step 4 \u2014 Handle missing values and low-variance variables<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Why_standardization_matters\" >Why standardization matters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_5_%E2%80%94_Establish_a_global_PCA_baseline\" >Step 5 \u2014 Establish a global PCA baseline<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_6_%E2%80%94_Select_an_appropriate_spatial_bandwidth\" >Step 6 \u2014 Select an appropriate spatial bandwidth<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Fixed-distance_bandwidth\" >Fixed-distance bandwidth<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Adaptive_bandwidth\" >Adaptive bandwidth<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Choosing_the_bandwidth_strategy\" >Choosing the bandwidth strategy<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Automatically_select_a_bandwidth_with_bwgwpca\" >Automatically select a bandwidth with bw.gwpca()<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Step_7_%E2%80%94_Run_the_geographically_weighted_PCA\" >Step 7 \u2014 Run the geographically weighted PCA<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#3_Interpreting_the_Local_Variance_Explained_by_PC1\" >3. Interpreting the Local Variance Explained by PC1<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#31_What_does_the_first_principal_components_variance_percentage_mean\" >3.1 What does the first principal component&#8217;s variance percentage mean?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#32_Map_local_PC1_variance_explained\" >3.2 Map local PC1 variance explained<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#33_Interpret_the_local_loadings\" >3.3 Interpret the local loadings<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#34_Map_the_locally_dominant_variable\" >3.4 Map the locally dominant variable<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#4_Real-World_Application_Urban_Census_Data\" >4. Real-World Application: Urban Census Data<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#41_Research_objective\" >4.1 Research objective<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#42_Hypothetical_interpretation\" >4.2 Hypothetical interpretation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#43_Methodological_limitations\" >4.3 Methodological limitations<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#5_Summary_and_Best_Practices\" >5. Summary and Best Practices<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/#Technical_references\" >Technical references<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Geographically_Weighted_Principal_Component_Analysis_GWPCA_in_GIS\"><\/span>Geographically Weighted Principal Component Analysis (GWPCA) in GIS<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"Introduction_Why_Spatial_Data_Needs_Local_Multivariate_Analysis\"><\/span>Introduction: Why Spatial Data Needs Local Multivariate Analysis<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1281\" src=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_bnt6uubnt6uubnt6-1024x572.jpg\" alt=\"Geographically Weighted Principal Component Analysis visualizing spatial variation across geographic coordinates.\" width=\"1024\" height=\"572\" srcset=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_bnt6uubnt6uubnt6-1024x572.jpg 1024w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_bnt6uubnt6uubnt6-300x167.jpg 300w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_bnt6uubnt6uubnt6-768x429.jpg 768w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_bnt6uubnt6uubnt6.jpg 1376w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Principal Component Analysis (PCA) is a multivariate statistical technique used to reduce a large set of correlated variables into a smaller number of components that summarize the dominant patterns of variation in the data. It is widely used in environmental science, urban studies, remote sensing, public health, and socioeconomic research.<\/p>\n<p>However, geographic datasets introduce an important complication: relationships among variables may differ from one location to another.<\/p>\n<p>Consider a study of urban socioeconomic conditions using census data. Household income, unemployment, educational attainment, housing costs, and population age structure may describe one dominant dimension of urban inequality in a central business district, but a different dimension in a suburban or industrial region.<\/p>\n<p>A conventional global PCA calculates one covariance or correlation structure for the entire dataset. It provides a single set of principal components that summarizes the overall pattern. If the multivariate structure genuinely varies across space, that global summary can obscure important local differences.<\/p>\n<p>Geographically Weighted <a href=\"https:\/\/helpwithmygisassignment.com\/blog\/spatial-lag-vs-spatial-error-models\/\">Principal Component Analysis<\/a> (GWPCA) addresses this issue by calculating a locally weighted PCA around each observation location. Nearby observations receive greater weight than distant observations, allowing the principal component loadings, eigenvalues, and explained variance to vary spatially. GWPCA is therefore useful for exploring spatial non-stationarity in multivariate relationships. By capturing spatial heterogeneity, <b data-path-to-node=\"2,0,1,0\" data-index-in-node=\"37\">Geographically Weighted Principal Component Analysis<\/b> provides significantly deeper insights than traditional global reduction techniques.<\/p>\n<p>&nbsp;<\/p>\n<div>\n<div>\n<div>\n<div>\n<h3><span class=\"ez-toc-section\" id=\"Global_PCA\"><\/span>Global PCA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>All observations contribute to one global covariance or correlation matrix.<\/p>\n<div>\n<p>One component structure<\/p>\n<p>Global loadings and eigenvalues<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div>\n<div>\n<h3><span class=\"ez-toc-section\" id=\"GWPCA\"><\/span>GWPCA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Each evaluation location uses a distance-weighted neighborhood.<\/p>\n<div>\n<p>Local component structures<\/p>\n<p>Spatially varying loadings and eigenvalues<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Conceptual comparison. Local PCA structures are estimated from overlapping neighborhoods, not from independent, non-overlapping geographic zones.<\/p>\n<\/div>\n<p>It is important to make one methodological distinction. Global PCA does not explicitly test or impose a spatial stationarity assumption in the same way as a spatial regression model. Rather, applying ordinary PCA to a spatial dataset produces a single global component structure. GWPCA is useful when that global structure may be an inadequate summary of geographic variation.<\/p>\n<p>This tutorial develops the theory, explains spatial weighting and bandwidth selection, and demonstrates how to run and interpret GWPCA using R and the <code>GWmodel<\/code> package.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"1_Core_Concepts_of_Geographically_Weighted_PCA\"><\/span>1. Core Concepts of Geographically Weighted PCA<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"11_Global_PCA_as_the_starting_point\"><\/span>1.1 Global PCA as the starting point<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Suppose a geographic dataset contains <span data-math-source=\"n\" data-math-display=\"false\">\\(n\\)<\/span> observations and <span data-math-source=\"p\" data-math-display=\"false\">\\(p\\)<\/span> numeric variables. These could be census areas characterized by unemployment, income, education, housing costs, and age composition.<\/p>\n<p>The data matrix is:<\/p>\n<div><span data-math-source=\"\\mathbf{X} = \\begin{bmatrix} x_{11} &amp; x_{12} &amp; \\cdots &amp; x_{1p}\\\\ x_{21} &amp; x_{22} &amp; \\cdots &amp; x_{2p}\\\\ \\vdots &amp; \\vdots &amp; \\ddots &amp; \\vdots\\\\ x_{n1} &amp; x_{n2} &amp; \\cdots &amp; x_{np} \\end{bmatrix}\" data-math-display=\"true\">\\[ \\mathbf{X} = \\begin{bmatrix} x_{11} &amp; x_{12} &amp; \\cdots &amp; x_{1p}\\\\ x_{21} &amp; x_{22} &amp; \\cdots &amp; x_{2p}\\\\ \\vdots &amp; \\vdots &amp; \\ddots &amp; \\vdots\\\\ x_{n1} &amp; x_{n2} &amp; \\cdots &amp; x_{np} \\end{bmatrix} \\]<\/span><\/div>\n<p>Conventional PCA typically centers the variables and, when units differ, standardizes them before calculating the covariance or correlation matrix.<\/p>\n<p>The resulting eigenvalue decomposition is:<\/p>\n<div><span data-math-source=\"\\mathbf{S}\\mathbf{v}_k =\\lambda_k\\mathbf{v}_k\" data-math-display=\"true\">\\[ \\mathbf{S}\\mathbf{v}_k =\\lambda_k\\mathbf{v}_k \\]<\/span><\/div>\n<p>where:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p><span data-math-source=\"\\mathbf{S}\" data-math-display=\"false\">\\(\\mathbf{S}\\)<\/span> is the global covariance or correlation matrix.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><span data-math-source=\"\\lambda_k\" data-math-display=\"false\">\\(\\lambda_k\\)<\/span> is the eigenvalue for component <span data-math-source=\"k\" data-math-display=\"false\">\\(k\\)<\/span>.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><span data-math-source=\"\\mathbf{v}_k\" data-math-display=\"false\">\\(\\mathbf{v}_k\\)<\/span> is the corresponding eigenvector, which defines the component direction.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>The first principal component (PC1) explains the largest possible proportion of total variance among all linear combinations of the variables. The second explains the largest remaining proportion subject to being orthogonal to the first, and so forth.<\/p>\n<p>The difficulty is that one global matrix describes the multivariate structure across all observations. When relationships vary geographically, that matrix may conceal contrasts between local populations or environments.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"12_What_makes_PCA_geographically_weighted\"><\/span>1.2 What makes PCA geographically weighted?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>GWPCA replaces the single global covariance structure with a sequence of local weighted covariance structures.<\/p>\n<p>At each evaluation location <span data-math-source=\"s_i\" data-math-display=\"false\">\\(s_i\\)<\/span>, the method gives greater importance to observations near that location and less importance to more distant observations. A separate PCA is then calculated using the resulting local weights.<\/p>\n<p>The process produces:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p>Local eigenvalues, indicating the amount of local variance captured by each component.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Local eigenvectors or loadings, describing how the input variables contribute to the components locally.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Local explained-variance percentages, showing how much of the local multivariate variation is summarized by each component.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Local scores, when requested, expressing observations in their corresponding local component coordinate systems.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>The <code>GWmodel<\/code> package implements basic and robust GWPCA, offers bandwidth selection through cross-validation, and returns location-specific loadings and explained-variance information.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"13_Moving_spatial_weighting_matrices_and_kernel_functions\"><\/span>1.3 Moving spatial weighting matrices and kernel functions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1282\" src=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_z5m4w4z5m4w4z5m4-1024x572.jpg\" alt=\"Geographically Weighted Principal Component Analysis showing local spatial bandwidth windows and coordinate weights.\" width=\"1024\" height=\"572\" srcset=\"https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_z5m4w4z5m4w4z5m4-1024x572.jpg 1024w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_z5m4w4z5m4w4z5m4-300x167.jpg 300w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_z5m4w4z5m4w4z5m4-768x429.jpg 768w, https:\/\/helpwithmygisassignment.com\/blog\/wp-content\/uploads\/2026\/10\/Gemini_Generated_Image_z5m4w4z5m4w4z5m4.jpg 1376w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>The defining mechanism of GWPCA is the spatial weighting scheme. For an evaluation location <span data-math-source=\"s_i\" data-math-display=\"false\">\\(s_i\\)<\/span>, the weight assigned to observation <span data-math-source=\"j\" data-math-display=\"false\">\\(j\\)<\/span> can be written as:<\/p>\n<div><span data-math-source=\"w_{ij}=K\\left(\\frac{d_{ij}}{h_i}\\right)\" data-math-display=\"true\">\\[ w_{ij}=K\\left(\\frac{d_{ij}}{h_i}\\right) \\]<\/span><\/div>\n<p>where:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p><span data-math-source=\"d_{ij}\" data-math-display=\"false\">\\(d_{ij}\\)<\/span> is the geographic distance between observations <span data-math-source=\"i\" data-math-display=\"false\">\\(i\\)<\/span> and <span data-math-source=\"j\" data-math-display=\"false\">\\(j\\)<\/span>.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><span data-math-source=\"h_i\" data-math-display=\"false\">\\(h_i\\)<\/span> is the bandwidth, which determines the spatial extent of the neighborhood.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><span data-math-source=\"K(\\cdot)\" data-math-display=\"false\">\\(K(\\cdot)\\)<\/span> is the kernel function used to convert distance into a weight.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>An observation near the evaluation location may receive a weight close to 1, while more distant observations receive smaller weights or zero weights, depending on the kernel.<\/p>\n<p>At a high level, the local weighting matrix describes how much influence each observation has when estimating the local PCA at a particular location.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Common_kernel_functions\"><\/span>Common kernel functions<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<div>\n<table>\n<tbody>\n<tr>\n<th>Kernel<\/th>\n<th>Weighting behavior<\/th>\n<th>Main consideration<\/th>\n<\/tr>\n<tr>\n<td>Gaussian<\/td>\n<td>Decreases smoothly with distance; theoretical support extends indefinitely<\/td>\n<td>Distant observations retain small positive weights<\/td>\n<\/tr>\n<tr>\n<td>Exponential<\/td>\n<td>Decreases exponentially with distance<\/td>\n<td>Smooth distance decay<\/td>\n<\/tr>\n<tr>\n<td>Bisquare<\/td>\n<td>Declines to zero at the bandwidth boundary<\/td>\n<td>Excludes observations outside the effective bandwidth<\/td>\n<\/tr>\n<tr>\n<td>Tricube<\/td>\n<td>Smoothly declines to zero at the bandwidth boundary<\/td>\n<td>Gives a localized neighborhood with gradual tapering<\/td>\n<\/tr>\n<tr>\n<td>Boxcar<\/td>\n<td>Equal weights inside the bandwidth and zero outside<\/td>\n<td>Abrupt neighborhood boundary<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>For example, the bisquare kernel used by <code>GWmodel<\/code> follows:<\/p>\n<div><span data-math-source=\"w_{ij}= \\begin{cases} \\left[1-\\left(\\dfrac{d_{ij}}{h_i}\\right)^2\\right]^2, &amp; d_{ij}&lt;h_i\\\\ 0, &amp; d_{ij}\\ge h_i \\end{cases}\" data-math-display=\"true\">\\[ w_{ij}= \\begin{cases} \\left[1-\\left(\\dfrac{d_{ij}}{h_i}\\right)^2\\right]^2, &amp; d_{ij}&lt;h_i\\\\ 0, &amp; d_{ij}\\ge h_i \\end{cases} \\]<\/span><\/div>\n<p>A kernel does not determine the analytical scale on its own; bandwidth selection is equally important. A broad bandwidth produces a more geographically smoothed component structure, while a narrow bandwidth permits more localized variation.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"14_Local_means_and_covariance_matrices\"><\/span>1.4 Local means and covariance matrices<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>At each evaluation location <span data-math-source=\"s_i\" data-math-display=\"false\">\\(s_i\\)<\/span>, GWPCA calculates weighted local statistics. For variable <span data-math-source=\"a\" data-math-display=\"false\">\\(a\\)<\/span>, the weighted local mean can be expressed as:<\/p>\n<div><span data-math-source=\"\\bar{x}_{ia}= \\frac{\\sum_{j=1}^{n}w_{ij}x_{ja}} {\\sum_{j=1}^{n}w_{ij}}\" data-math-display=\"true\">\\[ \\bar{x}_{ia}= \\frac{\\sum_{j=1}^{n}w_{ij}x_{ja}} {\\sum_{j=1}^{n}w_{ij}} \\]<\/span><\/div>\n<p>Using the local means, the local weighted covariance matrix can be written conceptually as:<\/p>\n<div><span data-math-source=\"\\mathbf{S}(s_i) = \\frac{ \\sum_{j=1}^{n} w_{ij} (\\mathbf{x}_j-\\bar{\\mathbf{x}}_i) (\\mathbf{x}_j-\\bar{\\mathbf{x}}_i)^\\top }{ \\sum_{j=1}^{n}w_{ij} }\" data-math-display=\"true\">\\[ \\mathbf{S}(s_i) = \\frac{ \\sum_{j=1}^{n} w_{ij} (\\mathbf{x}_j-\\bar{\\mathbf{x}}_i) (\\mathbf{x}_j-\\bar{\\mathbf{x}}_i)^\\top }{ \\sum_{j=1}^{n}w_{ij} } \\]<\/span><\/div>\n<p>Here, <span data-math-source=\"\\mathbf{x}_j\" data-math-display=\"false\">\\(\\mathbf{x}_j\\)<\/span> is the vector of attributes at observation <span data-math-source=\"j\" data-math-display=\"false\">\\(j\\)<\/span>, and <span data-math-source=\"\\bar{\\mathbf{x}}_i\" data-math-display=\"false\">\\(\\bar{\\mathbf{x}}_i\\)<\/span> is the vector of locally weighted means.<\/p>\n<p>This equation illustrates the principle. Particular implementations may use different variance normalizations or robust estimators, so the exact numerical results depend on the software and settings.<\/p>\n<p>PCA is then performed on the local matrix:<\/p>\n<div><span data-math-source=\"\\mathbf{S}(s_i)\\mathbf{v}_{ik} =\\lambda_{ik}\\mathbf{v}_{ik}\" data-math-display=\"true\">\\[ \\mathbf{S}(s_i)\\mathbf{v}_{ik} =\\lambda_{ik}\\mathbf{v}_{ik} \\]<\/span><\/div>\n<p>Both the eigenvalue <span data-math-source=\"\\lambda_{ik}\" data-math-display=\"false\">\\(\\lambda_{ik}\\)<\/span> and the component direction <span data-math-source=\"\\mathbf{v}_{ik}\" data-math-display=\"false\">\\(\\mathbf{v}_{ik}\\)<\/span> can now vary with location.<\/p>\n<p>This is the essence of local PCA for spatial statistics: the analysis investigates how the multivariate relationships differ across geographic neighborhoods rather than treating the entire study area as one statistically homogeneous system.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"15_Interpreting_local_eigenvalues_and_eigenvectors\"><\/span>1.5 Interpreting local eigenvalues and eigenvectors<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Eigenvalues and eigenvectors answer different questions.<\/p>\n<p>Local eigenvalues quantify the variance represented by individual local components. A large first eigenvalue relative to the sum of the local eigenvalues indicates that PC1 captures a substantial share of the locally observed multivariate variation.<\/p>\n<p>Local eigenvectors or loadings describe the direction of each component in the input-variable space. They help reveal which variables contribute most strongly to a component and whether the local combination differs across regions.<\/p>\n<p>Suppose the variables are income, unemployment, educational attainment, and housing costs. The first component may be associated primarily with employment and education in one area, but have stronger contributions from housing costs and income in another.<\/p>\n<p>Such a pattern can suggest different dimensions of socioeconomic structure. Its actual interpretation must, however, be determined from the local loading patterns, variable definitions, and geographic context rather than assumed in advance.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"2_Step-by-Step_Practical_Workflow_in_R\"><\/span>2. Step-by-Step Practical Workflow in R<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This workflow uses polygon-based census data, although GWPCA can also be applied to spatial point observations. The example investigates whether demographic indicators have different multivariate structures across an urban study area.<\/p>\n<p>We will use:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p><code>sf<\/code> for reading and managing spatial features.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>GWmodel<\/code> for GWPCA and bandwidth selection.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>ggplot2<\/code> for mapping local results.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>The <code>GWmodel<\/code> documentation confirms that its GWPCA functions support spatial data objects, including <code>sf<\/code>, and can return local variance proportions and loading information.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_1_%E2%80%94_Prepare_the_spatial_attribute_table\"><\/span>Step 1 \u2014 Prepare the spatial attribute table<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Start with a polygon layer where each feature represents a census tract or another geographic reporting unit. Each row should contain the geometry and its associated demographic attributes.<\/p>\n<p>For this example, suppose the input data contains:<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<th>Variable<\/th>\n<th>Description<\/th>\n<th>Suggested interpretation<\/th>\n<\/tr>\n<tr>\n<td><code>pct_under15<\/code><\/td>\n<td>Percentage of residents below age 15<\/td>\n<td>Younger population structure<\/td>\n<\/tr>\n<tr>\n<td><code>pct_over65<\/code><\/td>\n<td>Percentage of residents aged 65 or above<\/td>\n<td>Older population structure<\/td>\n<\/tr>\n<tr>\n<td><code>median_income<\/code><\/td>\n<td>Median household income<\/td>\n<td>Economic conditions<\/td>\n<\/tr>\n<tr>\n<td><code>unemployment_rate<\/code><\/td>\n<td>Unemployment rate<\/td>\n<td>Labor-market conditions<\/td>\n<\/tr>\n<tr>\n<td><code>rent_burden<\/code><\/td>\n<td>Share of households with high housing costs<\/td>\n<td>Housing affordability<\/td>\n<\/tr>\n<tr>\n<td><code>bachelor_plus<\/code><\/td>\n<td>Percentage with a bachelor&#8217;s degree or higher<\/td>\n<td>Educational attainment<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>These are illustrative field names. Replace them with the actual column names in your census dataset.<\/p>\n<p>Data preparation requirements<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p>Ensure that each geographic unit has one consistent set of demographic attributes.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Prefer rates, proportions, and suitable normalized indicators over raw population counts when population size is not itself the variable of interest.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Check missing values, invalid values, duplicate records, extreme outliers, and variables with zero or near-zero variance.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Review correlations and avoid including redundant variables without a substantive reason.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Transform strongly skewed variables where appropriate, such as household income, before calculating PCA.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Use comparable variable definitions and reference periods across all areas.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>For polygon data, the location of each observation must also be defined. <code>GWmodel<\/code> can use polygon centroids as evaluation locations when working with <code>sf<\/code> polygons. If the polygons are highly irregular or their centroids fall outside their boundaries, consider whether an alternative representative location is more appropriate for the research design.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_2_%E2%80%94_Install_and_load_the_R_packages\"><\/span>Step 2 \u2014 Install and load the R packages<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Install the required packages once:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>install.packages(c(\r\n  \"sf\",\r\n  \"GWmodel\",\r\n  \"ggplot2\"\r\n))<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Load them in your analysis script:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>library(sf)\r\nlibrary(GWmodel)\r\nlibrary(ggplot2)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The <code>GWmodel<\/code> package includes functions for geographically weighted methods, including <code>gwpca()<\/code> for local principal component analysis and <code>bw.gwpca()<\/code> for bandwidth selection. Its current documentation describes bandwidth selection using cross-validation.<\/p>\n<div>\n<div><\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Step_3_%E2%80%94_Read_and_validate_the_spatial_dataset\"><\/span>Step 3 \u2014 Read and validate the spatial dataset<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Read the input layer from a GeoPackage:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>dat &lt;- st_read(\r\n  \"urban_demographics.gpkg\",\r\n  layer = \"tracts\",\r\n  quiet = TRUE\r\n)\r\n\r\n# Choose the demographic variables for analysis.\r\nvars &lt;- c(\r\n  \"pct_under15\",\r\n  \"pct_over65\",\r\n  \"median_income\",\r\n  \"unemployment_rate\",\r\n  \"rent_burden\",\r\n  \"bachelor_plus\"\r\n)\r\n\r\n# Check that all requested attributes exist.\r\nmissing_vars &lt;- setdiff(vars, names(dat))\r\n\r\nif (length(missing_vars) &gt; 0) {\r\n  stop(\r\n    \"Missing variables: \",\r\n    paste(missing_vars, collapse = \", \")\r\n  )\r\n}\r\n\r\n# Verify that the spatial data has a CRS.\r\nif (is.na(st_crs(dat))) {\r\n  stop(\"The dataset has no defined coordinate reference system.\")\r\n}\r\n\r\n# Check that all analysis variables are numeric.\r\nattributes &lt;- st_drop_geometry(dat)[, vars, drop = FALSE]\r\n\r\nif (!all(vapply(attributes, is.numeric, logical(1)))) {\r\n  stop(\"All GWPCA input variables must be numeric.\")\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Now check the coordinate system.<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>st_crs(dat)\r\nst_is_longlat(dat)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Use an appropriate projected coordinate reference system for a local urban study whenever possible. This allows the spatial weighting process to use meaningful planar distances, typically in meters. Select the projection according to the study area&#8217;s location and extent rather than choosing an arbitrary CRS.<\/p>\n<p>For example, if the source layer uses longitude and latitude, transform it to a locally appropriate projected CRS before calculating planar distances:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code># Example only: replace with the correct projected EPSG\r\n# code for your study area.\r\n#\r\n# dat &lt;- st_transform(dat, YOUR_PROJECTED_EPSG)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The placeholder must be replaced with a valid CRS identifier before the code is executed. Alternatively, GWPCA supports great-circle distance calculations through <code>longlat = TRUE<\/code>, which can be appropriate for longitude\u2013latitude data. In either case, the distance configuration must match the coordinate system.<\/p>\n<div>\n<div><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_4_%E2%80%94_Handle_missing_values_and_low-variance_variables\"><\/span>Step 4 \u2014 Handle missing values and low-variance variables<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>GWPCA requires suitable numeric values for the selected variables. Missing values can undermine local covariance calculations, particularly when different variables have missing records across the study area.<\/p>\n<p>For a simple, transparent baseline, retain observations with complete data for all analysis variables:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>attributes &lt;- st_drop_geometry(dat)[, vars, drop = FALSE]\r\n\r\ncomplete &lt;- complete.cases(attributes)\r\n\r\ndat &lt;- dat[complete, ]\r\n\r\nattributes &lt;- st_drop_geometry(dat)[, vars, drop = FALSE]\r\n\r\n# Inspect variable standard deviations.\r\nvariable_sd &lt;- vapply(\r\n  attributes,\r\n  sd,\r\n  numeric(1)\r\n)\r\n\r\nprint(variable_sd)\r\n\r\nif (any(!is.finite(variable_sd) | variable_sd == 0)) {\r\n  stop(\r\n    \"Remove or investigate variables with zero \",\r\n    \"or non-finite variance.\"\r\n  )\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Complete-case analysis is easy to implement, but it can introduce bias when missing data are systematically associated with geography or socioeconomic conditions. For serious research, investigate missingness patterns and justify any imputation or record-exclusion procedure.<\/p>\n<p>Also inspect the variable distributions and correlation matrix:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>summary(attributes)\r\n\r\ncor(\r\n  attributes,\r\n  use = \"pairwise.complete.obs\"\r\n)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The correlation matrix is a diagnostic tool for understanding redundancy and potential collinearity. It does not establish that every highly correlated pair must be removed; the decision should be guided by the substantive meaning of the indicators.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Why_standardization_matters\"><\/span>Why standardization matters<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Income may be measured in currency units, while unemployment and demographic proportions are recorded as percentages. Variables with larger numerical scales can dominate an unstandardized PCA.<\/p>\n<p>In <code>GWmodel<\/code>, the <code>scaling = TRUE<\/code> argument standardizes the variables before the local analysis. This is a sensible default for the mixed demographic indicators in this example. The global PCA used for comparison should apply consistent centering and scaling so that the results are comparable.<\/p>\n<div>\n<div><\/div>\n<div>\n<div><\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_5_%E2%80%94_Establish_a_global_PCA_baseline\"><\/span>Step 5 \u2014 Establish a global PCA baseline<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Before running GWPCA, calculate an ordinary PCA. This provides a useful point of comparison for determining whether the locally varying component structures reveal information that a global analysis conceals.<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>global_pca &lt;- prcomp(\r\n  attributes,\r\n  center = TRUE,\r\n  scale. = TRUE\r\n)\r\n\r\nsummary(global_pca)\r\n\r\n# Global loadings for the first principal component.\r\nglobal_loadings_pc1 &lt;- global_pca$rotation[, 1]\r\n\r\nprint(global_loadings_pc1)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The output contains one global set of component loadings and variance proportions.<\/p>\n<p>Inspect the first component and determine which indicators contribute most strongly to it. For example, if economic indicators dominate PC1 across the entire dataset, the global result may suggest that economic conditions provide the principal dimension of multivariate variation.<\/p>\n<p>However, this interpretation may be incomplete if demographic structures differ between the city center, industrial areas, and suburban neighborhoods. GWPCA helps investigate that possibility.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_6_%E2%80%94_Select_an_appropriate_spatial_bandwidth\"><\/span>Step 6 \u2014 Select an appropriate spatial bandwidth<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bandwidth selection is one of the most influential decisions in GWPCA. It determines the geographic scale at which local PCA is calculated.<\/p>\n<p>Two main options are available.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Fixed-distance_bandwidth\"><\/span>Fixed-distance bandwidth<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>A fixed bandwidth uses one distance threshold throughout the study area. Each local analysis draws on observations within the specified distance, with their weights determined by the kernel.<\/p>\n<p>This approach is attractive when the sampling locations are reasonably evenly spaced and the same geographic radius has substantive meaning across the study area.<\/p>\n<p>Its disadvantage is that neighborhoods with sparse observations may contain too little local information, while dense areas may include many observations.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Adaptive_bandwidth\"><\/span>Adaptive bandwidth<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>An adaptive bandwidth is based on a specified number of nearby observations. The geographic radius expands in sparse regions and contracts in dense regions, maintaining a more consistent local sample size.<\/p>\n<p>This is often useful for census datasets with irregular spatial density. In <code>GWmodel<\/code>, the <code>adaptive = TRUE<\/code> option indicates an adaptive neighborhood size rather than a<\/p>\n<p>&nbsp;<\/p>\n<div>\n<h3><span class=\"ez-toc-section\" id=\"Choosing_the_bandwidth_strategy\"><\/span>Choosing the bandwidth strategy<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div>\n<div>\n<p>Fixed<\/p>\n<\/div>\n<div>\n<p>One distance threshold<\/p>\n<p>Useful when observations are regularly distributed and a consistent geographic radius makes sense.<\/p>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\n<div>\n<p>Adaptive<\/p>\n<\/div>\n<div>\n<p>A selected neighborhood size<\/p>\n<p>Useful when the sampling density varies substantially between urban centers and peripheral areas.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"Automatically_select_a_bandwidth_with_bwgwpca\"><\/span>Automatically select a bandwidth with <code>bw.gwpca()<\/code><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><code>GWmodel<\/code> provides a bandwidth-selection function that uses cross-validation. The following example searches for an adaptive bisquare bandwidth for a two-component GWPCA:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>set.seed(42)\r\n\r\nbw_adaptive &lt;- bw.gwpca(\r\n  data = dat,\r\n  vars = vars,\r\n  k = 2,\r\n  robust = FALSE,\r\n  scaling = TRUE,\r\n  kernel = \"bisquare\",\r\n  adaptive = TRUE\r\n)\r\n\r\nprint(bw_adaptive)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The returned value represents the selected adaptive bandwidth, interpreted as a neighborhood size under the adaptive configuration. It is not a distance in meters.<\/p>\n<p>For a fixed-distance configuration, the corresponding search is:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>bw_fixed &lt;- bw.gwpca(\r\n  data = dat,\r\n  vars = vars,\r\n  k = 2,\r\n  robust = FALSE,\r\n  scaling = TRUE,\r\n  kernel = \"bisquare\",\r\n  adaptive = FALSE\r\n)\r\n\r\nprint(bw_fixed)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Here, the fixed bandwidth is expressed in the distance units used by the spatial calculation. With an appropriate projected CRS in meters, this normally means meters.<\/p>\n<p>Cross-validation is a useful way to obtain a defensible starting bandwidth, but it should not replace methodological judgment. Research on GWPCA highlights the importance of choosing an appropriate local scale and examining the resulting component structures carefully.<\/p>\n<p>In practice, document the selected bandwidth, kernel, adaptive or fixed setting, and the reason for choosing it. It is also good practice to examine whether the substantive interpretation changes under plausible alternative bandwidths.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_7_%E2%80%94_Run_the_geographically_weighted_PCA\"><\/span>Step 7 \u2014 Run the geographically weighted PCA<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Now estimate the local principal components using the selected bandwidth.<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>gwpca_fit &lt;- gwpca(\r\n  data = dat,\r\n  vars = vars,\r\n  k = 2,\r\n  robust = FALSE,\r\n  scaling = TRUE,\r\n  kernel = \"bisquare\",\r\n  adaptive = TRUE,\r\n  bw = bw_adaptive,\r\n  cv = FALSE,\r\n  scores = TRUE\r\n)\r\n\r\n# Review the model summary.\r\nprint(gwpca_fit)\r\n\r\n# Inspect the local result attributes.\r\nnames(gwpca_fit$SDF)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The important parameters are:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p><code>data<\/code>: the spatial observations and their attributes.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>vars<\/code>: the numeric variables included in the analysis.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>k = 2<\/code>: retains the first two principal components locally.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>scaling = TRUE<\/code>: standardizes the input variables.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>kernel = \"bisquare\"<\/code>: determines the distance-decay function.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>adaptive = TRUE<\/code>: uses a locally varying distance to reach the selected neighborhood size.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>bw = bw_adaptive<\/code>: supplies the bandwidth found in the previous step.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>cv = FALSE<\/code>: skips an additional cross-validation calculation during model fitting because bandwidth selection has already been performed.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p><code>scores = TRUE<\/code>: requests local principal component scores as well as the loadings and variance summaries.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>The <code>gwpca()<\/code> function returns an object containing local loadings, variance information, the spatial result object, and other analysis details. The local explained-variance fields are stored in the spatial result data, making them available for mapping.<\/p>\n<p>The calculation may take a considerable amount of time for a large number of census areas. Bandwidth selection and local covariance decomposition both require repeated computations across neighborhoods, so begin with a manageable dataset when developing the workflow.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"3_Interpreting_the_Local_Variance_Explained_by_PC1\"><\/span>3. Interpreting the Local Variance Explained by PC1<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"31_What_does_the_first_principal_components_variance_percentage_mean\"><\/span>3.1 What does the first principal component&#8217;s variance percentage mean?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>For each location, the local explained-variance percentage for the first component is:<\/p>\n<div><span data-math-source=\"PV_1(s_i)= \\frac{\\lambda_1(s_i)} {\\sum_{j=1}^{p}\\lambda_j(s_i)} \\times100\" data-math-display=\"true\">\\[ PV_1(s_i)= \\frac{\\lambda_1(s_i)} {\\sum_{j=1}^{p}\\lambda_j(s_i)} \\times100 \\]<\/span><\/div>\n<p>where <span data-math-source=\"\\lambda_j(s_i)\" data-math-display=\"false\">\\(\\lambda_j(s_i)\\)<\/span> is the eigenvalue associated with local component <span data-math-source=\"j\" data-math-display=\"false\">\\(j\\)<\/span> at location <span data-math-source=\"s_i\" data-math-display=\"false\">\\(s_i\\)<\/span>.<\/p>\n<p>This percentage indicates how much of the locally observed multivariate variation is represented by the first component.<\/p>\n<p>For example, the following values are illustrative rather than results from a real census dataset.<\/p>\n<div>\n<table>\n<tbody>\n<tr>\n<th>Location<\/th>\n<th>Local PC1 variance explained<\/th>\n<th>Possible interpretation<\/th>\n<\/tr>\n<tr>\n<td>Central urban district<\/td>\n<td>72%<\/td>\n<td>A single local component summarizes a large share of the multivariate variation<\/td>\n<\/tr>\n<tr>\n<td>Residential transition zone<\/td>\n<td>51%<\/td>\n<td>Variation is more distributed between the first and subsequent components<\/td>\n<\/tr>\n<tr>\n<td>Peripheral urban area<\/td>\n<td>38%<\/td>\n<td>Several local dimensions contribute substantially to the overall variation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>A higher local PC1 percentage means that the first component accounts for a larger fraction of local multivariate variance. A lower percentage suggests that the variation is distributed more broadly across multiple components.<\/p>\n<p>Crucially, a higher PC1 percentage does not automatically mean greater poverty, inequality, or demographic disadvantage. It describes the concentration of variance in a component, not the level of any particular socioeconomic outcome.<\/p>\n<p>To understand the substantive meaning, examine the local component loadings alongside the explained-variance values.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"32_Map_local_PC1_variance_explained\"><\/span>3.2 Map local PC1 variance explained<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>GWmodel<\/code> names the first local explained-variance field <code>Comp.1_PV<\/code>. This makes it straightforward to visualize the spatial distribution of PC1&#8217;s contribution.<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>ggplot(gwpca_fit$SDF) +\r\n  geom_sf(\r\n    aes(fill = Comp.1_PV),\r\n    color = NA\r\n  ) +\r\n  scale_fill_gradient(\r\n    low = \"#f7fbff\",\r\n    high = \"#084594\",\r\n    name = \"PC1 variance (%)\"\r\n  ) +\r\n  labs(\r\n    title = \"Local Variance Explained by PC1\",\r\n    subtitle = \"Geographically Weighted PCA\"\r\n  ) +\r\n  theme_minimal()<\/code><\/pre>\n<\/div>\n<\/div>\n<p>The resulting map highlights areas where a single dominant local component summarizes more or less of the multivariate variation.<\/p>\n<p>When interpreting this map, examine whether high or low values form coherent geographic patterns or appear as isolated pockets. Such patterns can guide further investigation, but spatial clustering in a descriptive map is not, by itself, a test of statistical significance.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"33_Interpret_the_local_loadings\"><\/span>3.3 Interpret the local loadings<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The local loadings help explain what PC1 means in each neighborhood.<\/p>\n<p>Extract the first component&#8217;s loading matrix:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>local_loadings_pc1 &lt;- as.data.frame(\r\n  gwpca_fit$loadings[, , 1]\r\n)\r\n\r\nnames(local_loadings_pc1) &lt;- vars\r\n\r\nhead(local_loadings_pc1)<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Each row corresponds to an evaluation location, and each column represents one of the variables included in the local PCA.<\/p>\n<p>A larger absolute loading indicates a stronger contribution to the component direction, although the exact interpretation depends on the package&#8217;s loading convention and the scaling procedure.<\/p>\n<p>To attach these loadings to the spatial result for mapping:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>loading_map &lt;- gwpca_fit$SDF\r\n\r\nfor (v in vars) {\r\n  loading_map[[paste0(\"loading_\", v)]] &lt;-\r\n    local_loadings_pc1[[v]]\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<p>For example, map the local loading for median income:<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>ggplot(loading_map) +\r\n  geom_sf(\r\n    aes(fill = loading_median_income),\r\n    color = NA\r\n  ) +\r\n  scale_fill_gradient2(\r\n    low = \"#b2182b\",\r\n    mid = \"white\",\r\n    high = \"#2166ac\",\r\n    midpoint = 0,\r\n    name = \"PC1 loading\"\r\n  ) +\r\n  labs(\r\n    title = \"Local PC1 Loading: Median Income\"\r\n  ) +\r\n  theme_minimal()<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Repeat this procedure for unemployment, education, housing burden, and age structure. Comparing these maps makes it possible to identify areas where the relative contributions of demographic variables differ.<\/p>\n<p>There are two important cautions when interpreting local loadings:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p>The sign of a principal component is arbitrary. The same component direction can be multiplied by negative one without changing the mathematical solution. Apparent sign reversals between neighboring locations should therefore be checked before interpreting them as real geographic changes.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Component ordering can become ambiguous. When local eigenvalues are close, the first and second components may exchange relative importance or have similar directions. This can make a map of PC1 look unstable even when the underlying multivariate structure changes gradually.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>For rigorous comparisons, inspect the full local loading vectors and eigenvalues rather than relying solely on maps of individual loading signs. GWPCA research emphasizes the challenges of interpreting spatially varying components and the value of mapping both variance proportions and loading patterns.<\/p>\n<div>\n<div><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"34_Map_the_locally_dominant_variable\"><\/span>3.4 Map the locally dominant variable<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The <code>GWmodel<\/code> result object also includes <code>win_var_PC1<\/code>, which identifies the variable with the largest absolute loading for the first principal component at each evaluation location.<\/p>\n<div>\n<div>\n<pre dir=\"ltr\"><code>ggplot(gwpca_fit$SDF) +\r\n  geom_sf(\r\n    aes(fill = win_var_PC1),\r\n    color = \"white\",\r\n    linewidth = 0.1\r\n  ) +\r\n  labs(\r\n    title = \"Dominant Variable in Local PC1\",\r\n    fill = \"Variable\"\r\n  ) +\r\n  theme_minimal()<\/code><\/pre>\n<\/div>\n<\/div>\n<p>This categorical map is useful as an initial summary of where different variables dominate the local first-component direction.<\/p>\n<p>However, it simplifies the multivariate information. Two variables may have similar absolute loadings, and the largest loading does not tell the complete story of the component. Use this map as an exploratory aid rather than a definitive description of local demographic structure.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"4_Real-World_Application_Urban_Census_Data\"><\/span>4. Real-World Application: Urban Census Data<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"41_Research_objective\"><\/span>4.1 Research objective<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Suppose a city is experiencing changes in population composition, labor-market conditions, education, and housing affordability.<\/p>\n<p>A research team wants to determine whether a single socioeconomic dimension adequately summarizes these characteristics across the entire urban region, or whether different combinations of demographic variables dominate different neighborhoods.<\/p>\n<p>The objective is not merely to rank neighborhoods by deprivation. It is to investigate whether the structure of the relationships among the indicators varies geographically.<\/p>\n<p>A GWPCA workflow could proceed as follows:<\/p>\n<ol>\n<li>\n<div>\n<div>\n<p>Prepare census-area polygons and demographic indicators from a consistent reference period.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Calculate a global PCA to establish the dominant overall component structure.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Select an appropriate kernel and bandwidth, considering the density and spatial arrangement of census areas.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Run GWPCA and map local PC1 variance explained.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Map local loadings for income, unemployment, education, housing burden, and population age composition.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Compare the maps with established geographic knowledge, planning zones, and relevant socioeconomic evidence.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Test the stability of findings under alternative bandwidths and reasonable variable specifications.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"42_Hypothetical_interpretation\"><\/span>4.2 Hypothetical interpretation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Imagine a result in which education and unemployment have relatively large PC1 loadings in some neighborhoods, while income and housing burden contribute more strongly in others.<\/p>\n<p>One interpretation might be that labor-market and educational differences form a more prominent local dimension in one part of the city, whereas housing affordability and income differences are more prominent elsewhere.<\/p>\n<p>That interpretation should only be made if the loading patterns actually support it. It would also be necessary to determine whether the apparent geographic differences persist across alternative bandwidths and whether they are consistent with the variable definitions and census context.<\/p>\n<p>GWPCA does not automatically discover objectively defined socioeconomic factors. It identifies locally varying component structures from the supplied variables and spatial weighting scheme. Naming these components requires substantive interpretation.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"43_Methodological_limitations\"><\/span>4.3 Methodological limitations<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>GWPCA is a powerful exploratory method, but its results require careful validation.<\/p>\n<p>Spatial sampling and the modifiable areal unit problem. Census results depend on the geographic units used. Changing the scale or boundaries of the areas can alter both global and local PCA results.<\/p>\n<p>Bandwidth sensitivity. A narrow bandwidth may generate unstable local covariance estimates, whereas an excessively broad bandwidth can obscure genuine local variation. Evaluate alternative bandwidths rather than treating the selected value as unquestionably correct.<\/p>\n<p>Variable redundancy and outliers. Highly correlated variables and influential observations can affect the local component structure. Check variable distributions, assess collinearity, and consider <code>robust = TRUE<\/code> when outliers are a meaningful concern and the robust method is suitable for the data.<\/p>\n<p>Multiple local analyses. GWPCA estimates many related local decompositions using overlapping neighborhoods. A map of local loadings should not be interpreted as a collection of independent statistical tests.<\/p>\n<p>Spatial autocorrelation. GWPCA accommodates geographic variation in multivariate structure, but it does not automatically remove spatial autocorrelation or establish causal relationships. If residual spatial dependence, inferential claims, or formal comparisons of local structures are central to the research question, additional methods may be necessary.<\/p>\n<p>Interpretability. Local components can change meaning across space. Before assigning labels such as &#8220;deprivation,&#8221; &#8220;aging,&#8221; or &#8220;housing pressure,&#8221; check the actual loadings and their stability. When executing <b data-path-to-node=\"2,1,1,0\" data-index-in-node=\"16\">Geographically Weighted Principal Component Analysis<\/b> on multi-spectral or socio-economic datasets, selecting an appropriate spatial bandwidth remains a critical step<\/p>\n<h2><span class=\"ez-toc-section\" id=\"5_Summary_and_Best_Practices\"><\/span>5. Summary and Best Practices<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Geographically Weighted Principal Component Analysis extends conventional PCA by calculating a separate weighted decomposition at each evaluation location. Instead of assuming one global component structure is a sufficient summary of all observations, GWPCA allows the dominant multivariate patterns to vary spatially. Ultimately, <b data-path-to-node=\"2,2,1,0\" data-index-in-node=\"13\">Geographically Weighted Principal Component Analysis<\/b> equips GIS analysts with a powerful, localized framework for managing complex multi-dimensional geographic phenomena.<\/p>\n<p>For practical GIS research, follow these guidelines:<\/p>\n<ul>\n<li>\n<div>\n<div>\n<p>Prepare consistent, meaningful variables and appropriate spatial geometries.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Standardize variables when their units or scales differ.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Select the spatial kernel and bandwidth according to the spatial distribution of the observations and the research question.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Compare GWPCA findings with a conventional global PCA baseline.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Map local explained-variance percentages and loadings together.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Test the sensitivity of substantive conclusions to bandwidth and variable selection.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Avoid interpreting loading signs or dominant-variable maps without examining the full local component structure.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<li>\n<div>\n<div>\n<p>Describe GWPCA as an exploratory analysis unless additional inferential methods are used.<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<p>The most important takeaway is that GWPCA helps answer a question that global PCA cannot address directly: where does the multivariate structure change, and which variables contribute to that change?<\/p>\n<p>In urban demographic research, environmental assessment, and other spatially distributed multivariate studies, this perspective can expose local structures that a single global component solution would otherwise conceal.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Technical_references\"><\/span>Technical references<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\n<div>\n<div>\n<p>Harris, Brunsdon and Charlton (2011), <a href=\"https:\/\/doi.org\/10.1080\/13658816.2011.554838?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">Geographically weighted principal components analysis<\/a> \u2014 foundational GWPCA theory, interpretation, visualization, and bandwidth considerations.<\/p>\n<div>\n<div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>Harris et al. (2015), <a href=\"https:\/\/doi.org\/10.1111\/gean.12048?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\">Enhancements to a Geographically Weighted Principal Component Analysis in the Context of an Application to an Environmental Data Set<\/a> \u2014 local scale selection and visualization of GWPCA outputs.<\/li>\n<li><a href=\"https:\/\/search.r-project.org\/CRAN\/refmans\/GWmodel\/html\/gwpca.html?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\"><code>GWmodel<\/code> GWPCA documentation<\/a> \u2014 function arguments, return objects, local loadings, and variance proportions.<\/li>\n<li>\n<div>\n<div>\n<p><a href=\"https:\/\/search.r-project.org\/CRAN\/refmans\/GWmodel\/html\/bw.gwpca.html?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noopener\"><code>GWmodel<\/code> bandwidth selection documentation<\/a> \u2014 fixed and adaptive bandwidths and cross-validation.<\/p>\n<div>\n<div><\/div>\n<\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Geographically Weighted Principal Component Analysis (GWPCA) in GIS Introduction: Why Spatial Data Needs Local Multivariate Analysis Principal Component Analysis (PCA) is a multivariate statistical technique used to reduce a large set of correlated variables into a smaller number of components that summarize the dominant patterns of variation in the data. It is widely used in &#8230; <a title=\"Geographically Weighted Principal Component Analysis (GWPCA) in GIS\" class=\"read-more\" href=\"https:\/\/helpwithmygisassignment.com\/blog\/gwpca-spatial-analysis\/\" aria-label=\"Read more about Geographically Weighted Principal Component Analysis (GWPCA) in GIS\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":1282,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis-articles"],"_links":{"self":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/comments?post=1277"}],"version-history":[{"count":5,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1277\/revisions"}],"predecessor-version":[{"id":1285,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/posts\/1277\/revisions\/1285"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/media\/1282"}],"wp:attachment":[{"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/media?parent=1277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/categories?post=1277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helpwithmygisassignment.com\/blog\/wp-json\/wp\/v2\/tags?post=1277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}