From d611de4584dd9c9c31d02f888e5a9b45969cf466 Mon Sep 17 00:00:00 2001 From: Dan Snow <31494343+dfsnow@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:16:23 -0600 Subject: [PATCH] Refactor AssessPy for consistency, stability (#24) * Add type stubs to dev deps * Refactor all assesspy formulas * Add full test suite for metrics * Add and clean testing data/samples * Update doc refs for data sets * Update metric docs types * Cleanup doc groupings * Bump package version * Add metrics _met docs * Update all CI functions * Don't export check_inputs * Update outlier functions * Cleanup test fixtures * Refactor outlier functions * Rename expect output vars * Add outlier function tests * Add option to disable lt 0 check for check_inputs * Update outliers docs heading * Remove scipy dependency * Refactor sales chasing functions * Fixup outlier functions * Finalize sales chasing rewrite * Add tests for all code paths * Update README * Update docs * Lint with ruff * Add Python 3.13 support * Update tests and types * Add Python 3.8 support * Add more python versions, update docstrings * Revert .python-versions setup * Remove pandas stubs dep * Set 3.9 to min python version * Fix indexing bug for MKI * Add more tests of MKI index issues * Update example ratio study notebook * Fix rst table format * Set notebook execution timeout * Update doc references * Fix minor doc issues * Remove 3.8 from tox env list * Bump release date * Remove unnecessary typing * Deduplicate PRD code * Scope test to session * Join check_inputs messages with newlines * Fix ruff errors * Scope seed fixture to each test --- .github/workflows/python-package.yaml | 2 +- .github/workflows/test-coverage.yaml | 4 +- CITATION.cff | 4 +- README.md | 2 +- assesspy/__init__.py | 14 +- assesspy/ci.py | 156 +++---- assesspy/data/ccao_sample.parquet | Bin 0 -> 22430 bytes assesspy/data/mki_ki.csv | 30 -- assesspy/data/quintos_sample.csv | 31 ++ assesspy/data/ratios_sample.parquet | Bin 31633 -> 0 bytes assesspy/formulas.py | 299 -------------- assesspy/load_data.py | 61 ++- assesspy/metrics.py | 382 ++++++++++++++++++ assesspy/outliers.py | 124 +++--- assesspy/sales_chasing.py | 149 ++++--- assesspy/tests/conftest.py | 83 ++++ assesspy/tests/test_ci.py | 160 +++----- assesspy/tests/test_formulas.py | 254 ------------ assesspy/tests/test_metrics.py | 48 +++ assesspy/tests/test_outliers.py | 148 ++++--- assesspy/tests/test_sales_chasing.py | 130 +++--- assesspy/utils.py | 37 +- docs/source/ccao_sample.rst | 5 + docs/source/ci.rst | 14 +- docs/source/cod.rst | 2 + docs/source/conf.py | 1 + docs/source/index.rst | 6 +- docs/source/ki.rst | 4 +- docs/source/mki.rst | 5 +- docs/source/mki_ki.rst | 5 - .../notebooks/example-ratio-study.ipynb | 354 ++++++++-------- docs/source/outliers.rst | 6 +- docs/source/prb.rst | 2 + docs/source/prd.rst | 2 + docs/source/quintos_sample.rst | 5 + docs/source/ratios_sample.rst | 5 - docs/source/reference.rst | 35 +- docs/source/sales_chasing.rst | 2 +- pyproject.toml | 12 +- 39 files changed, 1285 insertions(+), 1298 deletions(-) create mode 100644 assesspy/data/ccao_sample.parquet delete mode 100644 assesspy/data/mki_ki.csv create mode 100644 assesspy/data/quintos_sample.csv delete mode 100644 assesspy/data/ratios_sample.parquet delete mode 100644 assesspy/formulas.py create mode 100644 assesspy/metrics.py create mode 100644 assesspy/tests/conftest.py delete mode 100644 assesspy/tests/test_formulas.py create mode 100644 assesspy/tests/test_metrics.py create mode 100644 docs/source/ccao_sample.rst delete mode 100644 docs/source/mki_ki.rst create mode 100644 docs/source/quintos_sample.rst delete mode 100644 docs/source/ratios_sample.rst diff --git a/.github/workflows/python-package.yaml b/.github/workflows/python-package.yaml index bef08f1..8cc14f1 100644 --- a/.github/workflows/python-package.yaml +++ b/.github/workflows/python-package.yaml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index 5b33b33..e4de8cf 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout @@ -35,7 +35,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies - run: uv pip install .[test] + run: uv pip install .[dev] - name: Run pytest run: | diff --git a/CITATION.cff b/CITATION.cff index 7040773..59e3278 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,6 +2,6 @@ message: "If you use this software, please cite it as below." authors: - family-names: "Cook County Assessor's Office" title: "AssessPy" -version: 1.2.0 -date-released: 2022-11-14 +version: 2.0.0 +date-released: 2024-11-25 url: https://github.com/ccao-data/assesspy diff --git a/README.md b/README.md index f2cb8ea..1c8a038 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![test-coverage](https://github.com/ccao-data/assesspy/actions/workflows/test-coverage.yaml/badge.svg)](https://github.com/ccao-data/assesspy/actions/workflows/test-coverage.yaml) [![pre-commit](https://github.com/ccao-data/assesspy/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/ccao-data/assesspy/actions/workflows/pre-commit.yaml) -Assesspy is a software package for Python developed by the Cook County Assessor’s (CCAO) +AssessPy is a software package for Python developed by the Cook County Assessor’s (CCAO) Data Department. It contains many of the functions necessary to perform a standard [sales ratio study](https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf). diff --git a/assesspy/__init__.py b/assesspy/__init__.py index 785ebc6..0284e20 100644 --- a/assesspy/__init__.py +++ b/assesspy/__init__.py @@ -1,9 +1,11 @@ from .ci import ( boot_ci, cod_ci, + prb_ci, prd_ci, ) -from .formulas import ( +from .load_data import ccao_sample, quintos_sample +from .metrics import ( cod, cod_met, ki, @@ -14,11 +16,5 @@ prd, prd_met, ) -from .load_data import ratios_sample -from .outliers import ( - iqr_outlier, - is_outlier, - quantile_outlier, -) -from .sales_chasing import detect_chasing -from .utils import check_inputs +from .outliers import is_outlier +from .sales_chasing import is_sales_chased diff --git a/assesspy/ci.py b/assesspy/ci.py index b2394c6..6c81938 100644 --- a/assesspy/ci.py +++ b/assesspy/ci.py @@ -1,38 +1,46 @@ -# Import necessary libraries +from typing import Union + import pandas as pd -from pandas.api.types import is_numeric_dtype -from .formulas import cod, prd +from .metrics import _calculate_prb, cod, prd from .utils import check_inputs -def boot_ci(fun, nboot=100, alpha=0.05, **kwargs): +def boot_ci( + fun, + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], + nboot: int = 1000, + alpha: float = 0.05, +) -> tuple[float, float]: """ Calculate the non-parametric bootstrap confidence interval - for a given numeric input and a chosen function. + for a given set of numeric values and a chosen function. :param fun: - Function to bootstrap. Must return a single value. + Function to bootstrap. Must return a single float value. + :param estimate: + A list or ``pd.Series`` of estimated values. + Must be the same length as ``sale_price``. + :param sale_price: + A list or ``pd.Series`` of sale prices. + Must be the same length as ``estimate``. :param nboot: - Default 100. Number of iterations to use to estimate + Default 1000. Number of iterations to use to estimate the output statistic confidence interval. :param alpha: - Default 0.05. Numeric value indicating the confidence + Default 0.05. Float value indicating the confidence interval to return. 0.05 will return the 95% confidence interval. - :param kwargs: - Arguments passed on to ``fun``. :type fun: function + :type estimate: Array-like numeric values + :type sale_price: Array-like numeric values :type nboot: int :type alpha: float - :type kwargs: numeric - - .. note:: - Input function should require 1 argument or be ``assesspy.prd()``. :return: - A two-long list of floats containing the bootstrapped confidence - interval of the input vector(s). - :rtype: list[float] + A tuple of floats containing the bootstrapped confidence + interval of the input values. + :rtype: tuple[float, float] :Example: @@ -43,69 +51,77 @@ def boot_ci(fun, nboot=100, alpha=0.05, **kwargs): ap.boot_ci( ap.prd, - assessed = ap.ratios_sample().assessed, - sale_price = ap.ratios_sample().sale_price, - nboot = 100 - ) + estimate = ap.ccao_sample().estimate, + sale_price = ap.ccao_sample().sale_price, + nboot = 1000 + ) """ + if nboot <= 0: + raise ValueError("'nboot' must be a positive integer greater than 0.") + check_inputs(estimate, sale_price) + df = pd.DataFrame({"estimate": estimate, "sale_price": sale_price}) + n: int = df.size - # Make sure prd is passed arguments in correct order - if fun.__name__ == "prd" and set(["assessed", "sale_price"]).issubset( - kwargs.keys() - ): - kwargs = (kwargs["assessed"], kwargs["sale_price"]) - elif fun.__name__ == "prd" and not set( - ["assessed", "sale_price"] - ).issubset(kwargs.keys()): - raise Exception( - "PRD function expects argurments 'assessed' and 'sale_price'." - ) - else: - kwargs = tuple(kwargs.values()) + # Take a random sample of input, with the same number of rows as input, + # with replacement + ests = pd.Series(index=range(nboot), dtype=float) + for i in range(nboot): + sample = df.sample(n=n, replace=True) + ests[i] = fun(sample.iloc[:, 0], sample.iloc[:, 1]) - check_inputs(kwargs) # Input checking and error handling + ci = (ests.quantile(alpha / 2), ests.quantile(1 - alpha / 2)) - num_kwargs = len(kwargs) - kwargs = pd.DataFrame(kwargs).T - n = len(kwargs) + return ci - # Check that the input function returns a numeric vector - out = ( - fun(kwargs.iloc[:, 0]) - if num_kwargs < 2 - else fun(kwargs.iloc[:, 0], kwargs.iloc[:, 1]) + +def cod_ci( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], + nboot: int = 1000, + alpha: float = 0.05, +) -> tuple[float, float]: + """ + Calculate the non-parametric bootstrap confidence interval for COD. + + See also: + :func:`boot_ci` + """ + return boot_ci( + cod, estimate=estimate, sale_price=sale_price, nboot=nboot, alpha=alpha ) - if not is_numeric_dtype(out): - raise Exception("Input function outputs non-numeric datatype.") - ests = [] - # Take a random sample of input, with the same number of rows as input, - # with replacement. - for i in list(range(1, nboot)): - sample = kwargs.sample(n=n, replace=True) - if fun.__name__ == "cod" or num_kwargs == 1: - ests.append(fun(sample.iloc[:, 0])) - elif fun.__name__ == "prd": - ests.append(fun(sample.iloc[:, 0], sample.iloc[:, 1])) - else: - raise Exception( - "Input function should require 1 argument or be assesspy.prd." - ) - - ests = pd.Series(ests) - - ci = [ests.quantile(alpha / 2), ests.quantile(1 - alpha / 2)] +def prd_ci( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], + nboot: int = 1000, + alpha: float = 0.05, +) -> tuple[float, float]: + """ + Calculate the non-parametric bootstrap confidence interval for PRD. - return ci + See also: + :func:`boot_ci` + """ + return boot_ci( + prd, estimate=estimate, sale_price=sale_price, nboot=nboot, alpha=alpha + ) -# Formula specific bootstrapping functions -def cod_ci(ratio, nboot=100, alpha=0.05): - return boot_ci(cod, ratio=ratio, nboot=nboot, alpha=alpha) +def prb_ci( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], + nboot: int = 1000, + alpha: float = 0.05, +) -> tuple[float, float]: + """ + Calculate the closed-form confidence interval for PRB. Unlike COD and PRB, + this does not use bootstrapping. + See also: + :func:`boot_ci` + """ + prb_model = _calculate_prb(estimate, sale_price) + prb_ci = prb_model.conf_int(alpha=alpha)[0].tolist() -def prd_ci(assessed, sale_price, nboot=100, alpha=0.05): - return boot_ci( - prd, assessed=assessed, sale_price=sale_price, nboot=nboot, alpha=alpha - ) + return prb_ci[0], prb_ci[1] diff --git a/assesspy/data/ccao_sample.parquet b/assesspy/data/ccao_sample.parquet new file mode 100644 index 0000000000000000000000000000000000000000..4152fe6eac2df14a52d3736650d6f9b075649524 GIT binary patch literal 22430 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 W4jO>J5$gO;umFD}mW}^s-v0xQT!`}k literal 0 HcmV?d00001 diff --git a/assesspy/data/mki_ki.csv b/assesspy/data/mki_ki.csv deleted file mode 100644 index b09de43..0000000 --- a/assesspy/data/mki_ki.csv +++ /dev/null @@ -1,30 +0,0 @@ -"32900","37299" -"36000","40166" -"54000","56317" -"64500","66184" -"68000","69487" -"70000","71515" -"74000","75338" -"80000","81036" -"84900","85673" -"89000","85021" -"94250","90046" -"99000","94089" -"105900","100227" -"109000","103157" -"115000","108290" -"124500","117099" -"129900","115347" -"135000","119678" -"149000","131631" -"155800","137321" -"163500","143974" -"175000","153572" -"179000","148457" -"185600","153488" -"199900","165040" -"215000","176940" -"235000","192959" -"250000","180046" -"279000","200240" -"295000","211445" diff --git a/assesspy/data/quintos_sample.csv b/assesspy/data/quintos_sample.csv new file mode 100644 index 0000000..6c370c4 --- /dev/null +++ b/assesspy/data/quintos_sample.csv @@ -0,0 +1,31 @@ +estimate,sale_price +37299,32900 +40166,36000 +56317,54000 +66184,64500 +69487,68000 +71515,70000 +75338,74000 +81036,80000 +85673,84900 +85021,89000 +90046,94250 +94089,99000 +100227,105900 +103157,109000 +108290,115000 +117099,124500 +115347,129900 +119678,135000 +131631,149000 +137321,155800 +143974,163500 +153572,175000 +148457,179000 +153488,185600 +165040,199900 +176940,215000 +192959,235000 +180046,250000 +200240,279000 +211445,295000 diff --git a/assesspy/data/ratios_sample.parquet b/assesspy/data/ratios_sample.parquet deleted file mode 100644 index 9defc519c91232b8b31b88e5db90c0063e21b459..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31633 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 GasLlzf_1b2 diff --git a/assesspy/formulas.py b/assesspy/formulas.py deleted file mode 100644 index 3989499..0000000 --- a/assesspy/formulas.py +++ /dev/null @@ -1,299 +0,0 @@ -# Import necessary libraries -import numpy as np -import pandas as pd -import statsmodels.api as sm - -from .utils import check_inputs - - -# COD, PRD, PRB, KI, MKI functions -def cod(ratio): - """ - COD is the average absolute percent deviation from the - median ratio. It is a measure of horizontal equity in assessment. - Horizontal equity means properties with a similar fair market value - should be similarly assessed. - - Lower COD indicates higher uniformity/horizontal equity in assessment. - The IAAO sets uniformity standards that define generally accepted ranges - for COD depending on property class. See `IAAO Standard on Ratio Studies`_ - Section 9.1, Table 1.3 for a full list of standard COD ranges. - - .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf - - .. note:: - The IAAO recommends trimming outlier ratios before calculating COD, - as it is extremely sensitive to large outliers. The typical method used is - dropping values beyond 3 * IQR (inner-quartile range). See - `IAAO Standard on Ratio Studies`_ Appendix B.1. - - :param ratio: - A numeric vector of ratios centered around 1, where the - numerator of the ratio is the estimated fair market value and the - denominator is the actual sale price. - :type ratio: numeric - - :return: A numeric vector containing the COD of ``ratios``. - :rtype: float - - :Example: - - .. code-block:: python - - # Calculate COD: - import assesspy as ap - - ap.cod(ap.ratios_sample().ratio) - """ - check_inputs(ratio) - - ratio = np.array(ratio) - - n = ratio.size - median_ratio = np.median(ratio) - cod = 100 / median_ratio * (sum(abs(ratio - median_ratio)) / n) - - return cod - - -def prd(assessed, sale_price): - """ - PRD is the mean ratio divided by the mean ratio weighted by sale - price. It is a measure of vertical equity in assessment. Vertical equity - means that properties at different levels of the income distribution - should be similarly assessed. - - PRD centers slightly above 1 and has a generally accepted value of between - 0.98 and 1.03, as defined in the `IAAO Standard on Ratio Studies`_ - Section 9.2.7. Higher PRD values indicate regressivity in assessment. - - .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf - - .. note:: - The IAAO recommends trimming outlier ratios before calculating PRD, - as it is extremely sensitive to large outliers. PRD is being deprecated in - favor of PRB, which is less sensitive to outliers and easier to interpret. - - :param assessed: - A numeric vector of assessed values. Must be the same length as ``sale_price``. - :param sale_price: - A numeric vector of sale prices. Must be the same length - as ``assessed``. - :type assessed: numeric - :type sale_price: numeric - - :return: A numeric vector containing the PRD of the input vectors. - :rtype: float - - :Example: - - .. code-block:: python - - # Calculate PRD: - import assesspy as ap - - ap.prd(ap.ratios_sample().assessed, ap.ratios_sample().sale_price) - """ - - assessed = np.array(assessed) - sale_price = np.array(sale_price) - check_inputs(assessed, sale_price) - - ratio = assessed / sale_price - prd = ratio.mean() / np.average(a=ratio, weights=sale_price) - - return prd - - -def prb(assessed, sale_price, round=None): - r""" - PRB is an index of vertical equity that quantifies the - relationship betweem ratios and assessed values as a percentage. In - concrete terms, a PRB of 0.02 indicates that, on average, ratios increase - by 2\% whenever assessed values increase by 100 percent. - - PRB is centered around 0 and has a generally accepted value of between - -0.05 and 0.05, as defined in the `IAAO Standard on Ratio Studies`_ - Section 9.2.7. Higher PRB values indicate progressivity in assessment, - while negative values indicate regressivity. - - .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf - - .. note: PRB is significantly less sensitive to outliers than PRD or COD. - - :param assessed: - A numeric vector of assessed values. Must be the same - length as ``sale_price``. - :param sale_price: - A numeric vector of sale prices. Must be the same length - as ``assessed``. - :param round: - Indicate desired rounding for output. - :type assessed: numeric - :type sale_price: numeric - :type round: int - - :return: A numeric vector containing the PRB of the input vectors. - :rtype: float - - :Example: - - .. code-block:: python - - # Calculate PRB: - import assesspy as ap - - ap.prb(ap.ratios_sample().assessed, ap.ratios_sample().sale_price) - """ - - assessed = np.array(assessed) - sale_price = np.array(sale_price) - check_inputs(assessed, sale_price) - - ratio = assessed / sale_price - median_ratio = np.median(ratio) - - lhs = (ratio - median_ratio) / median_ratio - rhs = np.log(((assessed / median_ratio) + sale_price) / 2) / np.log(2) - - lhs = np.array(lhs) - rhs = np.array(rhs) - - prb_model = sm.OLS(lhs, rhs).fit() - - prb_val = float(prb_model.params) - prb_ci = prb_model.conf_int(alpha=0.05)[0].tolist() - - if round is not None: - out = { - "prb": np.round(prb_val, round), - "95% ci": np.round(prb_ci, round), - } - - else: - out = {"prb": prb_val, "95% ci": prb_ci} - - return out - - -# Calculate the Gini cofficients needed for KI and MKI -def calculate_gini(assessed, sale_price): - df = pd.DataFrame({"av": assessed, "sp": sale_price}) - df = df.sort_values(by="sp", kind="mergesort") # for stable sort results - assessed_price = df["av"].values - sale_price = df["sp"].values - n = len(assessed_price) - - sale_sum = np.sum(sale_price * np.arange(1, n + 1)) - g_sale = 2 * sale_sum / np.sum(sale_price) - (n + 1) - gini_sale = g_sale / n - - assessed_sum = np.sum(assessed_price * np.arange(1, n + 1)) - g_assessed = 2 * assessed_sum / np.sum(assessed_price) - (n + 1) - gini_assessed = g_assessed / n - - return float(gini_assessed), float(gini_sale) - - -def mki(assessed, sale_price): - r""" - The Modified Kakwani Index (mki) is a GINI-based measures - to test for vertical equity. It first orders properties by sale price - (ascending), then calculates the Gini coefficient for sale values - and assessed values (while remaining ordered by sale price). The - Modified Kakwani Index is the the ratio of Gini of Assessed / Gini of Sale. - - For the Modified Kakwani Index: - - MKI < 1 is regressive - MKI = 1 is vertical equity - MKI > 1 is progressive - - .. Quintos, C. (2020). A Gini measure for vertical equity in property - assessments. https://researchexchange.iaao.org/jptaa/vol17/iss2/2 - - .. Quintos, C. (2021). A Gini decomposition of the sources of inequality in - property assessments. https://researchexchange.iaao.org/jptaa/vol18/iss2/6 - - :param assessed: - A numeric vector of assessed values. Must be the same - length as ``sale_price``. - :param sale_price: - A numeric vector of sale prices. Must be the same length - as ``assessed``. - :type assessed: numeric - :type sale_price: numeric - :return: A numeric vector MKI of the input vectors. - :rtype: float - - :Example: - - .. code-block:: python - - # Calculate MKI: - import assesspy as ap - - mki(ap.ratios_sample().assessed, ap.ratios_sample().sale_price) - """ - - check_inputs(assessed, sale_price) - gini_assessed, gini_sale = calculate_gini(assessed, sale_price) - MKI = gini_assessed / gini_sale - return float(MKI) - - -def ki(assessed, sale_price): - r""" - The Kakwani Index (ki) is a GINI-based measure to test for vertical equity. - It first orders properties by sale price (ascending), then calculates the Gini - coefficient for sale values and assessed values (while remaining ordered by sale price). - The Kakwani Index is the difference between Gini of Assessed - Gini of Sale. - - For the Kakwani Index: - - KI < 0 is regressive - KI = 0 is vertical equity - KI > 0 is progressive - - :param assessed: - A numeric vector of assessed values. Must be the same - length as ``sale_price``. - :param sale_price: - A numeric vector of sale prices. Must be the same length - as ``assessed``. - :type assessed: numeric - :type sale_price: numeric - :return: A numeric vector KI of the input vectors. - :rtype: float - - :Example: - - .. code-block:: python - - # Calculate KI: - import assesspy as ap - - ki(ap.ratios_sample().assessed, ap.ratios_sample().sale_price) - """ - - check_inputs(assessed, sale_price) - gini_assessed, gini_sale = calculate_gini(assessed, sale_price) - KI = gini_assessed - gini_sale - return float(KI) - - -# Functions to determine whether IAAO/Quintos fairness criteria has been met -def cod_met(x): - return 5 <= x <= 15 - - -def prd_met(x): - return 0.98 <= x <= 1.03 - - -def prb_met(x): - return -0.05 <= x <= 0.05 - - -def mki_met(x): - return 0.95 <= x <= 1.05 diff --git a/assesspy/load_data.py b/assesspy/load_data.py index 24e00af..dcca6c7 100644 --- a/assesspy/load_data.py +++ b/assesspy/load_data.py @@ -1,29 +1,52 @@ -# Import necessary libraries +from importlib.resources import as_file, files + import pandas as pd -import pkg_resources -# Load pre-made ratios sample data. -def ratios_sample(): +def ccao_sample() -> pd.DataFrame: """ - This sample was take from Evanston and New Trier in 2019. Ratios are - calculated using assessor certified (post-appeal) fair market values. + Sample of sales and estimated market values taken from Evanston and New + Trier in 2019. Estimates are Assessor certified (post-appeal) fair market + values. :return: - A data frame with 979 observation and 4 variables: + A Pandas DataFrame with 979 observation and 3 variables: - ======================== ======================================================= - **assessed** (`float`) The fair market assessed value predicted by CCAO - assessment models, including any successful appeals - **sale_price** (`float`) The recorded sale price of this property - **ratio** (`float`) Sales ratio representing fair market value / sale price - **town** (`object`) Township name the property is in - ======================== ======================================================= + ============================== ============================================ + **estimate** (`float`) Fair market value predicted by CCAO + assessment models, after any successful appeals + **sale_price** (`float`) Recorded sale price of this property + **township_name** (`object`) Name of the township containing the property + ============================== ============================================ - :rtype: DataFrame + :rtype: pd.DataFrame """ + source = files("assesspy").joinpath("data/ccao_sample.parquet") + with as_file(source) as file: + return pd.read_parquet(file) + + +def quintos_sample() -> pd.DataFrame: + """ + Sample of sales and estimated market values provided by Quintos in the + following MKI papers: + + .. Quintos, C. (2020). A Gini measure for vertical equity in property + assessments. https://researchexchange.iaao.org/jptaa/vol17/iss2/2 - stream = pkg_resources.resource_stream( - __name__, "data/ratios_sample.parquet" - ) - return pd.read_parquet(stream) + .. Quintos, C. (2021). A Gini decomposition of the sources of inequality in + property assessments. https://researchexchange.iaao.org/jptaa/vol18/iss2/6 + + :return: + A Pandas DataFrame with 30 observation and 2 variables: + + ======================== ===================================================== + **estimate** (`float`) Assessed fair market value + **sale_price** (`float`) Recorded sale price of this property + ======================== ===================================================== + + :rtype: pd.DataFrame + """ + source = files("assesspy").joinpath("data/quintos_sample.csv") + with as_file(source) as file: + return pd.read_csv(file) diff --git a/assesspy/metrics.py b/assesspy/metrics.py new file mode 100644 index 0000000..b259bc3 --- /dev/null +++ b/assesspy/metrics.py @@ -0,0 +1,382 @@ +import math +from typing import Union + +import pandas as pd +import statsmodels.api as sm + +from .utils import check_inputs + + +def cod( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> float: + """ + COD is the average absolute percent deviation from the median ratio. + It is a measure of horizontal equity in assessment. Horizontal equity means + properties with a similar fair market value should be similarly assessed. + + Lower COD indicates higher uniformity/horizontal equity in assessment. + The IAAO sets uniformity standards that define generally accepted ranges + for COD depending on property class. See `IAAO Standard on Ratio Studies`_ + Section 9.1, Table 1.3 for a full list of standard COD ranges. + + .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf + + .. note:: + The IAAO recommends trimming outlier ratios before calculating COD, + as it is extremely sensitive to large outliers. The typical method used is + dropping values beyond 3 * IQR (inner-quartile range). See + `IAAO Standard on Ratio Studies`_ Appendix B.1. + + :param estimate: + A list or ``pd.Series`` of estimated values. + Must be the same length as ``sale_price``. + :param sale_price: + A list or ``pd.Series`` of sale prices. + Must be the same length as ``estimate``. + :type estimate: Array-like numeric values + :type sale_price: Array-like numeric values + + :return: A single float value containing the COD of the inputs. + :rtype: float + + :Example: + + .. code-block:: python + + # Calculate COD: + import assesspy as ap + + ap.cod(ap.ccao_sample().estimate, ap.ccao_sample().sale_price) + """ + check_inputs(estimate, sale_price) + estimate = pd.Series(estimate, dtype=float) + sale_price = pd.Series(sale_price, dtype=float) + ratio: pd.Series = estimate / sale_price + + n: int = ratio.size + median_ratio: float = ratio.median() + ratio_minus_med: pd.Series = ratio - median_ratio + abs_diff_sum: float = ratio_minus_med.abs().sum() + cod = float(100 / median_ratio * (abs_diff_sum / n)) + + return cod + + +def prd( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> float: + """ + PRD is the mean ratio divided by the mean ratio weighted by sale + price. It is a measure of vertical equity in assessment. Vertical equity + means that properties at different levels of the income distribution + should be similarly assessed. + + PRD centers slightly above 1 and has a generally accepted value of between + 0.98 and 1.03, as defined in the `IAAO Standard on Ratio Studies`_ + Section 9.2.7. Higher PRD values indicate regressivity in assessment. + + .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf + + .. note:: + The IAAO recommends trimming outlier ratios before calculating PRD, + as it is extremely sensitive to large outliers. PRD is being deprecated in + favor of PRB and MKI, which are less sensitive to outliers and easier + to interpret. + + :param estimate: + A list or ``pd.Series`` of estimated values. + Must be the same length as ``sale_price``. + :param sale_price: + A list or ``pd.Series`` of sale prices. + Must be the same length as ``estimate``. + :type estimate: Array-like numeric values + :type sale_price: Array-like numeric values + + :return: A single float value containing the PRD of the inputs. + :rtype: float + + :Example: + + .. code-block:: python + + # Calculate PRD: + import assesspy as ap + + ap.prd(ap.ccao_sample().estimate, ap.ccao_sample().sale_price) + """ + check_inputs(estimate, sale_price) + estimate = pd.Series(estimate, dtype=float) + sale_price = pd.Series(sale_price, dtype=float) + ratio: pd.Series = estimate / sale_price + + prd = float(ratio.mean() / (ratio * sale_price / sale_price.sum()).sum()) + + return prd + + +def _calculate_prb( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> sm.regression.linear_model.RegressionResultsWrapper: + check_inputs(estimate, sale_price) + estimate = pd.Series(estimate, dtype=float) + sale_price = pd.Series(sale_price, dtype=float) + ratio: pd.Series = estimate / sale_price + median_ratio: float = ratio.median() + + lhs: pd.Series = (ratio - median_ratio) / median_ratio + rhs: pd.Series = ((estimate / median_ratio) + sale_price).apply( + lambda x: math.log2(x / 2) + ) + + prb_model = sm.OLS(lhs.to_numpy(), rhs.to_numpy()).fit() + + return prb_model + + +def prb( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> float: + r""" + PRB is an index of vertical equity that quantifies the + relationship between ratios and estimated values as a percentage. In + concrete terms, a PRB of 0.02 indicates that, on average, ratios increase + by 2\% whenever the estimated values increase by 100 percent. + + PRB is centered around 0 and has a generally accepted value of between + -0.05 and 0.05, as defined in the `IAAO Standard on Ratio Studies`_ + Section 9.2.7. Higher PRB values indicate progressivity in assessment, + while negative values indicate regressivity. + + .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf + + .. note: PRB is significantly less sensitive to outliers than PRD or COD. + + :param estimate: + A list or ``pd.Series`` of estimated values. + Must be the same length as ``sale_price``. + :param sale_price: + A list or ``pd.Series`` of sale prices. + Must be the same length as ``estimate``. + :type estimate: Array-like numeric values + :type sale_price: Array-like numeric values + + :return: A single float value containing the PRB of the inputs. + :rtype: float + + :Example: + + .. code-block:: python + + # Calculate PRB: + import assesspy as ap + + ap.prb(ap.ccao_sample().estimate, ap.ccao_sample().sale_price) + """ + prb_model = _calculate_prb(estimate, sale_price) + prb = float(prb_model.params[0]) + + return prb + + +def _calculate_gini( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> tuple[float, float]: + """ + Helper function to calculate the Gini coefficients of sales and estimated + values. Note that the estimated value Gini is based on the sale price order. + """ + check_inputs(estimate, sale_price) + + estimate = ( + pd.Series(estimate, dtype=float) + .rename("estimate") + .reset_index(drop=True) + ) + sale_price = ( + pd.Series(sale_price, dtype=float) + .rename("sale_price") + .reset_index(drop=True) + ) + df = pd.concat([estimate, sale_price], axis=1) + # Mergesort is required for stable sort results + df.sort_values(by="sale_price", kind="mergesort", inplace=True) + df.reset_index(drop=True, inplace=True) + a_sorted, sp_sorted = df["estimate"], df["sale_price"] + n: int = a_sorted.size + + assessed_sum: float = sum(a_sorted[i] * (i + 1) for i in range(n)) + g_assessed: float = 2 * assessed_sum / a_sorted.sum() - (n + 1) + gini_assessed: float = g_assessed / float(n) + + sale_price_sum: float = sum(sp_sorted[i] * (i + 1) for i in range(n)) + g_sale_price: float = 2 * sale_price_sum / sp_sorted.sum() - (n + 1) + gini_sale_price: float = g_sale_price / float(n) + + return gini_assessed, gini_sale_price + + +def mki( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> float: + r""" + The Modified Kakwani Index (MKI) is a Gini-based measure to test for + vertical equity in assessment. It first orders properties by sale price + (ascending), then calculates the Gini coefficient for sale values + and estimated values (while remaining ordered by sale price). The + Modified Kakwani Index is the ratio between the coefficients: + $Gini of Estimated Values / Gini of Sale Prices$. + + For the Modified Kakwani Index: + + MKI < 1 is regressive + MKI = 1 is vertical equity + MKI > 1 is progressive + + .. Quintos, C. (2020). A Gini measure for vertical equity in property + assessments. https://researchexchange.iaao.org/jptaa/vol17/iss2/2 + + .. Quintos, C. (2021). A Gini decomposition of the sources of inequality in + property assessments. https://researchexchange.iaao.org/jptaa/vol18/iss2/6 + + :param estimate: + A list or ``pd.Series`` of estimated values. + Must be the same length as ``sale_price``. + :param sale_price: + A list or ``pd.Series`` of sale prices. + Must be the same length as ``estimate``. + :type estimate: Array-like numeric values + :type sale_price: Array-like numeric values + + :return: A single float value containing the MKI of the inputs. + :rtype: float + + :Example: + + .. code-block:: python + + # Calculate MKI: + import assesspy as ap + + ap.mki(ap.ccao_sample().estimate, ap.ccao_sample().sale_price) + """ + check_inputs(estimate, sale_price) + estimate = pd.Series(estimate, dtype=float) + sale_price = pd.Series(sale_price, dtype=float) + + gini_assessed, gini_sale_price = _calculate_gini(estimate, sale_price) + mki = float(gini_assessed / gini_sale_price) + + return mki + + +def ki( + estimate: Union[list[int], list[float], pd.Series], + sale_price: Union[list[int], list[float], pd.Series], +) -> float: + r""" + The Kakwani Index (KI) is a Gini-based measure to test for + vertical equity in assessment. It first orders properties by sale price + (ascending), then calculates the Gini coefficient for sale values and + estimated values (while remaining ordered by sale price). The Kakwani Index + is the difference between the coefficients: + $Gini of Estimated Values - Gini of Sale Prices$. + + For the Kakwani Index: + + KI < 0 is regressive + KI = 0 is vertical equity + KI > 0 is progressive + + :param estimate: + A list or ``pd.Series`` of estimated values. + Must be the same length as ``sale_price``. + :param sale_price: + A list or ``pd.Series`` of sale prices. + Must be the same length as ``estimate``. + :type estimate: Array-like numeric values + :type sale_price: Array-like numeric values + + :return: A single float value containing the PRB of the inputs. + :rtype: float + + :Example: + + .. code-block:: python + + # Calculate KI: + import assesspy as ap + + ap.ki(ap.ccao_sample().estimate, ap.ccao_sample().sale_price) + """ + + check_inputs(estimate, sale_price) + estimate = pd.Series(estimate, dtype=float) + sale_price = pd.Series(sale_price, dtype=float) + + gini_assessed, gini_sale_price = _calculate_gini(estimate, sale_price) + ki = float(gini_assessed - gini_sale_price) + + return ki + + +# Functions to determine whether IAAO/Quintos fairness criteria is met +def cod_met(x: float) -> bool: + """ + Check whether COD meets IAAO standards (between 5 and 15, inclusive). + + :param x: A single float value containing the COD. + :type x: float + + :return: A boolean value indicating whether the COD meets IAAO standards. + :rtype: bool + """ + return 5 < x <= 15 + + +def prd_met(x: float) -> bool: + """ + Check whether PRD meets IAAO standards (between 0.98 and 1.03, inclusive). + + :param x: A single float value containing the PRD. + :type x: float + + :return: A boolean value indicating whether the PRD meets IAAO standards. + :rtype: bool + """ + return 0.98 < x <= 1.03 + + +def prb_met(x: float) -> bool: + """ + Check whether PRB meets IAAO standards (between -0.05 and 0.05, inclusive). + + :param x: A single float value containing the PRB. + :type x: float + + :return: A boolean value indicating whether the PRB meets IAAO standards. + :rtype: bool + """ + return -0.05 < x <= 0.05 + + +def mki_met(x: float) -> bool: + """ + Check whether MKI meets the recommendations outlined by Quintos + (between 0.95 and 1.05, inclusive). + + :param x: A single float value containing the MKI. + :type x: float + + :return: + A boolean value indicating whether the MKI meets + Quintos' recommendations. + :rtype: bool + """ + return 0.95 < x <= 1.05 diff --git a/assesspy/outliers.py b/assesspy/outliers.py index e532f83..a4ac3f7 100644 --- a/assesspy/outliers.py +++ b/assesspy/outliers.py @@ -1,90 +1,84 @@ -# Import necessary libraries -import numbers import warnings +from typing import Union -import numpy as np -from scipy import stats +import pandas as pd from .utils import check_inputs -# Outlier functions -def quantile_outlier(x, probs=[0.05, 0.95]): +def _quantile_outlier( + x: Union[list[int], list[float], pd.Series], + probs: tuple[float, float] = (0.05, 0.95), +) -> pd.Series: """ - Quantile method for identifying outliers. - + Quantile method for identifying outliers. This simply identifies data + within the percentiles specified in the ``probs`` parameter. """ + check_inputs(x, check_gt_zero=False) + x = pd.Series(x) - check_inputs(x) - - # Determine valid range of the data - range = [np.quantile(a=x, q=probs[0]), np.quantile(a=x, q=probs[1])] - - # Determine which input values are in range - out = (x < range[0]) | (x > range[1]) + # Determine which input values are in the valid quantile range + valid_range = [x.quantile(q=probs[0]), x.quantile(q=probs[1])] + out = (x < valid_range[0]) | (x > valid_range[1]) return out -def iqr_outlier(x, mult=3): +def _iqr_outlier( + x: Union[list[int], list[float], pd.Series], mult: float = 3.0 +) -> pd.Series: """ - IQR method for identifying outliers. - + IQR method for identifying outliers as specified in Appendix B.1 + of the IAAO Standard on Ratio Studies. """ + check_inputs(x, check_gt_zero=False) + x = pd.Series(x) - check_inputs(x) + quartiles = [x.quantile(q=0.25), x.quantile(q=0.75)] + iqr_mult = mult * (quartiles[1] - quartiles[0]) + out = (x < (quartiles[0] - iqr_mult)) | (x > (quartiles[1] + iqr_mult)) - # Check that inputs are well-formed numeric vector - if isinstance(mult, numbers.Number) & mult > 0: - # Calculate quartiles and mult*IQR - quartiles = [np.quantile(a=x, q=0.25), np.quantile(a=x, q=0.75)] - - iqr_mult = mult * stats.iqr(x) - - # Find values that are outliers - out = (x < (quartiles[0] - iqr_mult)) | (x > (quartiles[1] + iqr_mult)) - - # Warn if IQR trimmed values are within 95% CI. This indicates - # potentially non-normal/narrow distribution of data - if any(out & (quantile_outlier(x) == False)): # noqa - warnings.warn( - """Some values flagged as outliers despite being within 95% CI. - Check for narrow or skewed distribution.""" - ) - - return out + return out -def is_outlier(x, method="iqr", probs=[0.05, 0.95]): +def is_outlier( + x: Union[list[int], list[float], pd.Series], + method: str = "iqr", + probs: tuple[float, float] = (0.05, 0.95), + mult: float = 3.0, +) -> pd.Series: """ - Detect outliers in a numeric vector using standard methods. + Detect outliers in numeric values using standard methods. Certain assessment performance statistics are sensitive to extreme outliers. As such, it is often necessary to remove outliers before performing a sales ratio study. - Standard method is to remove outliers that are 3 * IQR. Warnings are thrown - when sample size is extremely small or when the IQR is extremely narrow. See - IAAO Standard on Ratio Studies Appendix B. Outlier Trimming Guidelines for - more information. + The IAAO standard method is to remove outliers that are 3 * IQR. Warnings + are thrown when sample size is extremely small or when the IQR is extremely + narrow. See IAAO Standard on Ratio Studies Appendix B. Outlier Trimming + Guidelines for more information. :param x: - A numeric vector. Must be longer than 2 and not contain - ``Inf`` or ``NaN``. + A list or ``pd.Series`` of numeric values, typically sales ratios. + Must be longer than 2 and cannot contain ``Inf`` or ``NaN`` values. :param method: - Default "iqr". String indicating outlier detection method. + Default ``iqr``. String indicating outlier detection method. Options are ``iqr`` or ``quantile``. :param probs: - Upper and lower percentiles denoting outlier boundaries. - :type x: numeric + Upper and lower percentiles boundaries for the ``quantile`` method. + :param mult: + Default ``3``. Multiple of IQR to use as the outlier detection + threshold. + :type x: Array-like numeric values :type method: str - :type probs: list[numeric] + :type probs: tuple[float] + :type mult: float :return: - A logical vector this same length as ``x`` indicating whether or + A boolean ``pd.Series`` the same length as ``x`` indicating whether or not each value of ``x`` is an outlier. - - :rtype: list[bool] + :rtype: pd.Series :Example: @@ -93,19 +87,27 @@ def is_outlier(x, method="iqr", probs=[0.05, 0.95]): # Detect outliers: import assesspy as ap - ap.is_outlier(ap.ratios_sample().ratio) + ap.is_outlier(ap.ccao_sample().estimate) """ - - out = {"iqr": iqr_outlier(x), "quantile": quantile_outlier(x, probs)}.get( - method - ) + if method == "iqr": + out = _iqr_outlier(x, mult) + iqr_quant = out & ~_quantile_outlier(x) + if any(iqr_quant): + warnings.warn( + f"{iqr_quant.sum()} values flagged as outliers despite being " + "within 95% CI. Check for narrow or skewed distribution." + ) + elif method == "quantile": + out = _quantile_outlier(x, probs) + else: + raise ValueError("Method must be either 'iqr' or 'quantile'") # Warn about removing data from small samples, as it can severely distort # ratio study outcomes - if any(out) & (len(out) < 30): + if any(out) & (out.size < 30): warnings.warn( - """Values flagged as outliers despite small sample size (N < 30). - Use caution when removing values from a small sample.""" + f"{out.sum()} flagged as outliers despite small sample size " + "(N < 30). Use caution when removing values from a small sample." ) return out diff --git a/assesspy/sales_chasing.py b/assesspy/sales_chasing.py index 4b8c3a9..ad1dedd 100644 --- a/assesspy/sales_chasing.py +++ b/assesspy/sales_chasing.py @@ -1,50 +1,52 @@ -# Import necessary libraries import warnings +from typing import Union import numpy as np +import pandas as pd from statsmodels.distributions.empirical_distribution import ECDF from .utils import check_inputs -# Sales chasing functions -def detect_chasing_cdf(ratio, bounds=[0.98, 1.02], cdf_gap=0.03): - # CDF gap method for detecting sales chasing. - - # Input checking and error handling - check_inputs(ratio) - - # Sort the ratios - sorted_ratio = np.sort(np.array(ratio)) +def _cdf_sales_chased( + x: Union[list[int], list[float], pd.Series], + bounds: tuple[float, float] = (0.98, 1.02), + gap: float = 0.05, +) -> bool: + check_inputs(x, check_gt_zero=False) + ratio = pd.Series(x) + sorted_ratio = ratio.sort_values() # Calculate the CDF of the sorted ratios and extract percentile ranking - cdf = ECDF(sorted_ratio)(sorted_ratio) + cdf = pd.Series(ECDF(sorted_ratio)(sorted_ratio)) # Calculate the difference between each value and the next value, the # largest difference will be the CDF gap - diffs = np.diff(cdf) + diffs = cdf.diff().dropna() # Check if the largest difference is greater than the threshold and make # sure it's within the specified boundaries - diff_loc = sorted_ratio[np.argmax(diffs)] - out = (max(diffs) > cdf_gap) & ( + diff_loc = sorted_ratio.iloc[int(diffs.idxmax())] + out = (diffs.max() > gap) & ( (diff_loc > bounds[0]) & (diff_loc < bounds[1]) ) - return out - + return bool(out) -def detect_chasing_dist(ratio, bounds=[0.98, 1.02]): - # Distribution comparison method for detecting sales chasing. - # Input checking and error handling - check_inputs(ratio) - - ratio = np.array(ratio) +def _dist_sales_chased( + x: Union[list[int], list[float], pd.Series], + bounds: tuple[float, float] = (0.98, 1.02), + gap: float = 0.05, +) -> bool: + check_inputs(x, check_gt_zero=False) + ratio = pd.Series(x) # Return the percentage of x within the specified range - def pct_in_range(x, min, max): - out = np.mean(((x >= min) & (x <= max))) + def pct_in_range( + x: Union[np.ndarray, pd.Series], min: float, max: float + ) -> float: + out = float(np.mean(((x >= min) & (x <= max)))) return out # Calculate the ideal normal distribution using observed values from input @@ -53,22 +55,31 @@ def pct_in_range(x, min, max): # Determine what percentage of the data would be within the specified # bounds in the ideal distribution pct_ideal = pct_in_range(ideal_dist, bounds[0], bounds[1]) - - # Determine what percentage of the data is actually within the bounds pct_actual = pct_in_range(ratio, bounds[0], bounds[1]) - return pct_actual > pct_ideal + return bool(abs(pct_actual - pct_ideal) > gap) -def detect_chasing(ratio, method="both"): +def is_sales_chased( + x: Union[list[int], list[float], pd.Series], + method="both", + bounds: tuple[float, float] = (0.98, 1.02), + gap: float = 0.05, +) -> bool: """ Sales chasing is when a property is selectively reappraised to - shift its assessed value toward its actual sale price. Sales chasing is + shift its assessed value toward its recent sale price. Sales chasing is difficult to detect. This function is NOT a statistical test and does not provide the probability of the given result. Rather, it combines two - novel methods to roughly estimate if sales chasing has occurred. + heuristic methods to roughly estimate if sales chasing has occurred. + + The first method (cdf) detects discontinuities in the cumulative + distribution function (CDF) of the ratios of input values. Sales ratios + that are not sales chased should have a fairly smooth CDF. Discontinuous + jumps in the CDF, particularly around 1, may indicate sales chasing. This + can usually be seen visually as a "flat spot" on the CDF. - The first method (dist) uses the technique outlined in the + The second method (dist) uses the technique outlined in the `IAAO Standard on Ratio Studies`_ Appendix E, Section 4. It compares the percentage of real data within +-2% of the mean ratio to the percentage of data within the same bounds given a constructed normal distribution @@ -76,26 +87,33 @@ def detect_chasing(ratio, method="both"): ratios that are sales chased may be more "bunched up" in the center of the distribution. - The second method (cdf) detects discontinuities in the cumulative - distribution function (CDF) of the input vector. Ratios that are not sales - chased should have a fairly smooth CDF. Discontinuous jumps in the CDF, - particularly around 1, may indicate sales chasing. This can usually be seen - visually as a "flat spot" on the CDF. - .. _IAAO Standard on Ratio Studies: https://www.iaao.org/media/standards/Standard_on_Ratio_Studies.pdf - :param ratio: - A numeric vector of ratios centered around 1, where the - numerator of the ratio is the estimated fair market value and the - denominator is the actual sale price. + :param x: + A list or ``pd.Series`` of numeric values. Must be longer than 2 + and cannot contain ``Inf`` or ``NaN`` values. :param method: - Default "both". String indicating sales chasing detection + Default ``both``. String indicating sales chasing detection method. Options are ``cdf``, ``dist``, or ``both``. - :type ratio: numeric + :param bounds: + Default ``(0.98, 1.02)``. Tuple of two floats indicating the + lower and upper bounds of the range of ratios to consider when + detecting sales chasing. Setting this to a narrow band at the + center of the ratio distribution prevents detecting false positives + at the tails. + :param gap: + Default ``0.05``. Float tuning factor. For the CDF method, it sets the + maximum percentage difference between two adjacent ratios. For the + distribution method, it sets the maximum percentage point difference + between the percentage of the data between the ``bounds`` in the real + distribution compared to the ideal distribution. + :type x: Array-like numeric values :type method: str + :type bounds: tuple[float, float] + :type gap: float :return: - A logical value indicating whether or not the input ratios may + A boolean value indicating whether or not the input values may have been sales chased. :rtype: bool @@ -109,39 +127,44 @@ def detect_chasing(ratio, method="both"): from matplotlib import pyplot # Generate fake data with normal vs chased ratios - normal_ratios = np.random.normal(1, 0.15, 10000) + normal_ratios = np.random.normal(1, 0.15, 10000).tolist() chased_ratios = list(np.random.normal(1, 0.15, 900)) + [1] * 100 # Plot to view discontinuity ecdf = ECDF(normal_ratios) pyplot.plot(ecdf.x, ecdf.y) pyplot.show() - ap.detect_chasing(normal_ratios) + ap.is_sales_chased(normal_ratios) ecdf = ECDF(chased_ratios) pyplot.plot(ecdf.x, ecdf.y) pyplot.show() - ap.detect_chasing(chased_ratios) + ap.is_sales_chased(chased_ratios) """ + if not (0 < gap < 1): + raise ValueError("Gap must be a positive value less than 1.") + if not isinstance(bounds, tuple): + raise TypeError("Bounds must be a tuple of two floats.") + if bounds[0] >= bounds[1]: + raise ValueError( + "Bounds must have the left value lower than the right value." + ) - if method not in ("both", "cdf", "dist"): - raise Exception("Unrecognized method.") + if method == "cdf": + out = _cdf_sales_chased(x, bounds, gap) + elif method == "dist": + out = _dist_sales_chased(x, bounds, gap) + elif method == "both": + out_cdf = _cdf_sales_chased(x, bounds, gap) + out_dist = _dist_sales_chased(x, bounds, gap) + out = bool(out_cdf & out_dist) + else: + raise ValueError("Method must be either 'cdf' or 'dist'") - if len(ratio) < 30: + if len(x) < 30: warnings.warn( - """ - Sales chasing detection can be misleading when applied to small - samples (N < 30). Increase N or use a different statistical test. - """ + "Sales chasing detection can be misleading when applied to small " + "samples (N < 30). Increase N or use a different test method." ) - out = None - - else: - out = { - "cdf": detect_chasing_cdf(ratio), - "dist": detect_chasing_dist(ratio), - "both": (detect_chasing_cdf(ratio) & detect_chasing_dist(ratio)), - }.get(method) - return out diff --git a/assesspy/tests/conftest.py b/assesspy/tests/conftest.py new file mode 100644 index 0000000..47239c9 --- /dev/null +++ b/assesspy/tests/conftest.py @@ -0,0 +1,83 @@ +import numpy as np +import pandas as pd +import pytest as pt + +import assesspy as ap + + +@pt.fixture(autouse=True, scope="function") +def set_seed() -> None: + np.random.seed(42) + return None + + +@pt.fixture(scope="session") +def ccao_data() -> tuple: + sample = ap.ccao_sample() + return sample.estimate, sample.sale_price + + +@pt.fixture(scope="session") +def quintos_data() -> tuple: + sample = ap.quintos_sample() + return sample.estimate, sample.sale_price + + +@pt.fixture( + scope="session", + params=[ + ([1] * 30, [1] * 29), + ([0, 0, 0], [0, 0, 0]), + ([-1, -2, -3], [-1, -2, -3]), + ([], []), + ([1], [1]), + ( + pd.concat( + [ap.ccao_sample()["estimate"], pd.Series([1.0], dtype="float")] + ), + pd.concat( + [ + ap.ccao_sample()["sale_price"], + pd.Series([float("Inf")], dtype="float"), + ] + ), + ), + ( + pd.concat( + [ap.ccao_sample()["estimate"], pd.Series([1.0], dtype="float")] + ), + pd.concat( + [ + ap.ccao_sample()["sale_price"], + pd.Series([float("NaN")], dtype="float"), + ] + ), + ), + ], +) +def bad_input(request) -> tuple: + return request.param + + +@pt.fixture( + scope="session", + params=[ + ([1e10, 2e10, 3e10], [1e10, 2e10, 3e10]), + ([1, 2.0, 3], [1.0, 2, 3.0]), + (ap.ccao_sample()["estimate"], ap.ccao_sample()["sale_price"]), + ( + ap.ccao_sample()["estimate"].set_axis( + pd.Index( + np.random.permutation(ap.ccao_sample()["estimate"].index) + ) + ), + ap.ccao_sample()["sale_price"].set_axis( + pd.Index( + np.random.permutation(ap.ccao_sample()["sale_price"].index) + ) + ), + ), + ], +) +def good_input(request) -> tuple: + return request.param diff --git a/assesspy/tests/test_ci.py b/assesspy/tests/test_ci.py index b27a062..957c801 100644 --- a/assesspy/tests/test_ci.py +++ b/assesspy/tests/test_ci.py @@ -1,122 +1,54 @@ -# Import necessary libraries -import numpy as np -import pandas as pd import pytest as pt -from numpy import testing as npt -import assesspy - -# Load the ratios sample dataset for testing -ratios_sample = assesspy.ratios_sample() - -ratio = ratios_sample.ratio -assessed = ratios_sample.assessed -sale_price = ratios_sample.sale_price - -##### TEST BOOT CI ##### # noqa - - -class TestBOOTCI: # Ensure input function is appropriate - def test_in_fun(self): - with pt.raises(Exception): - assert assesspy.boot_ci(str, ratio=ratio) - - with pt.raises(Exception): - assesspy.boot_ci(np.add, one=ratio, two=ratio, three=ratio) - - with pt.raises(Exception): - assesspy.boot_ci(assesspy.prd, fmv=assessed, sale_price=sale_price) - - with pt.raises(Exception): - assesspy.boot_ci(np.add, one=ratio, two=ratio) - - -##### TEST COD ##### # noqa - - -# Calculate COD CI -cod_ci_out_95 = assesspy.cod_ci(ratio, nboot=1000) -cod_ci_out_80 = assesspy.cod_ci(ratio, nboot=1000, alpha=0.2) - - -class TestCODCI: - def test_output_type(self): # Output is expected type - assert type(cod_ci_out_95) is list - assert type(cod_ci_out_95[0]) is np.float64 - - def test_cod(self): # Output equal to expected - npt.assert_allclose( - cod_ci_out_80, [16.89576541901062, 18.641992815316588], rtol=0.02 - ) - npt.assert_allclose( - cod_ci_out_95, [16.32413038955943, 19.226428249424757], rtol=0.02 - ) - - def test_bad_input(self): # Bad input data stops execution - with pt.raises(Exception): - assesspy.cod_ci([1] * 29 + [0]) - - with pt.raises(Exception): - assesspy.cod_ci(10) - - with pt.raises(Exception): - assesspy.cod_ci(pd.concat([ratio, pd.Series(float("Inf"))])) - - with pt.raises(Exception): - assesspy.cod_ci(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.cod_ci(pd.concat([ratio, pd.Series(float("NaN"))])) - - with pt.raises(Exception): - assesspy.cod_ci([1] * 29 + ["1"]) - - -##### TEST PRD ##### # noqa - - -# Calculate PRD CI -prd_ci_out_95 = assesspy.prd_ci(assessed, sale_price, nboot=1000) -prd_ci_out_80 = assesspy.prd_ci(assessed, sale_price, nboot=1000, alpha=0.2) - - -class TestPRDCI: - def test_output_type(self): # Output is expected type - assert type(prd_ci_out_95) is list - assert type(prd_ci_out_95[0]) is np.float64 - - def test_prd(self): # Output equal to expected - npt.assert_allclose( - prd_ci_out_80, [1.0388355155405569, 1.0588098520230935], rtol=0.02 - ) - npt.assert_allclose( - prd_ci_out_95, [1.0333716711646226, 1.0643056985556307], rtol=0.02 +import assesspy as ap + + +class TestCI: + @pt.fixture(params=["cod", "prd", "prb"]) + def metric(self, request): + return request.param + + @pt.fixture(params=[0.80, 0.90, 0.95]) + def alpha(self, request): + return request.param + + def test_metric_ci_output_with_alpha(self, metric, alpha, ccao_data): + expected = { + "cod": { + 0.50: (17.3, 18.0), + 0.80: (17.6, 18.0), + 0.90: (17.7, 18.0), + 0.95: (17.7, 17.9), + }, + "prd": { + 0.50: (1.03, 1.06), + 0.80: (1.04, 1.06), + 0.90: (1.04, 1.05), + 0.95: (1.04, 1.05), + }, + "prb": { + 0.50: (0.000823, 0.00107), + 0.80: (0.000823, 0.00107), + 0.90: (0.000885, 0.00100), + 0.95: (0.000916, 0.00097), + }, + } + ci_l, ci_u = getattr(ap, f"{metric}_ci")( + *ccao_data, nboot=200, alpha=alpha ) + assert pt.approx(ci_l, rel=0.01) == expected[metric][alpha][0] + assert pt.approx(ci_u, rel=0.01) == expected[metric][alpha][1] - def test_bad_input(self): # Bad input data stops execution - with pt.raises(Exception): - assesspy.prd_ci([1] * 30, [1] * 29 + [0]) - - with pt.raises(Exception): - assesspy.prd_ci([1, 1, 1], [1, 1]) - - with pt.raises(Exception): - assesspy.prd_ci(10, 10) - + def test_metric_ci_raises_on_bad_input(self, metric, bad_input): with pt.raises(Exception): - assesspy.prd_ci( - pd.concat([assessed, pd.Series(float("Inf"))]), - pd.concat([sale_price, pd.Series(1.0)]), - ) + getattr(ap, f"{metric}_ci")(*bad_input, nboot=200) - with pt.raises(Exception): - assesspy.prd_ci(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.prd_ci( - pd.concat([assessed, pd.Series(float("NaN"))]), - pd.concat([sale_price, pd.Series(1.0)]), - ) + def test_metric_ci_succeeds_on_good_input(self, metric, good_input): + result = getattr(ap, f"{metric}_ci")(*good_input, nboot=200) + assert isinstance(result, tuple) + @pt.mark.parametrize("metric", ["cod", "prd"]) + @pt.mark.parametrize("nboot", [0, -10]) + def test_metric_ci_raises_on_bad_nboot(self, metric, ccao_data, nboot): with pt.raises(Exception): - assesspy.prd_ci([1] * 30, [1] * 29 + ["1"]) + getattr(ap, f"{metric}_ci")(*ccao_data, nboot=nboot) diff --git a/assesspy/tests/test_formulas.py b/assesspy/tests/test_formulas.py deleted file mode 100644 index 7414066..0000000 --- a/assesspy/tests/test_formulas.py +++ /dev/null @@ -1,254 +0,0 @@ -# Import necessary libraries -import numpy as np -import pandas as pd -import pytest as pt -from numpy import testing as npt - -import assesspy - -# Load the ratios sample dataset for testing -ratios_sample = assesspy.ratios_sample() - -ratio = ratios_sample.ratio -fmv = ratios_sample.assessed -sale_price = ratios_sample.sale_price - -##### TEST COD ##### # noqa - -# Calculate COD -cod_out = assesspy.cod(ratios_sample.ratio) - - -class TestCOD: - def test_cod(self): # Output equal to expected - npt.assert_allclose(cod_out, 17.81456901196891, rtol=0.02) - - def test_numeric_output(self): # Output is numeric - assert type(cod_out) is np.float64 - - def test_bad_input(self): # Bad input data stops execution - with pt.raises(Exception): - assesspy.cod([1] * 29 + [0]) - - with pt.raises(Exception): - assesspy.cod(10) - - with pt.raises(Exception): - assesspy.cod(pd.concat([ratio, pd.Series(float("Inf"))])) - - with pt.raises(Exception): - assesspy.cod(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.cod(pd.concat([ratio, pd.Series(float("NaN"))])) - - with pt.raises(Exception): - assesspy.cod([1] * 29 + ["1"]) - - def test_cod_met(self): # Standard met function - assert not assesspy.cod_met(cod_out) - - -##### TEST PRD ##### # noqa - - -# Calculate PRD -prd_out = assesspy.prd(fmv, sale_price) - - -class TestPRD: - def test_prd(self): # Output equal to expected - npt.assert_allclose(prd_out, 1.0484192615223522, rtol=0.02) - - def test_numeric_output(self): # Output is numeric - assert type(prd_out) is np.float64 - - def test_bad_input(self): # Bad input data stops execution - with pt.raises(Exception): - assesspy.prd_ci([1] * 30, [1] * 29 + [0]) - - with pt.raises(Exception): - assesspy.prd_ci([1, 1, 1], [1, 1]) - - with pt.raises(Exception): - assesspy.prd(10, 10) - - with pt.raises(Exception): - assesspy.prd( - pd.concat([fmv, pd.Series(float("Inf"))]), - pd.concat([sale_price, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.prd(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.prd( - pd.concat([fmv, pd.Series(float("NaN"))]), - pd.concat([sale_price, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.prd([1] * 30, [1] * 29 + ["1"]) - - def test_prd_met(self): # Standard met function - assert not assesspy.prd_met(prd_out) - - -##### TEST PRB ##### # noqa - -# Calculate PRB -prb_out = assesspy.prb(fmv, sale_price)["prb"] - - -class TestPRB: - def test_prb(self): # Output equal to expected - npt.assert_allclose(prb_out, 0.0009470721642262901, rtol=0.02) - - def test_numeric_output(self): # Output is numeric - assert type(prb_out) is float - - def test_bad_input(self): # Bad input data stops execution - with pt.raises(Exception): - assesspy.prb_ci([1] * 30, [1] * 29 + [0]) - - with pt.raises(Exception): - assesspy.prb([1, 1, 1], [1, 1]) - - with pt.raises(Exception): - assesspy.prb(10, 10) - - with pt.raises(Exception): - assesspy.prb( - pd.concat([fmv, pd.Series(float("Inf"))]), - pd.concat([sale_price, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.prb(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.prb( - pd.concat([fmv, pd.Series(float("NaN"))]), - pd.concat([sale_price, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.prb([1] * 30, [1] * 29 + ["1"]) - - def test_round(self): # Rounding must be int - with pt.raises(Exception): - assesspy.prb(fmv, sale_price, "z") - - with pt.raises(Exception): - assesspy.prb(fmv, sale_price, 1.1) - - def test_prb_met(self): # Standard met function - assert assesspy.prb_met(prb_out) - - -with open("assesspy/data/mki_ki.csv", "r") as input_csvfile: - # Create a list to store the extracted columns - gini_data_sale = [] - gini_data_assessed = [] - - # Iterate through each line in the input CSV - for line in input_csvfile: - columns = line.strip().split(",") - - first_column = columns[0].split('"')[1] - second_column = columns[1] - - gini_data_sale.append(first_column) - gini_data_assessed.append(second_column) - -gini_data_assessed = [ - int(value.replace('"', "")) for value in gini_data_assessed -] -gini_data_sale = [int(value.replace('"', "")) for value in gini_data_sale] - -mki_out = assesspy.mki(gini_data_assessed, gini_data_sale) - - -class Test_MKI: - def test_mki(self): # Output equal to expected - npt.assert_allclose(mki_out, 0.794, rtol=0.02) - - def test_numeric_output(self): # Output is numeric - assert type(mki_out) is float - - with pt.raises(Exception): - assesspy.mki([1, 1, 1], [1, 1]) - - with pt.raises(Exception): - assesspy.mki(10, 10) - - with pt.raises(Exception): - assesspy.mki( - pd.concat([gini_data_assessed, pd.Series(float("Inf"))]), - pd.concat([gini_data_sale, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.mki(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.mki( - pd.concat([gini_data_assessed, pd.Series(float("NaN"))]), - pd.concat([gini_data_sale, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.mki([1] * 30, [1] * 29 + ["1"]) - - def test_round(self): # Rounding must be int - with pt.raises(Exception): - assesspy.mki(gini_data_assessed, sale_price, "z") - - with pt.raises(Exception): - assesspy.mki(gini_data_assessed, sale_price, 1.1) - - def test_mki_met(self): # Standard met function - assert not assesspy.mki_met(mki_out) - - -ki_out = assesspy.ki(gini_data_assessed, gini_data_sale) - - -class Test_KI: - def test_ki(self): # Output equal to expected - npt.assert_allclose(ki_out, -0.06, rtol=0.02) - - def test_numeric_output(self): # Output is numeric - assert type(ki_out) is float - - with pt.raises(Exception): - assesspy.ki([1, 1, 1], [1, 1]) - - with pt.raises(Exception): - assesspy.ki(10, 10) - - with pt.raises(Exception): - assesspy.ki( - pd.concat([gini_data_assessed, pd.Series(float("Inf"))]), - pd.concat([gini_data_sale, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.ki(pd.DataFrame(ratio)) - - with pt.raises(Exception): - assesspy.ki( - pd.concat([gini_data_assessed, pd.Series(float("NaN"))]), - pd.concat([gini_data_sale, pd.Series(1.0)]), - ) - - with pt.raises(Exception): - assesspy.ki([1] * 30, [1] * 29 + ["1"]) - - def test_round(self): # Rounding must be int - with pt.raises(Exception): - assesspy.ki(gini_data_assessed, gini_data_sale, "z") - - with pt.raises(Exception): - assesspy.ki(gini_data_assessed, gini_data_sale, 1.1) diff --git a/assesspy/tests/test_metrics.py b/assesspy/tests/test_metrics.py new file mode 100644 index 0000000..946b237 --- /dev/null +++ b/assesspy/tests/test_metrics.py @@ -0,0 +1,48 @@ +import pytest as pt + +import assesspy as ap + + +class TestMetrics: + @pt.fixture(params=["cod", "prd", "prb", "mki", "ki"]) + def metric(self, request): + return request.param + + @pt.fixture + def metric_val(self, metric, ccao_data, quintos_data): + if metric in ["mki", "ki"]: + return getattr(ap, metric)(*quintos_data) + return getattr(ap, metric)(*ccao_data) + + def test_metric_value_is_correct(self, metric, metric_val): + expected = { + "cod": 17.81456901196891, + "prd": 1.0484192615223522, + "prb": 0.0009470721642262903, + "mki": 0.794, + "ki": -0.06, + } + assert pt.approx(metric_val, rel=0.02) == expected[metric] + + def test_metric_has_numeric_output(self, metric_val): + assert type(metric_val) is float + + def test_metric_raises_on_bad_input(self, metric, bad_input): + with pt.raises(Exception): + getattr(ap, metric)(*bad_input) + + def test_metric_succeeds_on_good_input(self, metric, good_input): + result = getattr(ap, metric)(*good_input) + assert type(result) is float + assert result != float("NaN") + + def test_metric_met_function_thresholds(self, metric, metric_val): + if metric == "ki": + pt.skip("Skipping test for 'ki' metric (ki_met does not exist)") + expected = { + "cod": False, + "prd": False, + "prb": True, + "mki": False, + } + assert getattr(ap, f"{metric}_met")(metric_val) == expected[metric] diff --git a/assesspy/tests/test_outliers.py b/assesspy/tests/test_outliers.py index 605c671..85454e6 100644 --- a/assesspy/tests/test_outliers.py +++ b/assesspy/tests/test_outliers.py @@ -1,69 +1,93 @@ -# Import necessary libraries +import warnings + import numpy as np import pandas as pd import pytest as pt -import assesspy - -# Create test vectors of data with certain distributions -np.random.seed(13378) - -# Normal distribution, no outliers -test_dist1 = np.random.normal(size=100) - -# Normal distribution, some outliers -test_dist2 = np.append(np.random.normal(size=100), [3, 4, 5, 6, 7]) - -# Non-normal, super narrow distribution -test_dist3 = np.append( - np.append(np.random.uniform(size=20), np.repeat(1, 50)), [5, 6, 7] -) - -# Create outputs for all distributions -dist1_iqr_out = assesspy.is_outlier(test_dist1, method="iqr") -dist1_qnt_out = assesspy.is_outlier(test_dist1, method="quantile") -dist2_iqr_out = assesspy.is_outlier(test_dist2, method="iqr") -dist2_qnt_out = assesspy.is_outlier(test_dist2, method="quantile") - -##### TEST OUTLIER ##### # noqa - - -class TestOUTTIES: - def test_output_type(self): # Output is logical array - assert type(dist1_iqr_out[0]) is np.bool_ - assert type(dist1_iqr_out) is np.ndarray - - assert type(dist1_qnt_out[0]) is np.bool_ - assert type(dist1_qnt_out) is np.ndarray - - def test_output_value(self): - assert sum(dist1_iqr_out) == 0 - assert sum(dist1_qnt_out) == 10 - assert sum(dist2_iqr_out) == 3 - assert sum(dist2_qnt_out) == 12 - - def test_bad_input(self): # Bad input data stops execution +import assesspy as ap + + +class TestOutliers: + @pt.fixture(params=["normal", "outlier", "narrow", "ccao", "quintos"]) + def distribution(self, request, ccao_data, quintos_data): + return request.param, { + "normal": np.random.normal(size=100).tolist(), + "outlier": np.append( + np.random.normal(size=100), [3, 4, 5, 6, 7] + ).tolist(), + "narrow": np.append( + np.append(np.random.uniform(size=20), np.repeat(1, 100)), + [5, 6, 7], + ).tolist(), + "ccao": ccao_data[0] / ccao_data[1], + "quintos": quintos_data[0] / quintos_data[1], + }[request.param] + + @pt.fixture(params=["iqr", "quantile"]) + def method(self, request): + return request.param + + def test_is_outlier_output_is_boolean_array(self, distribution, method): + dist_name, dist_data = distribution + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + assert isinstance(ap.is_outlier(dist_data, method), pd.Series) + assert ap.is_outlier(dist_data, method).dtype == np.bool_ + + def test_is_outlier_has_expected_outlier_counts( + self, + distribution, + method, + ): + dist_name, dist_data = distribution + expected = { + "normal": {"iqr": 0, "quantile": 10}, + "outlier": {"iqr": 2, "quantile": 12}, + "narrow": {"iqr": 23, "quantile": 10}, + "ccao": {"iqr": 28, "quantile": 98}, + "quintos": {"iqr": 0, "quantile": 4}, + } + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + assert ( + ap.is_outlier(dist_data, method).sum() + == expected[dist_name][method] + ) + + @pt.mark.parametrize( + "bad_input", + [ + 10, + pd.DataFrame([1, 2, 3]), + [1] * 29 + ["1"], + ], + ) + def test_is_outlier_raises_on_bad_input(self, bad_input): with pt.raises(Exception): - assesspy.is_outlier([1] * 29 + [0]) - - with pt.raises(Exception): - assesspy.is_outlier(10) - - with pt.raises(Exception): - assesspy.is_outlier(np.append(test_dist1, float("Inf"))) - - with pt.raises(Exception): - assesspy.is_outlier(pd.DataFrame(test_dist1)) - - with pt.raises(Exception): - assesspy.is_outlier(np.append(test_dist1, float("NaN"))) - + ap.is_outlier(bad_input) + + @pt.mark.parametrize( + "input_data", + [ + lambda x: np.append(x, float("Inf")), + lambda x: np.append(x, float("NaN")), + ], + ) + def test_is_outlier_raises_on_invalid_values( + self, input_data, distribution, method + ): with pt.raises(Exception): - assesspy.is_outlier([1] * 29 + ["1"]) - - def test_warnings(self): - with pt.warns(UserWarning): - assesspy.is_outlier(test_dist3, method="iqr") - + dist_name, dist_data = distribution + ap.is_outlier(input_data(dist_data), method) + + def test_is_outlier_warns_on_narrow_distribution(self, distribution): + dist_name, dist_data = distribution + if dist_name == "narrow": + with pt.warns(UserWarning): + ap.is_outlier(dist_data, "iqr") + else: + ap.is_outlier(dist_data, "iqr") + + def test_is_outlier_warns_on_small_sample(self): with pt.warns(UserWarning): - assesspy.is_outlier(np.random.normal(size=20), method="quantile") + ap.is_outlier(np.random.normal(size=20).tolist(), "quantile") diff --git a/assesspy/tests/test_sales_chasing.py b/assesspy/tests/test_sales_chasing.py index 7cb5710..f7f5bc3 100644 --- a/assesspy/tests/test_sales_chasing.py +++ b/assesspy/tests/test_sales_chasing.py @@ -1,62 +1,92 @@ -# Import necessary libraries -# Import necessary libraries import numpy as np import pandas as pd import pytest as pt -import assesspy - -# Create test vectors of data with certain distributions -np.random.seed(13378) - -# Load the ratios sample dataset for testing -ratios_sample = assesspy.ratios_sample() - -# Extract the components of the dataframe as vectors -sample_ratios = ratios_sample.ratio -normal_ratios = np.random.normal(1, 0.15, 100) -chased_ratios = np.append(np.random.normal(1, 0.15, 900), [1] * 100) - -##### TEST CHASING DETECTION ##### # noqa - -# Run detection -sample_out = assesspy.detect_chasing(sample_ratios) -normal_out = assesspy.detect_chasing(normal_ratios) -chased_out = assesspy.detect_chasing(chased_ratios) - - -class TestCHASE: - def test_method(self): +import assesspy as ap + + +class TestSalesChasing: + @pt.fixture + def sample_dist(self, ccao_data): + estimate, sale_price = ccao_data + ratio = estimate / sale_price + return ratio + + @pt.fixture(params=["normal", "chased", "sample"]) + def distribution(self, request, ccao_data, sample_dist): + return request.param, { + "normal": np.random.normal(1, size=1000).tolist(), + "chased": np.append( + np.random.normal(1, 0.15, 900), [1] * 100 + ).tolist(), + "sample": sample_dist, + }[request.param] + + @pt.fixture(params=["cdf", "dist", "both"]) + def method(self, request): + return request.param + + def test_is_sales_chased_output_is_boolean(self, distribution, method): + dist_name, dist_data = distribution + assert isinstance(ap.is_sales_chased(dist_data, method), bool) + + def test_is_sales_chased_has_expected_output(self, distribution, method): + dist_name, dist_data = distribution + expected = { + "normal": {"cdf": False, "dist": False, "both": False}, + "chased": {"cdf": True, "dist": True, "both": True}, + "sample": {"cdf": False, "dist": True, "both": False}, + } + assert ( + ap.is_sales_chased(dist_data, method) + == expected[dist_name][method] + ) + + @pt.mark.parametrize( + "bad_input", + [10, pd.DataFrame([1, 2, 3]), [1] * 29 + ["1"], None], + ) + def test_is_sales_chased_raises_on_bad_input(self, bad_input): with pt.raises(Exception): - assesspy.detect_chasing(sample_ratios, method="hug") - - def test_output_type(self): # Output is logical - assert type(sample_out) is np.bool_ - - def test_output_value(self): - assert not sample_out - assert not normal_out - assert chased_out - - def test_bad_input(self): # Bad input data stops execution - with pt.raises(Exception): - assesspy.detect_chasing([1] * 29 + [0]) - + ap.is_sales_chased(bad_input) + + @pt.mark.parametrize( + "input_data", + [ + lambda x: np.append(x, float("Inf")), + lambda x: np.append(x, float("NaN")), + ], + ) + def test_is_sales_chased_raises_on_invalid_values( + self, input_data, distribution, method + ): with pt.raises(Exception): - assesspy.detect_chasing(10) + dist_name, dist_data = distribution + ap.is_outlier(input_data(dist_data), method) + def test_is_sales_chased_raises_on_invalid_method(self, distribution): with pt.raises(Exception): - assesspy.detect_chasing(np.append(sample_ratios, float("Inf"))) + dist_name, dist_data = distribution + ap.is_sales_chased(dist_data, method="hug") - with pt.raises(Exception): - assesspy.detect_chasing(pd.DataFrame(sample_ratios)) + def test_is_sales_chased_warns_on_small_sample(self): + with pt.warns(UserWarning): + ap.is_sales_chased(np.random.normal(size=29).tolist()) + @pt.mark.parametrize( + "bounds", + [(0.0, 0.0), [0.5, 0.4], (2.0, 1.0), (2.0, "1.0"), None, "2.0"], + ) + def test_is_sales_chased_raises_on_invalid_bounds(self, bounds): with pt.raises(Exception): - assesspy.detect_chasing(np.append(sample_ratios, float("NaN"))) - + ap.is_sales_chased( + np.random.normal(size=40).tolist(), bounds=bounds + ) + + @pt.mark.parametrize( + "gap", + [0, 1, -1, 2, float("NaN"), float("Inf"), None], + ) + def test_is_sales_chased_raises_on_invalid_gap(self, gap): with pt.raises(Exception): - assesspy.detect_chasing([1] * 29 + ["1"]) - - def test_warnings(self): # Small sample throughs a warning - with pt.warns(UserWarning): - assesspy.detect_chasing(np.random.normal(size=29)) + ap.is_sales_chased(np.random.normal(size=40).tolist(), gap=gap) diff --git a/assesspy/utils.py b/assesspy/utils.py index ef99488..39703f9 100644 --- a/assesspy/utils.py +++ b/assesspy/utils.py @@ -1,35 +1,28 @@ -# Import necessary libraries import numpy as np import pandas as pd from pandas.api.types import is_numeric_dtype -def check_inputs(*args): - out = [""] - - for x in args: - # *args passed into *args can created nested tuples - unnest - if isinstance(x, tuple): - args = x - +def check_inputs(*args, check_gt_zero: bool = True) -> None: + out_msg = [""] for x in args: - if isinstance(x, pd.core.frame.DataFrame): - raise Exception("Input cannot be a dataframe.") - check = pd.Series(x) if not is_numeric_dtype(check): - raise Exception("All input vectors must be numeric.") - if check.isnull().values.any(): - out.append("\nInput vectors contain null values.") + out_msg.append("All input values must be numeric.") + if check.isnull().any(): + out_msg.append("All input values cannot be null.") if len(check) <= 1: - out.append("\nAll input vectors must have length greater than 1.") + out_msg.append("All input values must have length greater than 1.") if not all(np.isfinite(check) | check.isnull()): - out.append("\nInfinite values in input vectors.") - if any(check == 0): - out.append("\nInput vectors cannot contain values of 0.") + out_msg.append("All input values cannot be infinite.") + if any(check <= 0) and check_gt_zero: + out_msg.append("All input values must be greater than 0.") - out = set(out) + lengths = [len(pd.Series(x)) for x in args] + if len(set(lengths)) > 1: + out_msg.append("All input values must have the same length.") - if len(out) > 1: - raise Exception("".join(map(str, out))) + out_msg_set = set(out_msg) + if len(out_msg_set) > 1: + raise Exception("\n".join(out_msg_set)) diff --git a/docs/source/ccao_sample.rst b/docs/source/ccao_sample.rst new file mode 100644 index 0000000..b6c7e05 --- /dev/null +++ b/docs/source/ccao_sample.rst @@ -0,0 +1,5 @@ +=========================================================== +Sample of estimates and sales data pulled from CCAO records +=========================================================== + +.. autofunction:: assesspy.ccao_sample diff --git a/docs/source/ci.rst b/docs/source/ci.rst index 0b5010b..2b99f54 100644 --- a/docs/source/ci.rst +++ b/docs/source/ci.rst @@ -1,5 +1,13 @@ -=========================================== -Calculate bootstrapped confidence intervals -=========================================== +============================== +Calculate confidence intervals +============================== .. autofunction:: assesspy.boot_ci +.. autofunction:: assesspy.cod_ci + :noindex: + +.. autofunction:: assesspy.prd_ci + :noindex: + +.. autofunction:: assesspy.prb_ci + :noindex: diff --git a/docs/source/cod.rst b/docs/source/cod.rst index fa8824f..feabd89 100644 --- a/docs/source/cod.rst +++ b/docs/source/cod.rst @@ -3,3 +3,5 @@ Calculate Coefficient of Dispersion (COD) ========================================= .. autofunction:: assesspy.cod +.. autofunction:: assesspy.cod_ci +.. autofunction:: assesspy.cod_met diff --git a/docs/source/conf.py b/docs/source/conf.py index b7c8738..dc8350a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -12,4 +12,5 @@ # which can't be parsed by sphinx-pyproject source_suffix = {".rst": "restructuredtext", ".ipynb": "myst-nb"} nb_render_image_options = {"width": "450px", "align": "center"} +nb_execution_timeout = 600 html_sidebars = {"**": []} diff --git a/docs/source/index.rst b/docs/source/index.rst index a51848f..e94ccc1 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -33,11 +33,11 @@ believe that reporters, taxpayers, and members of academia will find this package helpful in monitoring the performance of local assessors and conducting research. -For detailed documentation on included functions and data, `visit the -full reference list `_. +For detailed documentation on included functions and data, :doc:`visit the +full reference list `. For examples of specific tasks you can complete with ``assesspy`` -functions, see the `vignettes page `_. +functions, see the :doc:`vignettes page `. Installation ------------ diff --git a/docs/source/ki.rst b/docs/source/ki.rst index f8d6057..4c73dae 100644 --- a/docs/source/ki.rst +++ b/docs/source/ki.rst @@ -1,5 +1,5 @@ -========================================= +============= Kakwani Index -========================================= +============= .. autofunction:: assesspy.ki diff --git a/docs/source/mki.rst b/docs/source/mki.rst index c910faf..a6f2952 100644 --- a/docs/source/mki.rst +++ b/docs/source/mki.rst @@ -1,5 +1,6 @@ -========================================= +====================== Modified Kakwani Index -========================================= +====================== .. autofunction:: assesspy.mki +.. autofunction:: assesspy.mki_met diff --git a/docs/source/mki_ki.rst b/docs/source/mki_ki.rst deleted file mode 100644 index 47e38d7..0000000 --- a/docs/source/mki_ki.rst +++ /dev/null @@ -1,5 +0,0 @@ -======================================================= -Data To Replicate Quintos Study -======================================================= - -.. autofunction:: mki_ki diff --git a/docs/source/notebooks/example-ratio-study.ipynb b/docs/source/notebooks/example-ratio-study.ipynb index da0c79a..de5c7ef 100644 --- a/docs/source/notebooks/example-ratio-study.ipynb +++ b/docs/source/notebooks/example-ratio-study.ipynb @@ -46,7 +46,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -127,11 +127,11 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "# Pivot to longer, Join the two datasets based on PIN, keeping only those that have assessed\n", + "# Pivot to longer, join the two datasets based on PIN, keeping only those that have assessed\n", "# values AND sales\n", "combined = pd.merge(\n", " pd.melt(\n", @@ -146,10 +146,11 @@ " how=\"inner\",\n", ")\n", "\n", - "# Remove multisales, then calculate the ratio for each property\n", + "# Remove multisales, then calculate the sale ratio for each property\n", "# and assessment stage\n", - "combined = combined[not combined.is_multisale]\n", - "combined[\"ratio\"] = combined.assessed * 10 / combined.sale_price" + "combined = combined[~combined.is_multisale]\n", + "combined[\"assessed\"] = combined.assessed * 10\n", + "combined[\"ratio\"] = combined.assessed / combined.sale_price" ] }, { @@ -163,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -220,199 +221,159 @@ " mailed_tot\n", " 353\n", " 22.10\n", - " [20.12, 24.46]\n", + " [20.35, 23.8]\n", " False\n", " 1.04\n", - " [1.02, 1.07]\n", + " [1.03, 1.07]\n", " False\n", - " 0.003\n", - " [0.001, 0.004]\n", + " 0.0027\n", + " [0.001, 0.0045]\n", " True\n", " \n", " \n", " certified_tot\n", " 353\n", " 22.03\n", - " [20.02, 23.81]\n", + " [20.51, 23.81]\n", " False\n", " 1.05\n", - " [1.02, 1.08]\n", + " [1.03, 1.07]\n", " False\n", - " 0.002\n", - " [0.001, 0.004]\n", + " 0.0023\n", + " [0.0006, 0.0041]\n", " True\n", " \n", " \n", " board_tot\n", " 353\n", " 20.75\n", - " [18.72, 23.04]\n", + " [19.22, 22.36]\n", " False\n", " 1.05\n", - " [1.02, 1.08]\n", - " False\n", - " 0.001\n", - " [-0.0, 0.003]\n", - " True\n", - " \n", - " \n", - " New Trier\n", - " mailed_tot\n", - " 88\n", - " 21.57\n", - " [17.01, 26.59]\n", - " False\n", - " 1.06\n", - " [1.02, 1.11]\n", - " False\n", - " 0.003\n", - " [-0.0, 0.007]\n", - " True\n", - " \n", - " \n", - " certified_tot\n", - " 88\n", - " 22.69\n", - " [17.8, 29.23]\n", - " False\n", - " 1.08\n", - " [1.03, 1.14]\n", + " [1.03, 1.07]\n", " False\n", - " 0.003\n", - " [-0.001, 0.007]\n", - " True\n", - " \n", - " \n", - " board_tot\n", - " 88\n", - " 21.66\n", - " [16.93, 26.57]\n", - " False\n", - " 1.08\n", - " [1.03, 1.13]\n", - " False\n", - " 0.003\n", - " [-0.001, 0.006]\n", + " 0.0014\n", + " [-0.0003, 0.003]\n", " True\n", " \n", " \n", " Northfield\n", " mailed_tot\n", - " 364\n", - " 18.32\n", - " [16.39, 20.19]\n", + " 334\n", + " 17.37\n", + " [16.04, 18.65]\n", " False\n", - " 1.03\n", + " 1.04\n", " [1.02, 1.05]\n", - " True\n", - " 0.002\n", - " [0.0, 0.003]\n", + " False\n", + " 0.0012\n", + " [-0.0002, 0.0025]\n", " True\n", " \n", " \n", " certified_tot\n", - " 364\n", - " 18.10\n", - " [16.45, 20.06]\n", + " 334\n", + " 17.22\n", + " [15.82, 18.47]\n", " False\n", " 1.03\n", - " [1.01, 1.05]\n", + " [1.02, 1.05]\n", " True\n", - " 0.001\n", - " [0.0, 0.003]\n", + " 0.0011\n", + " [-0.0003, 0.0025]\n", " True\n", " \n", " \n", " board_tot\n", - " 364\n", - " 17.04\n", - " [15.35, 18.97]\n", + " 334\n", + " 16.45\n", + " [15.22, 17.69]\n", " False\n", " 1.05\n", " [1.03, 1.06]\n", " False\n", - " 0.001\n", - " [-0.0, 0.002]\n", + " 0.0006\n", + " [-0.0008, 0.0019]\n", " True\n", " \n", " \n", " Palatine\n", " mailed_tot\n", - " 2133\n", - " 15.68\n", - " [14.82, 16.82]\n", + " 2156\n", + " 15.64\n", + " [14.94, 16.44]\n", " False\n", " 1.01\n", " [1.0, 1.02]\n", " True\n", - " 0.002\n", - " [0.001, 0.003]\n", + " 0.0022\n", + " [0.0015, 0.0029]\n", " True\n", " \n", " \n", " certified_tot\n", - " 2133\n", - " 15.62\n", - " [14.57, 17.07]\n", + " 2156\n", + " 15.56\n", + " [14.84, 16.38]\n", " False\n", " 1.01\n", " [1.0, 1.01]\n", " True\n", - " 0.002\n", - " [0.001, 0.003]\n", + " 0.0021\n", + " [0.0014, 0.0028]\n", " True\n", " \n", " \n", " board_tot\n", - " 2133\n", - " 15.40\n", - " [14.36, 16.47]\n", + " 2156\n", + " 15.35\n", + " [14.63, 16.17]\n", " False\n", " 1.01\n", " [1.0, 1.02]\n", " True\n", - " 0.002\n", - " [0.001, 0.003]\n", + " 0.0019\n", + " [0.0012, 0.0026]\n", " True\n", " \n", " \n", " Wheeling\n", " mailed_tot\n", - " 2196\n", - " 17.84\n", - " [16.72, 19.29]\n", + " 2272\n", + " 17.56\n", + " [16.72, 18.47]\n", " False\n", - " 1.03\n", - " [1.02, 1.04]\n", + " 1.02\n", + " [1.02, 1.03]\n", " True\n", - " 0.002\n", - " [0.001, 0.003]\n", + " 0.0018\n", + " [0.0009, 0.0026]\n", " True\n", " \n", " \n", " certified_tot\n", - " 2196\n", - " 17.78\n", - " [16.88, 19.0]\n", + " 2272\n", + " 17.51\n", + " [16.73, 18.44]\n", " False\n", " 1.03\n", - " [1.02, 1.04]\n", + " [1.02, 1.03]\n", " True\n", - " 0.002\n", - " [0.001, 0.002]\n", + " 0.0016\n", + " [0.0008, 0.0024]\n", " True\n", " \n", " \n", " board_tot\n", - " 2196\n", - " 17.55\n", - " [16.45, 19.03]\n", + " 2272\n", + " 17.26\n", + " [16.47, 18.2]\n", " False\n", " 1.03\n", - " [1.02, 1.04]\n", + " [1.02, 1.03]\n", " True\n", - " 0.002\n", - " [0.001, 0.002]\n", + " 0.0015\n", + " [0.0007, 0.0023]\n", " True\n", " \n", " \n", @@ -422,48 +383,39 @@ "text/plain": [ " n cod cod_ci cod_met prd \\\n", "township_name stage \n", - "Barrington mailed_tot 353 22.10 [20.12, 24.46] False 1.04 \n", - " certified_tot 353 22.03 [20.02, 23.81] False 1.05 \n", - " board_tot 353 20.75 [18.72, 23.04] False 1.05 \n", - "New Trier mailed_tot 88 21.57 [17.01, 26.59] False 1.06 \n", - " certified_tot 88 22.69 [17.8, 29.23] False 1.08 \n", - " board_tot 88 21.66 [16.93, 26.57] False 1.08 \n", - "Northfield mailed_tot 364 18.32 [16.39, 20.19] False 1.03 \n", - " certified_tot 364 18.10 [16.45, 20.06] False 1.03 \n", - " board_tot 364 17.04 [15.35, 18.97] False 1.05 \n", - "Palatine mailed_tot 2133 15.68 [14.82, 16.82] False 1.01 \n", - " certified_tot 2133 15.62 [14.57, 17.07] False 1.01 \n", - " board_tot 2133 15.40 [14.36, 16.47] False 1.01 \n", - "Wheeling mailed_tot 2196 17.84 [16.72, 19.29] False 1.03 \n", - " certified_tot 2196 17.78 [16.88, 19.0] False 1.03 \n", - " board_tot 2196 17.55 [16.45, 19.03] False 1.03 \n", + "Barrington mailed_tot 353 22.10 [20.35, 23.8] False 1.04 \n", + " certified_tot 353 22.03 [20.51, 23.81] False 1.05 \n", + " board_tot 353 20.75 [19.22, 22.36] False 1.05 \n", + "Northfield mailed_tot 334 17.37 [16.04, 18.65] False 1.04 \n", + " certified_tot 334 17.22 [15.82, 18.47] False 1.03 \n", + " board_tot 334 16.45 [15.22, 17.69] False 1.05 \n", + "Palatine mailed_tot 2156 15.64 [14.94, 16.44] False 1.01 \n", + " certified_tot 2156 15.56 [14.84, 16.38] False 1.01 \n", + " board_tot 2156 15.35 [14.63, 16.17] False 1.01 \n", + "Wheeling mailed_tot 2272 17.56 [16.72, 18.47] False 1.02 \n", + " certified_tot 2272 17.51 [16.73, 18.44] False 1.03 \n", + " board_tot 2272 17.26 [16.47, 18.2] False 1.03 \n", "\n", - " prd_ci prd_met prb prb_ci \\\n", - "township_name stage \n", - "Barrington mailed_tot [1.02, 1.07] False 0.003 [0.001, 0.004] \n", - " certified_tot [1.02, 1.08] False 0.002 [0.001, 0.004] \n", - " board_tot [1.02, 1.08] False 0.001 [-0.0, 0.003] \n", - "New Trier mailed_tot [1.02, 1.11] False 0.003 [-0.0, 0.007] \n", - " certified_tot [1.03, 1.14] False 0.003 [-0.001, 0.007] \n", - " board_tot [1.03, 1.13] False 0.003 [-0.001, 0.006] \n", - "Northfield mailed_tot [1.02, 1.05] True 0.002 [0.0, 0.003] \n", - " certified_tot [1.01, 1.05] True 0.001 [0.0, 0.003] \n", - " board_tot [1.03, 1.06] False 0.001 [-0.0, 0.002] \n", - "Palatine mailed_tot [1.0, 1.02] True 0.002 [0.001, 0.003] \n", - " certified_tot [1.0, 1.01] True 0.002 [0.001, 0.003] \n", - " board_tot [1.0, 1.02] True 0.002 [0.001, 0.003] \n", - "Wheeling mailed_tot [1.02, 1.04] True 0.002 [0.001, 0.003] \n", - " certified_tot [1.02, 1.04] True 0.002 [0.001, 0.002] \n", - " board_tot [1.02, 1.04] True 0.002 [0.001, 0.002] \n", + " prd_ci prd_met prb prb_ci \\\n", + "township_name stage \n", + "Barrington mailed_tot [1.03, 1.07] False 0.0027 [0.001, 0.0045] \n", + " certified_tot [1.03, 1.07] False 0.0023 [0.0006, 0.0041] \n", + " board_tot [1.03, 1.07] False 0.0014 [-0.0003, 0.003] \n", + "Northfield mailed_tot [1.02, 1.05] False 0.0012 [-0.0002, 0.0025] \n", + " certified_tot [1.02, 1.05] True 0.0011 [-0.0003, 0.0025] \n", + " board_tot [1.03, 1.06] False 0.0006 [-0.0008, 0.0019] \n", + "Palatine mailed_tot [1.0, 1.02] True 0.0022 [0.0015, 0.0029] \n", + " certified_tot [1.0, 1.01] True 0.0021 [0.0014, 0.0028] \n", + " board_tot [1.0, 1.02] True 0.0019 [0.0012, 0.0026] \n", + "Wheeling mailed_tot [1.02, 1.03] True 0.0018 [0.0009, 0.0026] \n", + " certified_tot [1.02, 1.03] True 0.0016 [0.0008, 0.0024] \n", + " board_tot [1.02, 1.03] True 0.0015 [0.0007, 0.0023] \n", "\n", " prb_met \n", "township_name stage \n", "Barrington mailed_tot True \n", " certified_tot True \n", " board_tot True \n", - "New Trier mailed_tot True \n", - " certified_tot True \n", - " board_tot True \n", "Northfield mailed_tot True \n", " certified_tot True \n", " board_tot True \n", @@ -475,7 +427,7 @@ " board_tot True " ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -499,17 +451,17 @@ " lambda x: pd.Series(\n", " {\n", " \"n\": np.size(x[\"pin\"]),\n", - " \"cod\": np.round(ap.cod(ratio=x[\"ratio\"]), 2),\n", - " \"cod_ci\": np.round(ap.cod_ci(ratio=x[\"ratio\"]), 2),\n", + " \"cod\": np.round(ap.cod(x[\"assessed\"], x[\"sale_price\"]), 2),\n", + " \"cod_ci\": np.round(ap.cod_ci(x[\"assessed\"], x[\"sale_price\"]), 2),\n", " \"prd\": np.round(ap.prd(x[\"assessed\"], x[\"sale_price\"]), 2),\n", " \"prd_ci\": np.round(ap.prd_ci(x[\"assessed\"], x[\"sale_price\"]), 2),\n", - " \"prb\": ap.prb(x[\"assessed\"], x[\"sale_price\"], 3),\n", + " \"prb\": np.round(ap.prb(x[\"assessed\"], x[\"sale_price\"]), 4),\n", + " \"prb_ci\": np.round(ap.prb_ci(x[\"assessed\"], x[\"sale_price\"]), 4),\n", " }\n", " )\n", ")\n", "\n", - "town_stats[\"prb_ci\"] = town_stats.prb.str[\"95% ci\"]\n", - "town_stats[\"prb\"] = town_stats.prb.str[\"prb\"]\n", + "\n", "town_stats[\"cod_met\"] = town_stats.cod.apply(ap.cod_met)\n", "town_stats[\"prd_met\"] = town_stats.prd.apply(ap.prd_met)\n", "town_stats[\"prb_met\"] = town_stats.prb.apply(ap.prb_met)\n", @@ -543,7 +495,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -580,42 +532,42 @@ " \n", " 1\n", " 20%\n", - " $175,000\n", + " $174,000\n", " \n", " \n", " 2\n", " 30%\n", - " $217,850\n", + " $215,000\n", " \n", " \n", " 3\n", " 40%\n", - " $257,000\n", + " $255,000\n", " \n", " \n", " 4\n", " 50%\n", - " $295,000\n", + " $290,745\n", " \n", " \n", " 5\n", " 60%\n", - " $330,000\n", + " $328,000\n", " \n", " \n", " 6\n", " 70%\n", - " $378,150\n", + " $372,500\n", " \n", " \n", " 7\n", " 80%\n", - " $454,600\n", + " $445,000\n", " \n", " \n", " 8\n", " 90%\n", - " $595,000\n", + " $575,000\n", " \n", " \n", "\n", @@ -624,17 +576,17 @@ "text/plain": [ " Decile Sale Price\n", "0 10% $130,000\n", - "1 20% $175,000\n", - "2 30% $217,850\n", - "3 40% $257,000\n", - "4 50% $295,000\n", - "5 60% $330,000\n", - "6 70% $378,150\n", - "7 80% $454,600\n", - "8 90% $595,000" + "1 20% $174,000\n", + "2 30% $215,000\n", + "3 40% $255,000\n", + "4 50% $290,745\n", + "5 60% $328,000\n", + "6 70% $372,500\n", + "7 80% $445,000\n", + "8 90% $575,000" ] }, - "execution_count": 6, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -663,12 +615,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "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ZXBlUffu3XHhwgWMGjUK1tbWGbrBYNOmTQEA3333nV75iwmZtbU12rZti40bNxq9gu/hw4fKv9u2bYvo6GjMnTvXoN7rzDAEBwfDxcUF//vf/6BWq1+6TmOaNWuG48eP612+npCQgMWLF8PX11fvxy6jHj16pPfayspKmaHTHe6xtrY2iPPnn39+5flQHh4eqFevHhYtWqTMaKT1qnh1tmzZoreu48eP49ixY8pYv662bdtCRAxumAn8N54ffPABrK2tERoaahC7iBh8bllh3bp1GDJkCLp27YqwsLB067Vr1w4ajUbvsHZKSgqWL1+OqlWrwtvbWyn/888/0alTJ9SpUwerV69Od6avVatWsLW1xfz585UyEcHChQtRqFAh1KhRwwQREr0aZ6qI0tixY4cys/LgwQOsWbMGERERGDNmjME5Rc2bN0e+fPnw888/o2nTpvDw8Hhl+0FBQejcuTPmz5+PmJgY1KhRA3/88QeuXr1qUPerr77Cvn37ULVqVXzyyScICAjA48ePcerUKezZs0e5pcOHH36IH374AcOHD8fx48dRu3ZtJCQkYM+ePRgwYIDRe2oZ4+LiggULFqB79+6oUKECOnXqhPz58+PmzZvYtm0batasaTRx0xkzZgx++uknNG3aFEOGDIGbmxtWrlyJyMhIbNy48Y0OfX388cd4/PgxGjRogMKFC+PGjRuYM2cOgoKClCS3RYsW+OKLL9CrVy/UqFED586dw+rVq5WZqJeZN28eatWqhTJlyuCTTz5B0aJFERUVhSNHjuD27dsZutdVsWLFUKtWLfTv3x8pKSmYPXs28uXLh88+++y14wWA+vXro3v37vjuu+8QERGBJk2aQKvV4q+//kL9+vUxaNAg+Pv7Y+rUqRg7diyuX7+O1q1bw9nZGZGRkdi8eTP69OmTpXerP378OD788EPky5cP77//vt5FHABQo0YNZTyqVq2K9u3bY+zYsXjw4AGKFSuGlStX4vr163qzjTdu3EDLli2hUqnQrl07/Pzzz3ptli1bVkmwCxcujKFDh2LmzJlQq9WoXLkytmzZgr/++gurV69O97AmkcmZ45JDIktj7JYK9vb2EhQUJAsWLEj3NgkDBgwQALJmzZoMryspKUmGDBki+fLlE0dHRwkJCZFbt24ZvaN6VFSUDBw4ULy9vcXW1lYKFiwo77//vixe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nli5u7vrzZRYosTERClYsKA0b95cKfv+++9l5MiR8tlnn8mPP/6olP/555/StWtX8fPzkz179pijuy+1dOlSqVGjhsTGxorI8527YcOGcujQIdm7d68yXjdu3JAhQ4aISqWSjRs3mrPLBmJjY8Xd3V35q1VEpFOnTtKwYUN5/PixXlJ++PBhix2PxMRE8fLyko4dOypl69atky+//FK+/fZbvf6uW7dOmjRpIg0aNJC///7bHN19qeXLl0vFihWVfTsmJkbWrVsnbm5u0qZNG6Wepccxfvx4ad68uTx79kxERP755x+pXr263LhxQ27cuKHUs/Q4csq2lVPieNGePXskKChIoqOj9co6duwoZcuWld9++01EnidWISEhUrx4cVm7du1bTzjwnKpsSndSne6KDCsrK4SFhcHBwQFffvklfHx80KFDBwQHB2PJkiXo2rUr/vnnH5QtW9bcXTfq/v37SExMhJ2dHTQaDXr27ImTJ0+iSJEiePr0KdauXYujR49i7ty5qF27NoDnl/PrTp62JLdu3VLOYQOAPXv24MCBA+jfvz/u3r2LwoULY/369ShevDgGDRqEZ8+eWdQ9q0QEc+bMQUhICJYtW6aU161bFxMmTMCDBw+QN29epKamwsbGBtWrV1fOW7C08Th16hQePnyIvHnzAgB69uyJo0ePwtnZGdHR0XBxcUHHjh0xbtw4dOjQASKCRYsWmbnXxt25cwfx8fHKvedcXFzwwQcfwNnZGd26dUO/fv2wcOFCdOjQAVqtFosXLzZzj42LjIxErly5lKtCL168iCtXriA4OBgqlQply5bF2rVr0aFDB2g0GixZssTMPTYup2xbOSWOF2k0Gly5cgV37txRniry/vvvw9HREWFhYZg/fz78/f1RqlQpbNy4ESEhIShUqNDbXyn/VikZmc3UqVPF09NTUlJSREQkOTlZWfbxxx+Lh4eHPH36VESez2Q9ePDALP1Mj+4YvEajUf4dHh4uhQoVEnt7e6lVq5aEh4eLyPO/yOfOnStFihRRpm1FxOLOC9M5fPiwODo6SuPGjWXUqFFibW0tc+fOlWvXrklsbKyULl1aWrZsqdTXTTlbwrkuOlFRUUaXBQUF6R2eTdtnSxyPZ8+eybZt28TV1VXc3NykZs2acubMGRERuXPnjowcOVLKli0rx48fV95z//59c3XXKN3n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", + "image/png": "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4vfff1eSqtjYWBw/fhz9+/c32EdiYiIGDhyItWvXwtbWFhqNRpkJqFarodFojD63g4MDHBwcDMrt7e0z7KTNyH1nJsZhWRiHZWEclsVa4gCsJxZTx2Hu18TsSyrs3r0bYWFhiIyMxJ49e1CnTh0UL14cPXr0gEqlwtChQzF16lRs374d58+fR9euXeHj44OWLVsa7GvKlClo0qQJypYtCwCoVq0atmzZgr///hvz589HtWrVMjk6IiIiel+YvacqJiYGY8aMwa1bt+Dh4YHWrVtj2rRpSrb5+eefIy4uDn369MHTp09RvXp1hIWFGcwYDA8Px8aNG3H27FmlrE2bNjhw4ABq1KiBYsWKYd26dZkZGhEREb1HzJ5UtWvXDu3atUtzu0qlwpdffokvv/zylfspWbKk3krrAGBjY4OFCxdi4cKFJmkrERERUVrMfvmPiIiIyBowqSIiIiIyASZVRERERCbApIqIiIjIBJhUEREREZkAkyoiIiIiE2BSRURERGQCTKqIiIiITIBJFREREZEJMKkiIiIiMgEmVUREREQmwKSKiIiIyASYVBERERGZAJMqIiIiIhNgUkVERERkAkyqiIiIiEyASRURERGRCTCpIiIiIjIBJlVEREREJsCkioiIiMgEmFQRERERmQCTKiIiIiITYFJFREREZAJMqoiIiIhMgEkVERERkQkwqSIiIiIyASZVRERERCbApIqIiIjIBJhUEREREZkAkyoiIiIiE2BSRURERGQCTKqIiIiITIBJFREREZEJMKkiIiIiMgEmVUREREQmwKSKiIiIyASYVBERERGZAJMqIiIiIhNgUkVERERkAkyqiIiIiEyASRURERGRCZg1qdJoNBg/fjz8/f3h5OSEgIAATJkyBSKi1Hn+/DkGDRqE/Pnzw8nJCSVKlMDixYv19vPZZ5/Bw8MDvr6+WLt2rd62n376CSEhIZkSDxEREb2/7Mz55NOnT8eiRYsQGhqKwMBAnDx5Ej169IC7uzuGDBkC4EXCtG/fPqxZswZ+fn747bffMGDAAPj4+KB58+bYsWMH1q1bh99++w0RERHo2bMnGjZsCE9PT8TExOCLL77A3r17zRkmERERvQfM2lN15MgRtGjRAk2bNoWfnx/atGmDBg0a4MSJE3p1unXrhtq1a8PPzw99+vRBmTJllDoXL15E7dq1UaFCBXTo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2jXs27cPuXLlSnOf+/fvx6hRo3D06FGMHDkSdnZ2mDFjBv755x/UrFkTjx49MniMsZ4qX19fREdHm/ygqNVq7NmzB/Xr14e9vb1J952ZGIdlYRyWhXFYFmuJA7CeWDIqjtjYWHh6epotqTLr5b/4+HjY2OgP67K1tYVWq1X+1iVUERER2L9//ysTqsTERAwcOBBr165VLiemXp5Bo9EYfZyDgwMcHBwMyu3t7TPspM3IfWcmxmFZGIdlYRyWxVriAKwnFlPHYe7XxKwD1UNCQjBt2jTs3LkTUVFR2Lp1K2bPnq0MLler1WjTpg1OnjyJtWvXQqPR4N69e7h37x6Sk5MN9jdlyhQ0adIEZcuWBQBUq1YNW7Zswd9//4358+ejWrVqmRofERERvT/M2lM1b948jB8/HgMGDMCDBw/g4+ODvn37YsKECQCA27dvY/v27QCAoKAgvcfu378ftWvXVv4ODw/Hxo0bcfbsWaWsTZs2OHDgAGrUqIFixYph3bp1GR0SERERvafMmlS5urpizpw5mDNnjtHtfn5+SO+Qr5IlSyIiIkKvzMbGBgsXLsTChQvftalEREREr8R7/xERERGZAJMqIiIiIhNgUkVERERkAkyqiIiIiEyASRURERGRCTCpIiIiIjIBJlVEREREJsCkioiIiMgEmFQRERERmQCTKiIiIiITYFJFREREZAJMqoiIiIhMgEkVERERkQkwqSIiIiIyASZVRERERCbApIqIiIjIBJhUEREREZkAkyoiIiIiE2BSRURERGQCTKqIiIiITIBJFREREZEJMKkiIiIiMgEmVUREREQmwKSKiIiIyASYVBERERGZAJMqIiIiIhNgUkVERERkAkyqiIiIiEyASRURERGRCTCpIiIiIjIBJlVEREREJsCkioiIiMgEmFQRERERmQCTKiIiIiITYFJFREREZAJMqoiIiIhMgEkVERERkQkwqSIiIiIyASZVRERERCbApIqIiIjIBJhUEREREZmAWZMqjUaD8ePHw9/fH05OTggICMCUKVMgIkodEcGECRPg7e0NJycn1KtXDxEREcr2pKQkdOnSBW5ubihatCj27t2r9xwzZ87E4MGDMy0mIiIiej/ZmfPJp0+fjkWLFiE0NBSBgYE4efIkevToAXd3dwwZMgQAMGPGDHz//fcIDQ2Fv78/xo8fj4YNG+LChQtw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", "text/plain": [ "
" ] @@ -727,12 +679,12 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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WL58OaNHj7a6NMmFFi5cyKhRo/joo48oVqyY1eV4pPT0dDp27MioUaOoWLGi1eV4DafTic1m48MPP6Ru3bo0b96ciRMnsmDBApf2Bily5pAiRYrg5+dHXFxcpvG4uDiKFy9+1fYHDx7kyJEjtGzZMmPM6XQC4O/vz969eylfvnzOFm0xV3sGUKJECQICAvDz88sYq1KlCrGxsaSmphIYGJijNVvpZvo1fPhwunTpwjPPPAPA3XffTVJSEr1792bo0KHY7fp/0d8VL148yx6HhoZqL9B1LF68mGeeeYaPP/74qsOJckViYiJbt25lx44d9O/fHzB/9xuGgb+/P6tWreKhhx6yuErPU6JECUqVKkWBAgUyxqpUqYJhGPz+++9UqFDhht5Hv/FySGBgILVr12b16tUZY06nk9WrVxMREXHV9pUrV+bnn39m586dGV///ve/M65ICQ8Pd2f5lnC1ZwANGjTgwIEDGYERYN++fZQoUSJXByC4uX5duHDhqqBzOUAamkYwSxEREZl6DBATE3PNHgssWrSIHj16sGjRIlq0aGF1OR4tNDT0qt/9ffr0oVKlSuzcuZN69epZXaJHatCgASdOnOD8+fMZY/v27cNut1O6dOkbf6NbOq1armvx4sVGUFCQMX/+fGPXrl1G7969jYIFCxqxsbGGYRhGly5djMGDB1/z9b54dZirPTt69KiRP39+o3///sbevXuNL7/80ihWrJjx+uuvW/UR3MrVfkVHRxv58+c3Fi1aZBw6dMhYtWqVUb58eaNdu3ZWfQS3S0xMNHbs2GHs2LHDAIyJEycaO3bsMH777TfDMAxj8ODBRpcuXTK2P3TokBESEmK88sorxu7du42pU6cafn5+xsqVK636CG7lar8+/PBDw9/f35g6dapx8uTJjK/4+HirPoLbudqzv/PFq8Nc7VliYqJRunRpo02bNsavv/5qrF+/3qhQoYLxzDPPuPR9FYJy2HvvvWfcfvvtRmBgoFG3bl3j+++/z1j34IMPGt26dbvma30xBBmG6z377rvvjHr16hlBQUFGuXLljDFjxhhpaWlurto6rvTL4XAYI0eONMqXL28EBwcb4eHhRt++fY2zZ8+6v3CLrF271gCu+rrcp27duhkPPvjgVa+pWbOmERgYaJQrV86YN2+e2+u2iqv9evDBB6+7vS+4mZ+xv/LFEHQzPdu9e7fRuHFjI0+ePEbp0qWNyMhI48KFCy59X5thaB+4iIiI+B6dEyQiIiI+SSFIREREfJJCkIiIiPgkhSARERHxSQpBIiIi4pMUgkRERMQnKQSJiIiIT1IIEhEREZ+kECQiPmHdunXYbDbi4+OtLkVEPIRCkIh4lO7du2Oz2bDZbAQEBFC2bFleffVVkpOTb/g9GjZsyIABAzKN1a9fn5MnT2aadVpEfJu/1QWIiPzdI488wrx583A4HGzbto1u3bphs9kYP378Tb9nYGAgxYsXz8YqRcTbaU+QiHicoKAgihcvTnh4OK1ataJx48bExMQA8Oeff9KhQwdKlSpFSEgId999N4sWLcp4bffu3Vm/fj2TJ0/O2KN05MiRLA+Hffrpp9x1110EBQVRpkwZ3n77bXd/VBGxkEKQiHi0X375he+++47AwEAAkpOTqV27NsuXL+eXX36hd+/edOnShS1btgAwefJkIiIi6NWrFydPnuTkyZOEh4df9b7btm2jXbt2PPXUU/z888+MHDmS4cOHM3/+fHd+PBGxkA6HiYjH+fLLL8mXLx9paWmkpKRgt9uZMmUKAKVKlWLgwIEZ2z7//PN8/fXXfPTRR9StW5cCBQoQGBhISEjIdQ9/TZw4kYcffpjhw4cDULFiRXbt2sWECRPo3r17jn4+EfEMCkEi4nEaNWrEtGnTSEpK4p133sHf35/WrVsDkJ6eztixY/noo484fvw4qamppKSkEBIS4tL32L17N48//nimsQYNGjBp0iTS09Px8/PLts8jIp5Jh8NExOPkzZuXO++8kxo1ajB37lx++OEH5syZA8CECROYPHkygwYNYu3atezcuZNmzZqRmppqcdUi4m0UgkTEo9ntdoYMGcKwYcO4ePEimzZt4vHHH6dz587UqFGDcuXKsW/fvkyvCQwMJD09/brvW6VKFTZt2pRpbNOmTVSsWFF7gUR8hEKQiHi8tm3b4ufnx9SpU6lQoQIxMTF899137N69m2effZa4uLhM25cpU4YffviBI0eOcPr0aZxO51Xv+fLLL7N69WpGjx7Nvn37WLBgAVOmTMl0vpGI5G4KQSLi8fz9/enfvz9vvvkmL7/8MrVq1aJZs2Y0bNiQ4sWL06pVq0zbDxw4ED8/P6pWrUrRokU5evToVe9Zq1YtPvroIxYvXky1atUYMWIEr732mk6KFvEhNsMwDKuLEBEREXE37QkSERERn6QQJCIiIj5JIUhERER8kkKQiIiI+CSFIBEREfFJCkEiIiLikxSCRERExCcpBImIiIhPUggSERERn6QQJCIiIj5JIUhERER80v8DsZ1q5KGByk4AAAAASUVORK5CYII=", + "image/png": "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efjhhylatCghISF8/vnnlChRghYtWvDyyy8TEBCQ6ecMHjyYIUOGXNY/e/ZsQkJCsu37iEjeVnbVKmqMH09C2bJ889ZbYLczeHAkW7eW5JFH/qRDh21WhyiSpyUlJdGiRQtOnTpFaGjoNb2XZSM/R48eJS0tjbCwsAz9YWFh7NixI9Nz9uzZwzfffEPLli1ZsmQJu3fvpmvXrrhcLgYNGpTpOX379iUmJib9dXx8PBERETRo0OCak3e1XC4XK1asoH79+ukjVvLflDfPKWdZczV5Czg3qWHIU0/x8COPsG0bbN3qxG43GDPmOsqXv86bIVtOv2ueU86y5nze6tatm23vmauWt3C73ZQsWZL33nuPgIAAatSowYEDB3j99devWPwEBQURFBR0Wb/T6fT6L58Vn5kXKG+eU86y5op5+/779OfZAx58kACnkzlzzF1NmtioXNl/c63fNc8pZ1mTnTmzrPgpXrw4AQEBxMXFZeiPi4sj/NzcGZcqVaoUTqczwyWuKlWqEBsbS0pKCoG621BEspvbDf36gWFA06Zw//0kJsKMGebuxx6zNDoRyQLLHnUPDAykRo0arFy5Mr3P7XazcuVKIiMjMz2nTp067N69G7fbnd63a9cuSpUqpcJHRHJGly6wapXZ7tYNbDY++wyOHIHrr4foaEujE5EssHSen5iYGKZMmcIHH3zA9u3b6dKlC4mJielPf7Vu3Zq+F80V36VLF44fP84LL7zArl27WLx4MSNGjKBbt25WfQURyctcLnjvPbM9ejTUrUtaGgwfbna1a2cuZCoiuYul9/xER0dz5MgRBg4cSGxsLNWrV2fp0qXpN0Hv378fu/1CfRYREcGyZcvo2bMnt912G2XKlOGFF17g5ZdftuoriEhedr7wKVAAnnsOgDlzzLW8CheGHj0si0xEroHlNzx3796d7t27Z7pv9erVl/VFRkby/fff53BUIuL3DAM++shsP/MMBAfjdsPIkWZX585QqJB14YlI1lm+vIWIiE+aNw9++MFsn1vK4vPP4fffITQUeve2MDYRuSYqfkRELmUYMHWq2X7uObjjDhIToWfPC11FilgXnohcGxU/IiIXS0kxV2z/+mvz9bkHMN56C/btM5/w0m2GIrmbih8RkYstWnRhAdN+/eD22zl+/MK9PsOGQcGC1oUnItdOxY+IyMUmTjS3PXqk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", "text/plain": [ "
" ] @@ -743,10 +695,10 @@ { "data": { "text/plain": [ - "{'Blue Chased?': np.False_, 'Red Chased?': np.True_}" + "{'Blue Chased?': False, 'Red Chased?': True}" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -769,8 +721,8 @@ "plt.show()\n", "\n", "{\n", - " \"Blue Chased?\": ap.detect_chasing(normal_ratios),\n", - " \"Red Chased?\": ap.detect_chasing(chased_ratios),\n", + " \"Blue Chased?\": ap.is_sales_chased(normal_ratios),\n", + " \"Red Chased?\": ap.is_sales_chased(chased_ratios),\n", "}" ] }, @@ -778,7 +730,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Ratios that include selective appraisals will be clustered around the value of one much more than ratios produced from a CAMA system. We can see this visually in the graph where the cumulative distribution curve shows a discontinuous jump, or 'flat spot', near one." + "Ratios that include selective appraisals will be clustered around the value of one much more than ratios produced from a CAMA system. We can see this visually in the graph where the cumulative distribution curve shows a discontinuous jump, or 'flat spot', near 1." ] }, { @@ -796,12 +748,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -814,8 +766,8 @@ "# Combine sale price and assessed value, calculate cumulative sums\n", "gini_data = combined[[\"sale_price\", \"assessed\"]].sort_values(by=\"sale_price\")\n", "\n", - "sale_price = gini_data[\"sale_price\"]\n", "assessed = gini_data[\"assessed\"]\n", + "sale_price = gini_data[\"sale_price\"]\n", "\n", "lorenz_data_price = pd.DataFrame(\n", " {\n", @@ -860,14 +812,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this graphic, the green line (Line of Equality) represents a hypothetical environment, where property valuations are completely equitable. The axes represent the cumulative percentage of value (y-axis) as the percentage of properties (x-axis) increases.\n", + "In this graphic, the green line (Line of Equality) represents a hypothetical environment where property valuations are completely equitable (all properties have the same value). The axes represent the cumulative percentage of value (y-axis) as the percentage of properties (x-axis) increases.\n", "\n", - "The curves show that for the vast majority of the income distribution, assessed values are closer to the Line of Equality. This can be interpreted two ways:\n", + "The curves show that for the vast majority of the price distribution, assessed values are closer to the Line of Equality. This can be interpreted two ways:\n", "\n", "1. When the assessed value curve is above the sale price curve, the gap between the the two lines at any individual point, represents the cumulative over-assessment for all houses at that value or below.\n", "2. Gini coefficient for sale price is going to be higher than the Gini coefficient for assessed price (larger area between the the curve and the Line of Equality).\n", "\n", - "In this situation, the graph shows slightly regressive property valuations. This is not immediately intuitive, but to conceptualize this, think of an exaggerated \"progressive\" policy, where all houses were valued at $0 with one house responsible for all the assessed value. In this distribution, curve would be at 0 until the final house, where it would jump to 100% of the cumulative value (a Gini of 1). Thus, a higher Gini represents more progressive assessments, where tax assessments become larger as property value increases.\n", + "In this situation, the graph shows slightly regressive property valuations. This is not immediately intuitive, but to conceptualize this, think of an exaggerated \"progressive\" policy, where all houses were valued at $0 with one house responsible for all the assessed value. In this distribution, curve would be at 0 until the final house, where it would jump to 100\\% of the cumulative value (a Gini of 1). Thus, a higher Gini represents more progressive assessments, where tax assessments become larger as property value increases.\n", "\n", "#### KI and MKI\n", "\n", @@ -879,16 +831,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'MKI': 0.9350431709690498, 'KI': -0.02132444068329764}" + "{'MKI': 0.9424756027397724, 'KI': -0.018245001455845455}" ] }, - "execution_count": 10, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -914,10 +866,30 @@ "G_sale = sum(s * (i + 1) for i, s in enumerate(sale_price))\n", "G_sale = 2 * G_sale / sum(sale_price) - (n + 1)\n", "GINI_sale = G_sale / n\n", - "\n", "{\"MKI\": GINI_assessed / GINI_sale, \"KI\": GINI_assessed - GINI_sale}" ] }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'MKI': 0.9424756027397724, 'KI': -0.018245001455845455}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Or directly from the package\n", + "{\"MKI\": ap.mki(assessed, sale_price), \"KI\": ap.ki(assessed, sale_price)}" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -935,7 +907,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "python3", "language": "python", "name": "python3" }, @@ -949,7 +921,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.11.10" }, "vscode": { "interpreter": { diff --git a/docs/source/outliers.rst b/docs/source/outliers.rst index 4394d51..f94b3ee 100644 --- a/docs/source/outliers.rst +++ b/docs/source/outliers.rst @@ -1,5 +1,5 @@ -=========================================================== -Detect outlier values in a vector using IQR/quantile method -=========================================================== +=============================================== +Detect outlier values using IQR/quantile method +=============================================== .. autofunction:: assesspy.is_outlier diff --git a/docs/source/prb.rst b/docs/source/prb.rst index f628ec9..85d739e 100644 --- a/docs/source/prb.rst +++ b/docs/source/prb.rst @@ -3,3 +3,5 @@ Price-Related Bias (PRB) ======================== .. autofunction:: assesspy.prb +.. autofunction:: assesspy.prb_ci +.. autofunction:: assesspy.prb_met diff --git a/docs/source/prd.rst b/docs/source/prd.rst index 0147be5..64d0287 100644 --- a/docs/source/prd.rst +++ b/docs/source/prd.rst @@ -3,3 +3,5 @@ Price-Related Differential (PRD) ================================ .. autofunction:: assesspy.prd +.. autofunction:: assesspy.prd_ci +.. autofunction:: assesspy.prd_met diff --git a/docs/source/quintos_sample.rst b/docs/source/quintos_sample.rst new file mode 100644 index 0000000..3c28030 --- /dev/null +++ b/docs/source/quintos_sample.rst @@ -0,0 +1,5 @@ +================================ +Sample data from Quintos studies +================================ + +.. autofunction:: assesspy.quintos_sample diff --git a/docs/source/ratios_sample.rst b/docs/source/ratios_sample.rst deleted file mode 100644 index 41c2e15..0000000 --- a/docs/source/ratios_sample.rst +++ /dev/null @@ -1,5 +0,0 @@ -======================================================= -Sample of ratio and sales data pulled from CCAO records -======================================================= - -.. autofunction:: assesspy.ratios_sample diff --git a/docs/source/reference.rst b/docs/source/reference.rst index 205a5e0..2c69f82 100644 --- a/docs/source/reference.rst +++ b/docs/source/reference.rst @@ -16,6 +16,7 @@ properties with a similar fair market value should be similarly assessed. :doc:`cod_ci() ` |nbsp| :doc:`cod_met() ` + Price-Related Differential (PRD) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -28,6 +29,7 @@ similarly assessed. :doc:`prd_ci() ` |nbsp| :doc:`prd_met() ` + Price-Related Bias (PRB) ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -42,51 +44,48 @@ increase by 100 percent. Kakwani Index (KI) -^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^ The Kakwani Index (KI) is a Gini-based measure to test for vertical equity. -The output is the cumulative distribution of assessed values minus -the distribution of sale prices. +The output is the ordered cumulative distribution of assessed values minus +the ordered distribution of sale prices. :doc:`ki() ` Modified Kakwani Index (MKI) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Modified Kakwani Index (MKI) is a Gini-based measure to test for vertical -equity. The output is the cumulative distribution of assessed values divided by -the distribution of sale prices. +equity. The output is the ordered cumulative distribution of assessed values +divided by the ordered distribution of sale prices. :doc:`mki() ` |nbsp| -:doc:`mki_met() ` |nbsp| +:doc:`mki_met() ` Other functions ^^^^^^^^^^^^^^^ -| Calculate bootstrapped confidence intervals +| Calculate confidence intervals :doc:`boot_ci() ` -| Detect sales chasing in a vector of sales ratios +| Detect sales chasing in sale ratios + +:doc:`is_sales_chased() ` -:doc:`detect_chasing() ` |nbsp| -:doc:`detect_chasing_cdf() ` |nbsp| -:doc:`detect_chasing_dist() ` +| Detect outlier values -| Calculate bootstrapped confidence intervals +:doc:`is_outlier() ` -:doc:`is_outlier() ` |nbsp| -:doc:`quantile_outlier() ` |nbsp| -:doc:`iqr_outlier() ` Data ---- | Sample data used for testing and demonstrations -:doc:`ratios_sample() ` -:doc:`mki_ki() ` +:doc:`ccao_sample() ` +:doc:`quintos_sample() ` .. |nbsp| unicode:: 0xA0 diff --git a/docs/source/sales_chasing.rst b/docs/source/sales_chasing.rst index b82d389..0da5644 100644 --- a/docs/source/sales_chasing.rst +++ b/docs/source/sales_chasing.rst @@ -2,4 +2,4 @@ Detect sales chasing in a vector of sales ratios ================================================ -.. autofunction:: assesspy.detect_chasing +.. autofunction:: assesspy.is_sales_chased diff --git a/pyproject.toml b/pyproject.toml index 4cbd2dc..472f570 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "assesspy" -version = "1.2.0" +version = "2.0.0" description = "Python package for measuring assessment performance" keywords = ["assessment", "property taxes", "local government"] authors = [ @@ -15,7 +15,8 @@ classifiers = [ "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12" + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13" ] license = {file = "LICENSE"} readme = "README.md" @@ -24,7 +25,6 @@ dependencies = [ "numpy >= 1.23.0", "pandas >= 1.4.0", "pyarrow >= 9.0.0", - "scipy >= 1.8.1", "statsmodels >= 0.13.0" ] @@ -33,7 +33,7 @@ Repository = "https://github.com/ccao-data/assesspy" Documentation = "https://ccao-data.github.io/assesspy/" [project.optional-dependencies] -test = [ +dev = [ "setuptools >= 61.0", "pytest >= 7.3.0", "pytest-cov >= 4.1.0", @@ -71,7 +71,7 @@ testpaths = "assesspy/tests" legacy_tox_ini = """ [tox] min_version = 4.0 -envlist = py39, py310, py311, py312 +envlist = py39, py310, py311, py312, py313 [testenv] deps = @@ -94,7 +94,7 @@ reportUnusedImport = false github_username = "ccao-data" github_repository = "assesspy" project = "assesspy" -copyright = "2022, Cook County Assessor's Office" +copyright = "2024, Cook County Assessor's Office" language = "en" package_root = "assesspy" extensions = [