Анализ группирования (Grouping Analysis) (Пространственная статистика)
Резюме
Группирует объекты на основе атрибутов объектов и дополнительных пространственных/временных ограничений.
Более подробно о работе инструмента Анализ группирования (Grouping Analysis)
Рисунок
Использование
-
Этот инструмент создает класс выходных объектов с полями, используемыми в анализе, а также целочисленным полем SS_GROUP. Отображение по умолчанию зависит от поля SS_GROUP, при этом показывается, к какой группе принадлежит каждый объект. Если вы указали, что требуется три группы, каждая запись будет содержать значение 1, 2 или 3 для поля SS_GROUP. Если значение NO_SPATIAL CONSTRAINT выбрано для параметра Пространственные ограничения (Spatial Constraints), выходной класс объектов также будет содержать новое двоичное поле SS_SEED. Поле SS_SEED указывает, какие объекты использовались как начальные точки для наращивания групп. Число ненулевых значений в поле SS_SEED будет совпадать со значением, введенным для параметра Число групп (Number of Groups).
Этот инструмент при необходимости создает PDF-файл отчета при указании пути в параметре Выходной файл отчета (Output Report File). Данный отчет содержит различные таблицы и графики, помогающие понять характеристики выявленных групп. Доступ к PDF-файлу отчета можно получить в окне Результаты (Results).
Примечание:Создание файла отчета может значительно увеличить время обработки. Затем инструмент Анализ группирования (Grouping Analysis) создаст выходной класс объектов с отображением участников групп. PDF-файл отчета не создается, если вы укажете более 15 групп или более 15 переменных.
-
Поле уникального ID позволяет связать записи в выходном классе объектов с исходным входным классом объектов. Следовательно, значение поля уникального ID должно быть уникально для каждого объекта и, как правило, должно хранится в постоянном поле, которое остается с классом объектов. Если у вас нет поля уникального ID в наборе данных, вы можете легко создать его путем добавления нового целого поля в вашу таблицу класса объектов и рассчитать значения поля, которое должно соответствовать полям FID/OID. Вы не можете непосредственно использовать поля FID/OID для параметра поля уникального ID.
-
Поля анализа должны быть числовыми и должны содержать разные значения. Поля без вариации (т. е. с одним значением для каждой записи) будут удалены из анализа, но будут включены в выходной класс объектов. Поля категорий можно использовать с инструментом Анализ группирования (Grouping Analysis), если они представлены как бинарные переменные (значение один для всех объектов категорий, нули для всех других объектов).
Инструмент Анализ группирования (Grouping Analysis) создает группы с пространственными/временными ограничениями или без них. Для некоторых приложений не требуется применять к создаваемым группам требования примыкания или другие требования близости. В этих случаях для параметра Пространственные ограничения (Spatial Constraints) задается значение NO_SPATIAL_CONSTRAINT.
Для определенного анализа группы должны быть пространственно непрерывными. Опции CONTIGUITY включены для полигональных классов объектов и указывают, что объекты могут входить в одну группу, только если у них есть общее ребро (CONTIGUITY_EDGES_ONLY) или общее ребро или вершина (CONTIGUITY_EDGES_CORNERS) с другим участником группы.
Опции DELAUNAY_TRIANGULATION и K_NEAREST_NEIGHBORS подходят для точечных и полигональных объектов, если требуется убедиться, что все члены группы находятся поблизости. Эти опции указывают, что объект включается в группу, только если хотя бы один другой объект является естественным соседом (триангуляция Делоне) или K ближайшим соседом. K — это учитываемое число соседей, которое указывается с помощью параметра Количество соседей (Number of Neighbors).
Чтобы создать группы с пространственными и временными ограничениями, используйте инструмент Построить матрицу пространственных весов (Generate Spatial Weights Matrix), чтобы создать файл матрицы пространственных весов (SWM), определяющий пространственно-временные отношения ваших объектов. Затем запустите инструмент Анализ группирования (Grouping Analysis), задав для параметра Пространственные ограничения (Spatial Constraints) значение GET_SPATIAL_WEIGHTS_FROM_FILE, а для параметра Файл матрицы пространственных весов (Spatial Weights Matrix File) указав созданный SWM-файл.
Дополнительные пространственные ограничения, такие как фиксированное расстояние (Fixed Distance), можно наложить, создав с помощью инструмента Построить матрицу пространственных весов (Generate Spatial Weights Matrix) SWM-файл, а затем указав путь к этому файлу в параметре Файл матрицы пространственных весов (Spatial Weights Matrix File).
Примечание:Хотя можно создать SWM-файл для определения пространственных ограничений, фактически веса не применяются. SWM-файл просто определяет, какие объекты являются примыкающими или близкими. Наложение пространственного ограничения определяет, какие объекты могут входить в одну группу. Если выбрать значение CONTIGUITY_EDGES_ONLY, например, у всех объектов в группе будет по крайней мере одно общее ребро с другим объектом из этой группы. Так полученные группы будут пространственно непрерывными.
При определении пространственного ограничения можно гарантированно получить компактные, непрерывные или близкие группы. Включение пространственных переменных в ваш список полей анализа также может повлиять на эти атрибуты группы. К примерам пространственных переменных можно отнести расстояние до скоростных автострад, доступность вакансий, близость магазинов, измерения связности и даже координаты (X, Y). Включение переменных, представляющих время, день недели или временное расстояние, позволяет обеспечить временную компактность членов группы.
При наличии четкого пространственного шаблона в ваших объектах (например, три отдельных кластера) алгоритм группирования с пространственным ограничением может усложниться. Сначала алгоритм определяет, существуют ли разъединенные группы. Если число таких групп больше значения Количество групп (Number of Groups), инструмент не сможет выполнить вычисления и отобразит соответствующее сообщение об ошибке. Если число разъединенных групп совпадает со значением параметра Количество групп (Number of Groups), только пространственная конфигурация объектов определяет результаты группировки, как показано на рисунке (A) ниже. Если указанное Количество групп (Number of Groups) больше числа разъединенных групп, то группирование начинается с уже определенных групп. Например, если число разъединенных групп равно трем, а значение параметра Количество групп (Number of Groups) равно 4, одна из этих трех групп будет разделена, чтобы создать четвертую группу, как показано на рисунке (B) ниже.
В некоторых случаях инструмент Анализ группирования (Grouping Analysis) не сможет выполнить наложенные пространственные ограничения, а некоторые объекты не будут включены ни в одну группу (значение SS_GROUP будет равно -9999 с полым отображением). Это происходит при наличии объектов без соседей. Чтобы избежать этого, используйте опцию K_NEAREST_NEIGHBORS, которая гарантирует, что у всех объектов будут соседи. Увеличение значения параметра Количество соседей (Number of Neighbors) поможет устранить проблемы с разъединенными группами.
Хотя существует тенденция для включения максимально возможного числа полей анализа, при использовании этого инструмента лучше начать с одной переменной. Результаты намного легче интерпретировать при меньшем числе полей анализа. Также легче определить, какие переменные лучше разделяют группы при меньшем количестве полей.
При выборе значения NO_SPATIAL_CONSTRAINT для параметра Пространственные ограничения (Spatial Constraints) у вас будет три опции для метода инициализации (Initialization Method): FIND_SEED_LOCATIONS, GET_SEEDS_FROM_FIELD и USE_RANDOM_SEEDS. Начальные значения — это объекты, используемые для создания групп. Если, например, ввести значение 3 для параметра Количество групп (Number of Groups), анализ начнется с трех начальных объектов. Опция по умолчанию, FIND_SEED_LOCATIONS, случайным образом выбирает первое начальное значение, а последующие выбранные начальные значения представляют объекты, которые находятся вдалеке друг от друга в пространстве данных. Выбор начальных значений, которые формируют разные области пространства данных, улучшает производительность. Иногда вы знаете, что определенные объекты отражают характеристики, которые должны быть представлены разными группами. В этом случае создайте поле начального значения, чтобы идентифицировать эти объекты. Создаваемое поле начального значения должно содержать нули для всех объектов, кроме изначальных, для которых должно быть указано значение 1. Затем вы выбираете значение GET_SEEDS_FROM_FIELD для параметра Метод инициализации (Initialization Method). Если вы хотите выполнить анализ чувствительности, чтобы узнать, какие объекты всегда будут в одной группе, выберите опцию USE_RANDOM_SEEDS для параметра Метод инициализации (Initialization Method). Для этой опции все начальные объекты выбираются случайным образом.
Любые значения 1 в поле инициализации будут интерпретироваться как начальные. Если начальных объектов больше значения Количество групп (Number of Groups), начальные объекты выбираются случайным образом из объектов, заданных полем инициализации. Если число начальных объектов меньше значения Количество групп (Number of Groups), выбираются дополнительные начальные объекты так, чтобы они были далеко (в пространстве данных) из объектов, заданных полем инициализации.
Иногда вы знаете, что Количество групп (Number of Groups) лучше всего подходит для ваших данных. Если это не так, можно попробовать использовать три разных числа групп, отмечая, какие значения обеспечивают наилучшую дифференциацию групп. Если установить флажок Оценить оптимальное число групп (Evaluate Optimal Number of Groups), псевдо-F-статистика вычисляется для решений группировки с группами 2-15. Если других критериев для параметра Количество групп (Number of Groups) нет, используйте число, связанное с одним из самых больших значений псевдо-F-статистики. Самые большие значения псевдо-F-статистики указывают решения, которые улучшают поиск сходств и отличий групп. При указании дополнительного выходного файла отчета, этот PDF-отчет будет содержать график со значениями F-статистики для решений с группами 2-15.
При включении пространственного или пространственно-временного ограничения в анализ, псевдо-F-статистика доступна для сравнения (если входные объекты и поля анализа не изменяются). Затем вы можете использовать эти значения F-статистики, чтобы определить не только оптимальное количество групп, но и выбрать наиболее эффективную опцию для параметров Пространственные ограничения (Spatial Constraints), Метод определения расстояния (Distance Method) и Количество соседей (Number of Neighbors).
Алгоритм K-средних, используемый для разбиения объектов по группам, когда выбрана опция NO_SPATIAL_CONSTRAINT для параметра Пространственные ограничения (Spatial Constraints), а опция FIND_SEED_LOCATIONS или USE_RANDOM_SEEDS выбрана для параметра Метод инициализации (Initialization Method), применяет эвристические данные и может возвращать разные результаты при каждом запуске инструмента (даже при использовании одних данных и параметров инструмента). Это происходит, потому что случайный компонент применяется для поиска начальных объектов, используемых для создания групп.
При наложении пространственного ограничения в алгоритме нет случайного компонента, поэтому одно значение псевдо-F-статистики может быть вычислено для групп 2-15, а самые большие значения F-статистики можно использовать для определения оптимального количества групп. Так как опция NO_SPATIAL_CONSTRAINT — это эвристический метод, определение оптимального числа групп — более сложный процесс. F-статистика может отличаться при каждом запуске инструментов из-за разных начальных объектов. Если в данных есть четкая закономерность, решения при последовательном запуске инструмента будут более согласованными. Следовательно, для определения оптимального числа групп, если выбрана опция NO_SPATIAL_CONSTRAINT, инструмент выполняет анализ группирования 10 раз для 2, 3, 4 и 15 групп. Сведения о распределении этих 10 решений затем записываются в отчет (мин., макс., среднее и медиана), чтобы помочь в определении оптимального числа групп для анализа.
Инструмент Анализ группирования (Grouping Analysis) возвращает три выходных значения для их потенциального использования в пользовательской модели или скриптах. Это псевдо-F-статистика для параметра Количество групп (Number of Groups) (Output_FStat), самая большая псевдо-F-статистика для групп 2-15 (Max_FStat) и число групп, связанных с самым большим значением псевдо-F-статистики (Max_FStat_Group). Если вам не нужно выбирать параметр Оценить оптимальное число групп (Evaluate Optimal Number of Groups), все образованные выходные переменные получают значение Нет (None).
Число групп, назначенных набору объектов, может измениться после запуска инструмента. Например, предположим, что вы разбиваете объекты на две группы на основе переменной дохода. При первом выполнении анализа вы можете увидеть объекты с высоким доходом в группе 2, а объекты с низким доходом — в группе 1. При втором выполнении того же анализа объекты с высоким доходом будут отмечены как группа 1. Вы также можете увидеть, что некоторые объекты со средним доходом переходят из одной группы в другую при указании опции NO_SPATIAL_CONSTRAINT.
Хотя вы можете создать большое число разных групп, в большинстве сценариев, вы будете разбивать объекты всего на несколько групп. Так как при наличии множества групп графики и карты трудно интерпретировать, отчеты не создаются при вводе значения больше 15 для параметра Количество групп (Number of Groups) или выборе больше 15 полей анализа. Однако вы можете увеличить это ограничение до максимального числа групп.
Более подробно:Так как у вас есть исходный код на языке Python для инструмента Анализ группирования (Grouping Analysis), вы можете переопределить ограничение в 15 переменных и 15 групп. Это верхнее ограничение задается двумя переменными в файле скрипта Partition.py и в коде проверки инструмента в наборе инструментов Пространственная статистика (Spatial Statistics):
maxNumGroups = 15 maxNumVars = 15
Этот инструмент при необходимости создает PDF-файл отчета со сводным представлением результатов. PDF-файл не отображается автоматически в окне каталога. Если требуется показать PDF-файлы в окне каталога, откройте приложение ArcCatalog, выберите опцию меню Настройка (Customize), щелкните Опции ArcCatalog (ArcCatalog Options) и выберите вкладку Типы файлов (File Types). Нажмите кнопку Новый тип (New Type) и укажите PDF, как показано ниже, для параметра Расширение файла (File Extension).
На компьютерах с языковыми пакетами ArcGIS для китайского или японского языков, в PDF-файле выходного отчета может отсутствовать текст или элементы форматирования. Эти проблемы можно исправить, изменив настройки шрифта.
Дополнительные сведения о выходном файле отчета см. в статье Более подробно о работе инструмента Анализ группирования (Grouping Analysis)
Синтаксис
Параметр | Объяснение | Тип данных |
Input_Features |
Класс или слой объектов, для которого требуется создать группы. | Feature Layer |
Unique_ID_Field |
Целое поле, содержащее разное значение для каждого объекта в наборе данных Входные объекты (Input Features). | Field |
Output_Feature_Class |
Новый выходной класс объектов, содержащий все объекты, указанные поля анализа и поле, указывающее, какой группе принадлежит объект. | Feature Class |
Number_of_Groups |
Число создаваемых групп. Параметр Выходной отчет (Output Report) будет отключен, если групп больше 15. | Long |
Analysis_Fields [Analysis_Fields,...] |
Список полей, которые будут использоваться, чтобы различать группы друг от друга. Параметр Выходной отчет (Output Report) будет отключен, если полей больше 15. | Field |
Spatial_Constraints |
Определяет, как пространственные отношения между объектами должны ограничивать создаваемые группы.
| String |
Distance_Method (дополнительно) |
Определяет, как рассчитываются расстояния от одного объекта до соседнего объекта.
| String |
Number_of_Neighbors (дополнительно) |
Этот параметр включен, если для параметра Пространственные ограничения (Spatial Constraints) задана опция K_NEAREST_NEIGHBORS или один из методов CONTIGUITY. Число соседей по умолчанию — 8. Для опции K_NEAREST_NEIGHBORS это целое число отражает точное количество кандидатов в ближайшие соседи, учитываемых при создании групп. Объект не будет включен в группу, если один из других объектов в этой группе не является ближайшим K соседом. Для методов CONTIGUITY это значение отражает точное число кандидатов в соседи, учитываемых только для островных полигонов. Так как у островных полигонов нет смежных соседей, им будут назначены не смежные, а близкие соседи. | Long |
Weights_Matrix_File (дополнительно) |
Путь к файлу, который содержит пространственные веса, которые определяют пространственные отношения между объектами. | File |
Initialization_Method (дополнительно) |
Указывает, как получаются начальные значения, если для параметра Пространственные ограничения (Spatial Constraints) задано значение NO_SPATIAL_CONSTRAINT. Начальные значения используются для создания групп. Если требуется 3 группы, анализ начнется с трех начальных объектов.
| String |
Initialization_Field (дополнительно) |
Числовое поле, определяющее начальные объекты. Объекты, для которых это поле имеет значение 1, используются для создания групп. | Field |
Output_Report_File (дополнительно) |
Полный путь к создаваемому PDF-файлу отчета со сводкой характеристик групп. Данный отчет содержит ряд графиков, помогающих сравнить характеристики каждой группы. Создание файла отчета может значительно увеличить время обработки. | File |
Evaluate_Optimal_Number_of_Groups (дополнительно) |
| Boolean |
Пример кода
Следующий скрипт в окне Python демонстрирует, как использовать инструмент GroupingAnalysis.
import arcpy
import arcpy.stats as SS
arcpy.env.workspace = r"C:\GA"
SS.GroupingAnalysis("Dist_Vandalism.shp", "TARGET_FID", "outGSF.shp", "4",
"Join_Count;TOTPOP_CY;VACANT_CY;UNEMP_CY",
"NO_SPATIAL_CONSRAINT", "EUCLIDEAN", "", "", "FIND_SEED_LOCATIONS", "",
"outGSF.pdf", "DO_NOT_EVALUATE")
Следующий автономный скрипт Python демонстрирует, как использовать инструмент GroupingAnalysis.
# Grouping Analysis of Vandalism data in a metropolitan area
# using the Grouping Analysis Tool
# Import system modules
import arcpy, os
import arcpy.stats as SS
# Set geoprocessor object property to overwrite existing output, by default
arcpy.gp.overwriteOutput = True
try:
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"C:\GA"
# Join the 911 Call Point feature class to the Block Group Polygon feature class
# Process: Spatial Join
fieldMappings = arcpy.FieldMappings()
fieldMappings.addTable("ReportingDistricts.shp")
fieldMappings.addTable("Vandalism2006.shp")
sj = arcpy.SpatialJoin_analysis("ReportingDistricts.shp", "Vandalism2006.shp", "Dist_Vand.shp",
"JOIN_ONE_TO_ONE",
"KEEP_ALL",
fieldMappings,
"COMPLETELY_CONTAINS", "", "")
# Use Grouping Anlysis tool to create groups based on different variables or analysis fields
# Process: Group Similar Features
ga = SS.GroupingAnalysis("Dist_Vand.shp", "TARGET_FID", "outGSF.shp", "4",
"Join_Count;TOTPOP_CY;VACANT_CY;UNEMP_CY",
"NO_SPATIAL_CONSRAINT", "EUCLIDEAN", "", "", "FIND_SEED_LOCATIONS", "",
"outGSF.pdf", "DO_NOT_EVALUATE")
# Use Summary Statistic tool to get the Mean of variables used to group
# Process: Summary Statistics
SumStat = arcpy.Statistics_analysis("outGSF.shp", "outSS", "Join_Count MEAN; \
VACANT_CY MEAN;TOTPOP_CY MEAN;UNEMP_CY MEAN",
"GSF_GROUP")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()
Параметры среды
- Выходная система координат (Output Coordinate System)
До начала анализа геометрия пространственных объектов проецируется в Выходную систему координат (Output Coordinate System), поэтому значения параметров Диапазон расстояний / Пороговое расстояние (Distance Band/Threshold Distance) должны быть выражены в единицах измерения, заданных в Выходной системе координат. Во всех математических вычислениях учитывается пространственная привязка Выходной системы координат (Output Coordinate System).