FRAMES | NO FRAMES
FindSimilar Method

Scores potential sites or trade areas against an existing well-performing master site.

Availability: Business Analyst Server.

TaskResultOutput FindSimilar ( 
    FindSimilarParameters  Parameters, 
    esriReportFormat       ReportFormat, 
    RenderingParameters    RenderingParameters, 
    TaskOutputType[]       OutputTypes, 
    esriFolderItem         OutputAnalysisItem 
); 

Parameter Description
Parameters Configuration options for analysis. Type FindSimilarParameters.
ReportFormat This parameter should be null. This parameter is deprecated.
RenderingParameters Configuration options for rendering output when GetMapImage option is specified in the OutputTypes parameter. Type RenderingParameters.
OutputTypes Array of task output options. Options for this method include rendering output image (GetMapImage) and creating a feature layer for subsequent analysis (GetFeatureClass). Type TaskOutputType[].
OutputAnalysisItem (Optional parameter — can be null).
Configuration options for storing the output feature layer in the repository. This will enable viewing and working with the output result in subsequent tasks. Type esriFolderItem.

Returns

Variable of type TaskResultOutput

Remarks

The FindSimilar method is used to score potential new sites against a known, well-performing site, called a master site.

Why do some stores do better than others? The old real estate axiom of "location, location, location" is usually the most important part of the answer. The FindSimilar method is based on the idea that the characteristics of a master site can be used to find similar sites elsewhere. The FindSimilar method allows you to score polygon data—for example, simple rings, drive times, and other forms of trade areas.

The master site can be based on your best location or a typical location. You can select a master site based on a trade area around store with a particular product mix or on one that has the highest rate of same store sales. You have to pick the master site candidate against which FindSimilar will score. You can choose your master site from the data layer to be scored or from another polygon layer.

Although it isn't required, you should compare similar-sized areas around the master and scored sites. For example, if you're using a 5-minute drive time around your master site, you should create and use a 5-minute drive time around the other features in the target layer.

The are two approaches for running the FindSimilar method—the Conventional Analysis and the Principal Component Analysis.

Conventional Analysis

The Conventional Analysis compares the master site against the other features in the target layer based on variables you select. This method has a fundamental assumption that you know what variables are important in ranking sites based on similarity. That you can precisely identify the relevant variables is an assumption that might not hold in most cases. For instance, if block groups were used as the level of geography, deciding on the right variables is not easy, sometimes setting the range to +/- 60 percent for the chosen variables does not find a similar site.

The Conventional Analysis ranks trade areas by comparing values, of up to five variables, of the master site to the scored sites. You will assign a +/- percentage that you would like the sites to be scored according to the master site value. Sites are then assigned a score of 1-5 based on the number of variables that match the criteria you set.

Principal Component Analysis (PCA)

The PCA removes the burden of variable selection while still providing a ranking of the sites according to the level of similarity. You can choose as many variables as you want.

The figure below illustrates how the variables or neighbors can be selected where K is the number of neighbors to be found.

The PCA considers a set of variables for each site as a vector. It then considers a set of vectors for all potential sites and the master site and performs the PCA on it in the following sequence:

  1. Build covariation matrix.
  2. Find eigenvectors and values for covariation matrix.
  3. Drop eigenvectors with eigenvalues less than 1 using Kaiser Criterion.
  4. These eigenvectors form a subspace in the initial space.
  5. Projections to this subspace are calculated for all vectors.
  6. The projected data are standardized to [0,1] interval.
  7. K closest similar potential sites are chosen using Euclidean distance.

The resulting layer contains K potential sites closest to the master site.

Usage Tips

Examples

The example below generates a list of areas of interest based on selected demographic and marketing characteristics.

NOTE: See CustomerProspecting samples for a similar analysis using the Principal Components Analysis option.

C#
// Instantiate the BAServerHelper class to access analysis methods
BAServerHelper baServerHelper = new BAServerHelper();
baServerHelper.ActiveDatasetID = "USA_ESRI"; // Optional parameter
baServerHelper.IsFullErrorMessage = true;    // Default is false
 
RenderingParameters imageOptions;
TaskOutputType[] outputOptions;
esriFolderItem outputLayer;
esriFolderItem outputReport;
 
// ========= STEP 1: Specify a boundary layer with two California Counties
 
StandardLevelsOfGeographyParameters geographyParameters = new StandardLevelsOfGeographyParameters();
 
// Set specific analysis parameters
geographyParameters.GeographyFeaturesBehavior = esriStdGeographyType.esriStdGeographyTypeFirst;
geographyParameters.GeographyIDs = new string[] { "06001", "06003" };
geographyParameters.GeographyLevelID = "US.Counties";
 
// Set other parameters
imageOptions = null;
outputOptions = new TaskOutputType[] { TaskOutputType.GetFeatureClass };
outputLayer = null;
outputReport = null;
 
TaskResultOutput geographyResult =
    baServerHelper.StandardLevelsOfGeography(geographyParameters, imageOptions, outputOptions, outputLayer, outputReport);
 
DataLayer boundaryLayer = new DataLayer();
boundaryLayer.RecordSet = geographyResult.RecordSet;
 
// ========= STEP 2: Specify a master site layer with San Francisco County
 
geographyParameters = new StandardLevelsOfGeographyParameters();
 
// Set specific analysis parameters
geographyParameters.GeographyFeaturesBehavior = esriStdGeographyType.esriStdGeographyTypeFirst;
geographyParameters.GeographyIDs = new string[] { "06075" };
geographyParameters.GeographyLevelID = "US.Counties";
 
// Set other parameters
imageOptions = null;
outputOptions = new TaskOutputType[] { TaskOutputType.GetFeatureClass };
outputLayer = null;
outputReport = null;
 
geographyResult =
    baServerHelper.StandardLevelsOfGeography(geographyParameters, imageOptions, outputOptions, outputLayer, outputReport);
 
DataLayer masterSiteLayer = new DataLayer();
masterSiteLayer.RecordSet = geographyResult.RecordSet;
 
// ========= STEP 3: Execute the analysis
 
FindSimilarParameters parameters = new FindSimilarParameters();
 
// Set specific analysis parameters
parameters.AnalysisType = esriFindSimilarAnalysisType.esriFindSimilarAnalysisConventional;
parameters.Boundaries = boundaryLayer;
parameters.MasterSiteLayer = masterSiteLayer;
parameters.MasterSiteOID = 1;
parameters.PercentValues = new double[] { 25, 25, 30, 30 };
parameters.Summarizations = new string[] { "MEDHINC_CY", "AVGNW_CY", "MARRIED_CY", "EDBACH_CY" };
 
// Set other parameters
imageOptions = null;
outputOptions = new TaskOutputType[] { TaskOutputType.GetFeatureClass };
outputLayer = null;
 
TaskResultOutput result = baServerHelper.FindSimilar(parameters, imageOptions, outputOptions, outputLayer);

See Also