{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import libpysal as lps\n",
"import numpy as np\n",
"import esda\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10.0"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"w = lps.weights.lat2W(4, 4)\n",
"y = np.ones(16)\n",
"y[0:8] = 0\n",
"np.random.seed(12345)\n",
"from esda.join_counts import Join_Counts\n",
"jc = Join_Counts(y, w)\n",
"jc.bb\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" Neighbor | \n",
" W | \n",
" B | \n",
"
\n",
" \n",
" Focal | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" W | \n",
" 10.0 | \n",
" 1.0 | \n",
"
\n",
" \n",
" B | \n",
" 3.0 | \n",
" 10.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Neighbor W B\n",
"Focal \n",
"W 10.0 1.0\n",
"B 3.0 10.0"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jc.crosstab"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" Neighbor | \n",
" W | \n",
" B | \n",
"
\n",
" \n",
" Focal | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" W | \n",
" 5.958333 | \n",
" 5.041667 | \n",
"
\n",
" \n",
" B | \n",
" 7.041667 | \n",
" 5.958333 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Neighbor W B\n",
"Focal \n",
"W 5.958333 5.041667\n",
"B 7.041667 5.958333"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jc.expected"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8.479632255856034"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jc.chi2"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.003591446953916693"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jc.chi2_p"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.002"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"jc.p_sim_chi2"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"