esda.Moran_BV¶
-
class esda.Moran_BV(x, y, w, transformation=
'r', permutations=999)[source]¶ Bivariate Moran’s I
- Parameters:¶
- x : array¶
x-axis variable
- y : array¶
wy will be on y axis
- w : W | Graph¶
spatial weights instance as W or Graph aligned with x and y
- transformation : {'R', 'B', 'D', 'U', 'V'}¶
weights transformation, default is row-standardized “r”. Other options include “B”: binary, “D”: doubly-standardized, “O”: restore original transformation (applicable only if
wis passed asW), “V”: variance-stabilizing.- permutations : int¶
number of random permutations for calculation of pseudo p_values
- p_sim[source]¶
(if permutations>0) p-value based on permutations (one-sided) null: spatial randomness alternative: the observed I is extreme it is either extremely high or extremely low
- p_z_sim[source]¶
(if permutations>0) p-value based on standard normal approximation from permutations
Notes
Inference is only based on permutations as analytical results are not too reliable.
Examples
>>> import libpysal, numpySet random number generator seed so we can replicate the example
>>> numpy.random.seed(10)Open the sudden infant death dbf file and read in rates for 74 and 79 converting each to a numpy array
>>> f = libpysal.io.open(libpysal.examples.get_path("sids2.dbf")) >>> SIDR74 = numpy.array(f.by_col['SIDR74']) >>> SIDR79 = numpy.array(f.by_col['SIDR79'])Read a GAL file and construct our spatial weights object
>>> w = libpysal.io.open(libpysal.examples.get_path("sids2.gal")).read()Create an instance of Moran_BV
>>> from esda import Moran_BV >>> mbi = Moran_BV(SIDR79, SIDR74, w)What is the bivariate Moran’s I value
>>> round(mbi.I, 3) np.float64(0.156)Based on 999 permutations, what is the p-value of our statistic
>>> round(mbi.p_z_sim, 3) np.float64(0.001)Methods
by_col(df, x[, y, w, inplace, pvalue, outvals])Function to compute a Moran_BV statistic on a dataframe
plot_scatter([ax, scatter_kwds, fitline_kwds])Plot a Moran scatterplot with optional coloring for significant points.
plot_simulation([ax, legend, fitline_kwds])Global Moran's I simulated reference distribution.
-
classmethod by_col(df, x, y=
None, w=None, inplace=False, pvalue='sim', outvals=None, **stat_kws)[source]¶ Function to compute a Moran_BV statistic on a dataframe
- Parameters:¶
- df : pandas.DataFrame¶
a pandas dataframe with a geometry column
- X : list of strings
column name or list of column names to use as X values to compute the bivariate statistic. If no Y is provided, pairwise comparisons among these variates are used instead.
- Y : list of strings
column name or list of column names to use as Y values to compute the bivariate statistic. if no Y is provided, pariwise comparisons among the X variates are used instead.
- w : W | Graph¶
spatial weights instance as W or Graph aligned with the dataframe. If not provided, this is searched for in the dataframe’s metadata
- inplace : bool¶
a boolean denoting whether to operate on the dataframe inplace or to return a series contaning the results of the computation. If operating inplace, the derived columns will be named ‘column_moran_local’
- pvalue : string¶
a string denoting which pvalue should be returned. Refer to the the Moran_BV statistic’s documentation for available p-values
- outvals : list of strings¶
list of arbitrary attributes to return as columns from the Moran_BV statistic
- **stat_kws : keyword arguments¶
options to pass to the underlying statistic. For this, see the documentation for the Moran_BV statistic.
- Returns:¶
If inplace, None, and operation is conducted on dataframe
in memory. Otherwise, returns a copy of the dataframe with
the relevant columns attached.
-
plot_scatter(ax=
None, scatter_kwds=None, fitline_kwds=None)[source]¶ Plot a Moran scatterplot with optional coloring for significant points.
-
plot_simulation(ax=
None, legend=False, fitline_kwds=None, **kwargs)[source]¶ Global Moran’s I simulated reference distribution.
- Parameters:¶
- ax : matplotlib.axes.Axes, optional¶
Pre-existing axes for the plot, by default None.
- legend : bool, optional¶
Plot a legend, by default False
- fitline_kwds : dict, optional¶
Additional keyword arguments for vertical Moran fit line, by default None.
- **kwargs : keyword arguments, optional¶
Additional keyword arguments for KDE plot passed to
seaborn.kdeplot, by default None.
- Returns:¶
Axes object with the Moran scatterplot.
- Return type:¶
matplotlib.axes.Axes
Notes
This requires optional dependencies
matplotlibandseaborn.