diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..bf53a6c --- /dev/null +++ b/.pylintrc @@ -0,0 +1,377 @@ +[MASTER] +# Use multiple processes to speed up Pylint. +jobs=1 + +init-hook='import sys; sys.path.append("knead/")' + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + +# Allow optimization of some AST trees. This will activate a peephole AST +# optimizer, which will apply various small optimizations. For instance, it can +# be used to obtain the result of joining multiple strings with the addition +# operator. Joining a lot of strings can lead to a maximum recursion error in +# Pylint and this flag can prevent that. It has one side effect, the resulting +# AST will be different than the one from reality. +optimize-ast=no + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED +confidence= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once).You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +# +# Disable warnings, missing-docstring errors and wrong indentation errors +disable=W,C0111,C0330 + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time. See also the "--disable" option for examples. +enable=import-error, + import-self, + reimported, + wildcard-import, + misplaced-future, + relative-import, + deprecated-module, + unpacking-non-sequence, + invalid-all-object, + undefined-all-variable, + used-before-assignment, + cell-var-from-loop, + global-variable-undefined, + dangerous-default-value, + redefined-builtin, + redefine-in-handler, + unused-import, + unused-wildcard-import, + global-variable-not-assigned, + undefined-loop-variable, + global-statement, + global-at-module-level, + bad-open-mode, + redundant-unittest-assert, + boolean-datetime, + unused-variable + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg +# mypackage.mymodule.MyReporterClass. +output-format=colorized + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". +files-output=no + +# Tells whether to display a full report or only the messages +reports=no + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +[BASIC] + +# List of builtins function names that should not be used, separated by a comma +bad-functions=map,filter,input + +# Good variable names which should always be accepted, separated by a comma +good-names=a,b,c,f,i,j,k,x,y,_,fig,ax + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=yes + +# Regular expression matching correct method names +method-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for method names +method-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for function names +function-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Naming hint for module names +module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression matching correct attribute names +attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for attribute names +attr-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Naming hint for class attribute names +class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Regular expression matching correct constant names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Naming hint for constant names +const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Naming hint for class names +class-name-hint=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression matching correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for argument names +argument-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming hint for inline iteration names +inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$ + +# Regular expression matching correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming hint for variable names +variable-name-hint=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + + +[ELIF] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + + +[FORMAT] + +# Maximum number of characters on a single line. +max-line-length=100 + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma,dict-separator + +# Maximum number of lines in a module +max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + + +[LOGGING] + +# Logging modules to check that the string format arguments are in logging +# function parameter format +logging-modules=logging + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME,XXX,TODO + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=4 + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + + +[SPELLING] + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[TYPECHECK] + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# List of classes names for which member attributes should not be checked +# (useful for classes with attributes dynamically set). This supports can work +# with qualified names. +ignored-classes= + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=_$|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_,_cb + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__,__new__,setUp + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.* + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of branch for function / method body +max-branches=12 + +# Maximum number of statements in function / method body +max-statements=50 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of boolean expressions in a if statement +max-bool-expr=5 + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=optparse + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "Exception" +overgeneral-exceptions=Exception diff --git a/Makefile b/Makefile index 5905a62..0e5b0e1 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: help venv test publish clean +.PHONY: help venv lint-black lint-pylint lint test check black publish clean .DEFAULT_GOAL = help PYTHON = python3 @@ -21,8 +21,27 @@ venv: # Set up Python virtual environment. ) @printf "\n\nVirtual environment created! \033[1;34mRun \`source ${VENV_PATH}/bin/activate\` to activate it.\033[0m\n\n\n" -test: # Run test scripts. +lint-black: + @printf "Checking code style with black...\n" + black *.py --check --target-version=py36 + @printf "\033[1;34mBlack passes!\033[0m\n\n" + +lint-pylint: + @printf "Checking code style with pylint...\n" + pylint *.py --rcfile=.pylintrc + @printf "\033[1;34mPylint passes!\033[0m\n\n" + +lint: lint-black lint-pylint # Check code style with black and pylint. + +test: clean # Run test scripts. + @printf "Running test script...\n" ${SHELL} scripts/test.sh + @printf "\033[1;34mTests pass!\033[0m\n\n" + +check: clean lint test # Alias for `make clean lint test`. + +black: # Format code in-place with black. + black *.py --target-version=py36 publish: # Run notebook in-place and generate HTML files. jupyter nbconvert --to notebook --inplace --execute tests-as-linear.ipynb @@ -30,4 +49,4 @@ publish: # Run notebook in-place and generate HTML files. mv tests-as-linear.html index.html clean: # Clean directory. - rm -rf _site/ + rm -rf _site/ __pycache__/ diff --git a/index.html b/index.html index 9699e87..ccaea6f 100644 --- a/index.html +++ b/index.html @@ -13196,6 +13196,7 @@
# Reproducible results
-np.random.seed(1859)
-
-# TODO any plt stuff, possibly in a function?
-
# Correlated data with fixed correlation
correlated_data = pd.DataFrame()
-correlated_data["x"] = np.random.normal(0.5, 0.5, 30)
-correlated_data["y"] = 0.8 * correlated_data["x"] + 0.2 + 0.1*np.random.randn(30)
+correlated_data["x"] = np.random.normal(0.5, 0.5, 20)
+correlated_data["y"] = 0.9 * correlated_data["x"] + 0.2 + 0.1*np.random.randn(20)
correlated_data.head()
data = pd.DataFrame()
@@ -13369,7 +13356,7 @@ 2 Settings and toy data
- Out[5]:
+ Out[4]:
@@ -13401,38 +13388,38 @@ 2 Settings and toy data
0
- 1.032769
- -0.010210
- 1.671794
- -1.682004
+ 0.370360
+ 0.634343
+ -0.111973
+ 0.746316
1
- -0.063599
- 1.065212
- 1.987121
- -0.921908
+ -1.403470
+ -0.556456
+ -0.304594
+ -0.251862
2
- -0.855739
- 0.554099
- 1.002813
- -0.448714
+ 0.006593
+ -0.183445
+ 0.216582
+ -0.400027
3
- 1.879184
- 0.579551
- -0.034006
- 0.613557
+ -1.242953
+ -0.274897
+ 0.194504
+ -0.469401
4
- 0.782369
- -2.315127
- -0.553362
- -1.761765
+ -0.504203
+ -0.639618
+ 1.453154
+ -2.092772
@@ -13458,7 +13445,7 @@ 3 Pearson and Spearman correlation
-In [6]:
+In [5]:
res = smf.ols(formula="y ~ 1 + x", data=correlated_data).fit()
@@ -13472,15 +13459,11 @@ 3 Pearson and Spearman correlation
-In [7]:
+In [6]:
-fig, ax = plt.subplots(figsize=[10, 8])
-ax.scatter(correlated_data["y"], correlated_data["x"], color="k")
-ax.axhline(intercept, color="b", label=r"$\beta_0$ (Intercept)")
-ax.plot(ax.get_xlim(), [slope*x + intercept for x in ax.get_xlim()],
- color="r", label=r"$\beta_1$ (Slope)")
-ax.legend();
+plots.linear_regression_plot(correlated_data, intercept, slope)
+plt.show()
@@ -13499,7 +13482,7 @@ 3 Pearson and Spearman correlation
-
@@ -13524,7 +13507,7 @@ 3 Pearson and Spearman correlation
-In [8]:
+In [7]:
ranked_data = np.argsort(correlated_data, axis=0)
@@ -13539,28 +13522,11 @@ 3 Pearson and Spearman correlation
-In [9]:
+In [8]:
-to_str1 = lambda x: "{:.1f}".format(x)
-to_str2 = lambda x: "{:d}".format(x)
-
-fig, axarr = plt.subplots(ncols=2, figsize=[18, 8])
-
-for ax, dataset, to_str, title, a, b in zip(axarr,
- [correlated_data, ranked_data],
- [to_str1, to_str2],
- ["Pearson", "Spearman"],
- [slope, slope_spearman],
- [intercept, intercept_spearman]):
- ax.set_title(title)
- ax.scatter(dataset["y"], dataset["x"], color="k")
- annotations = "(" + dataset["x"].apply(to_str) + ", " + dataset["x"].apply(to_str) + ")"
- for i, annot in enumerate(annotations):
- ax.annotate(annot, (dataset["y"][i], dataset["x"][i]), color="grey")
- ax.axhline(a, color="b", label=r"$\beta_0$ (Intercept)")
- ax.plot(ax.get_xlim(), [a*x + b for x in ax.get_xlim()], color="r", label=r"$\beta_1$ (Slope)")
- ax.legend(fontsize="large")
+plots.pearson_spearman_plot(correlated_data, ranked_data, slope, slope_spearman, intercept, intercept_spearman)
+plt.show()
@@ -13579,7 +13545,7 @@ 3 Pearson and Spearman correlation
-
@@ -13601,7 +13567,7 @@ 3.0.2 Theory: rank-transformation
-In [10]:
+In [9]:
def signed_rank(x, axis=-1):
@@ -13624,7 +13590,7 @@ 3.0.3 Python code: Pearson corre
-In [11]:
+In [10]:
scaled_data = correlated_data / correlated_data.std()
@@ -13641,19 +13607,12 @@ 3.0.3 Python code: Pearson corre
-In [12]:
+In [11]:
-# Tabulate and display
-results = [res1, res2]
-df = pd.DataFrame(index=["scipy.stats.pearsonr", "smf.ols", "smf.ols (scaled)"])
-df["slope"] = [r] + [res.params.x for res in results]
-df["p-values"] = [p] + [res.pvalues.x for res in results]
-df["t-values"] = [None] + [res.tvalues.x for res in results]
-df["0.025 CI"] = [None] + [res.conf_int().loc["x", 0] for res in results]
-df["0.975 CI"] = [None] + [res.conf_int().loc["x", 1] for res in results]
-
-df
+utils.tabulate_results([r, p, None, None, None],
+ [res1, res2],
+ ["scipy.stats.pearsonr", "smf.ols", "smf.ols (scaled)"])
@@ -13666,7 +13625,7 @@ 3.0.3 Python code: Pearson corre
- Out[12]:
+ Out[11]:
@@ -13689,7 +13648,7 @@ 3.0.3 Python code: Pearson corre
- slope
+ value
p-values
t-values
0.025 CI
@@ -13699,27 +13658,27 @@ 3.0.3 Python code: Pearson corre
scipy.stats.pearsonr
- 0.979512
- 4.963806e-21
+ 0.981042
+ 2.804604e-14
NaN
NaN
NaN
smf.ols
- 0.847384
- 4.963806e-21
- 25.736805
- 0.779941
- 0.914828
+ 0.861270
+ 2.804604e-14
+ 21.47749
+ 0.777021
+ 0.945520
smf.ols (scaled)
- 0.979512
- 4.963806e-21
- 25.736805
- 0.901552
- 1.057471
+ 0.981042
+ 2.804604e-14
+ 21.47749
+ 0.885077
+ 1.077008
@@ -13744,7 +13703,7 @@ 3.0.4 Python code: Spearman cor
-In [13]:
+In [12]:
ranked_data = np.argsort(correlated_data, axis=0)
@@ -13760,18 +13719,12 @@ 3.0.4 Python code: Spearman cor
-In [14]:
+In [13]:
-# Tabulate and display
-df = pd.DataFrame(index=["scipy.stats.spearmanr", "smf.ols (ranked)"])
-df["slope"] = [r, res.params.x]
-df["p-values"] = [p, res.pvalues.x]
-df["t-values"] = [None, res.tvalues.x]
-df["0.025 CI"] = [None, res.conf_int().loc["x", 0]]
-df["0.975 CI"] = [None, res.conf_int().loc["x", 1]]
-
-df
+utils.tabulate_results([r, p, None, None, None],
+ res,
+ ["scipy.stats.spearmanr", "smf.ols (ranked)"])
@@ -13784,7 +13737,7 @@ 3.0.4 Python code: Spearman cor
- Out[14]:
+ Out[13]:
@@ -13807,7 +13760,7 @@ 3.0.4 Python code: Spearman cor
- slope
+ value
p-values
t-values
0.025 CI
@@ -13817,19 +13770,19 @@ 3.0.4 Python code: Spearman cor
scipy.stats.spearmanr
- 0.308565
- 0.097109
+ 0.566917
+ 0.009146
NaN
NaN
NaN
smf.ols (ranked)
- 0.308565
- 0.097109
- 1.716534
- -0.059658
- 0.676788
+ 0.566917
+ 0.009146
+ 2.919762
+ 0.158991
+ 0.974844
@@ -13857,12 +13810,12 @@ 4 One mean¶
-In [15]:
+In [14]:
-signed_rank_data = signed_rank(data, axis=0)
-res = smf.ols(formula="y ~ 1", data=signed_rank_data).fit()
-intercept_wilcoxon = res.params
+signed_rank_correlated_data = signed_rank(correlated_data, axis=0)
+res = smf.ols(formula="y ~ 1", data=signed_rank_correlated_data).fit()
+intercept_wilcoxon = res.params.Intercept
@@ -13872,26 +13825,11 @@ 4 One mean¶
-In [16]:
+In [15]:
-to_str1 = lambda x: "{:.1f}".format(x)
-to_str2 = lambda x: "{:d}".format(x)
-
-fig, axarr = plt.subplots(ncols=2, figsize=[18, 8])
-
-for ax, dataset, to_str, title, b in zip(axarr,
- [data.y, signed_rank(data.y)],
- [to_str1, to_str1],
- ["$t$-test", "Wilcoxon"],
- [intercept, intercept_wilcoxon]):
- ax.set_title(title)
- ax.scatter(np.ones(50), dataset, color="k")
- annotations = dataset.apply(to_str)
- for i, annot in enumerate(annotations):
- ax.annotate(annot, (1, dataset[i]), color="grey")
- ax.axhline(a, color="b", label=r"$\beta_0$ (Intercept)")
- ax.legend(fontsize="large")
+plots.ttest_wilcoxon_plot(correlated_data, intercept, intercept_wilcoxon)
+plt.show()
@@ -13910,7 +13848,7 @@ 4 One mean¶
4.1.2 Python code: One-sample $t
@@ -13931,7 +13869,7 @@
-In [17]:
+In [16]:
t, p = scipy.stats.ttest_1samp(data.y, 0)
@@ -13945,19 +13883,13 @@ 4.1.2 Python code: One-sample $t
-In [18]:
+In [17]:
-# Tabulate and display
-df = pd.DataFrame(index=["scipy.stats.ttest_1samp", "smf.ols (y ~ 1)"])
-df["slope"] = [None, res.params.Intercept]
-df["p-values"] = [p, res.pvalues.Intercept]
-df["t-values"] = [t, res.tvalues.Intercept]
-df["df"] = [None, res.df_resid]
-df["0.025 CI"] = [None, res.conf_int().loc["Intercept", 0]]
-df["0.975 CI"] = [None, res.conf_int().loc["Intercept", 1]]
-
-df
+utils.tabulate_results([None, p, t, None, None],
+ res,
+ ["scipy.stats.ttest_1samp", "smf.ols (y ~ 1)"],
+ x=False)
@@ -13970,7 +13902,7 @@ 4.1.2 Python code: One-sample $t
- Out[18]:
+ Out[17]:
@@ -13993,10 +13925,9 @@ 4.1.2 Python code: One-sample $t
- slope
+ value
p-values
t-values
- df
0.025 CI
0.975 CI
@@ -14005,20 +13936,18 @@ 4.1.2 Python code: One-sample $t
scipy.stats.ttest_1samp
NaN
- 0.016092
- 2.493053
- NaN
+ 0.882318
+ 0.148805
NaN
NaN
smf.ols (y ~ 1)
- 0.369656
- 0.016092
- 2.493053
- 49.0
- 0.071687
- 0.667624
+ 0.019429
+ 0.882318
+ 0.148805
+ -0.242953
+ 0.281811
@@ -14041,7 +13970,7 @@ 4.1.3 Python code: Wilcoxo
-In [19]:
+In [18]:
signed_rank_data = signed_rank(data, axis=0)
@@ -14058,19 +13987,13 @@ 4.1.3 Python code: Wilcoxo
-In [20]:
+In [19]:
-# Tabulate and display
-df = pd.DataFrame(index=["scipy.stats.wilcoxon", "smf.ols (y ~ 1, signed rank)"])
-df["slope"] = [None, res.params.Intercept]
-df["p-values"] = [p, res.pvalues.Intercept]
-df["t-values"] = [None, res.tvalues.Intercept]
-df["df"] = [None, res.df_resid]
-df["0.025 CI"] = [None, res.conf_int().loc["Intercept", 0]]
-df["0.975 CI"] = [None, res.conf_int().loc["Intercept", 1]]
-
-df
+utils.tabulate_results([None, p, None, None, None],
+ res,
+ ["scipy.stats.wilcoxon", "smf.ols (y ~ 1, signed rank)"],
+ x=False)
@@ -14083,7 +14006,7 @@ 4.1.3 Python code: Wilcoxo
- Out[20]:
+ Out[19]:
@@ -14106,10 +14029,9 @@ 4.1.3 Python code: Wilcoxo
- slope
+ value
p-values
t-values
- df
0.025 CI
0.975 CI
@@ -14118,20 +14040,18 @@ 4.1.3 Python code: Wilcoxo
scipy.stats.wilcoxon
NaN
- 0.017335
- NaN
+ 0.942284
NaN
NaN
NaN
smf.ols (y ~ 1, signed rank)
- 7.62
- 0.057262
- 1.947136
- 49.0
- -0.244352
- 15.484352
+ -2.78
+ 0.494895
+ -0.687683
+ -10.903825
+ 5.343825
@@ -14156,7 +14076,7 @@ 4.2 Paired sampl
-In [21]:
+In [20]:
# TODO
@@ -14175,19 +14095,6 @@ 4.2 Paired sampl
-
-
-
-In [22]:
-
-
-# TODO
-
-
-
-
-
-
@@ -14198,7 +14105,7 @@ 4.2.2 Python code: Paired sam
-In [23]:
+In [21]:
t, p = scipy.stats.ttest_ind(data.y, data.y2)
@@ -14212,19 +14119,13 @@ 4.2.2 Python code: Paired sam
-In [24]:
+In [22]:
-# Tabulate and display
-df = pd.DataFrame(index=["scipy.stats.ttest_ind", "smf.ols (y_sub_y2 ~ 1)"])
-df["slope"] = [None, res.params.Intercept]
-df["p-values"] = [p, res.pvalues.Intercept]
-df["t-values"] = [t, res.tvalues.Intercept]
-df["df"] = [None, res.df_resid]
-df["0.025 CI"] = [None, res.conf_int().loc["Intercept", 0]]
-df["0.975 CI"] = [None, res.conf_int().loc["Intercept", 1]]
-
-df
+utils.tabulate_results([None, p, t, None, None],
+ res,
+ ["scipy.stats.ttest_ind", "smf.ols (y_sub_y2 ~ 1)"],
+ x=False)
@@ -14237,7 +14138,7 @@ 4.2.2 Python code: Paired sam
- Out[24]:
+ Out[22]:
@@ -14260,10 +14161,9 @@ 4.2.2 Python code: Paired sam
- slope
+ value
p-values
t-values
- df
0.025 CI
0.975 CI
@@ -14272,20 +14172,18 @@ 4.2.2 Python code: Paired sam
scipy.stats.ttest_ind
NaN
- 0.699144
- -0.387612
- NaN
+ 0.119175
+ -1.571994
NaN
NaN
smf.ols (y_sub_y2 ~ 1)
- -0.079916
- 0.702639
- -0.384001
- 49.0
- -0.498137
- 0.338305
+ -0.278406
+ 0.075029
+ -1.818975
+ -0.585985
+ 0.029173
@@ -14308,7 +14206,7 @@ 4.2.3 Python code: Wilcoxon m
-In [25]:
+In [23]:
# FIXME disagreement?
@@ -14323,19 +14221,13 @@ 4.2.3 Python code: Wilcoxon m
-In [26]:
+In [24]:
-# Tabulate and display
-df = pd.DataFrame(index=["scipy.stats.wilcoxon", "smf.ols (y_sub_y2 ~ 1)"])
-df["slope"] = [None, res.params.Intercept]
-df["p-values"] = [p, res.pvalues.Intercept]
-df["t-values"] = [None, res.tvalues.Intercept]
-df["df"] = [None, res.df_resid]
-df["0.025 CI"] = [None, res.conf_int().loc["Intercept", 0]]
-df["0.975 CI"] = [None, res.conf_int().loc["Intercept", 1]]
-
-df
+utils.tabulate_results([None, p, None, None, None],
+ res,
+ ["scipy.stats.wilcoxon", "smf.ols (y_sub_y2 ~ 1)"],
+ x=False)
@@ -14348,7 +14240,7 @@ 4.2.3 Python code: Wilcoxon m
- Out[26]:
+ Out[24]:
@@ -14371,10 +14263,9 @@ 4.2.3 Python code: Wilcoxon m
- slope
+ value
p-values
t-values
- df
0.025 CI
0.975 CI
@@ -14383,20 +14274,18 @@ 4.2.3 Python code: Wilcoxon m
scipy.stats.wilcoxon
NaN
- 0.881060
- NaN
+ 0.071808
NaN
NaN
NaN
smf.ols (y_sub_y2 ~ 1)
- 3.22
- 0.428812
- 0.797842
- 49.0
- -4.890423
- 11.330423
+ -5.18
+ 0.200729
+ -1.296931
+ -13.206335
+ 2.846335
@@ -14413,13 +14302,6 @@ 4.2.3 Python code: Wilcoxon m
For large sample sizes (N >> 100), this approaches the sign test to a reasonable degree, but this approximation is too inaccurate to flesh out here.
-
-
-
-
-
-
-
5 Two means¶
5.1 Independent t-test and Mann-Whitney U¶
5.1.1 Theory: As linear models¶
Independent t-test model: two means predict $y$.
$y_i = \beta_0 + \beta_1 x_i \qquad \mathcal{H}_0: \beta_1 = 0$
where $x_i$ is an indicator (0 or 1) saying whether data point $i$ was sampled from one or the other group. Indicator variables (also called "dummy coding")) underly a lot of linear models and we'll take an aside to see how it works in a minute.
@@ -14435,7 +14317,7 @@ 5.1.2 Theory: Dummy coding
-In [27]:
+In [25]:
# TODO
@@ -14462,7 +14344,7 @@ 5.1.4 Python code: independent t-
-In [28]:
+In [26]:
# TODO
@@ -14482,7 +14364,7 @@ 5.1.5 Python code: Mann-Whitney U
-In [29]:
+In [27]:
+
+
+
+5.2 Welch’s t-test¶
This is identical to the (Student's) independent t-test above except that Student's assumes identical variances and Welch's t-test does not. So the linear model is the same and the trick is in the variances, which I won't go further into here.
+
+
+
+
+
+
+In [28]:
+
+
+t, p = scipy.stats.ttest_ind(data.y, data.y2, equal_var=False)
+
+
+
+
+
+
diff --git a/plots.py b/plots.py
new file mode 100644
index 0000000..fe96198
--- /dev/null
+++ b/plots.py
@@ -0,0 +1,91 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from utils import signed_rank, format_decimals_factory
+
+
+def linear_regression_plot(data, intercept, slope):
+ fig, ax = plt.subplots(figsize=[10, 8])
+ ax.scatter(data["y"], data["x"], color="k")
+ ax.axhline(intercept, color="b", label=r"$\beta_0$ (Intercept)")
+ ax.plot(
+ ax.get_xlim(),
+ [slope * x + intercept for x in ax.get_xlim()],
+ color="r",
+ label=r"$\beta_1$ (Slope)",
+ )
+ ax.legend()
+
+ return fig, ax
+
+
+# pylint: disable=R0913,R0914
+def pearson_spearman_plot(
+ data_pearson,
+ data_spearman,
+ slope_pearson,
+ slope_spearman,
+ intercept_pearson,
+ intercept_spearman,
+):
+ fig, axarr = plt.subplots(ncols=2, figsize=[18, 8])
+
+ for ax, dataset, to_str, title, a, b in zip(
+ axarr,
+ [data_pearson, data_spearman],
+ [format_decimals_factory(), format_decimals_factory(0)],
+ ["Pearson", "Spearman"],
+ [slope_pearson, slope_spearman],
+ [intercept_pearson, intercept_spearman],
+ ):
+ # Plot
+ ax.scatter(dataset["y"], dataset["x"], color="k")
+
+ # Annotate data points
+ annotations = (
+ "(" + dataset["x"].apply(to_str) + ", " + dataset["x"].apply(to_str) + ")"
+ )
+ for i, annot in enumerate(annotations):
+ ax.annotate(annot, (dataset["y"][i], dataset["x"][i]), color="grey")
+
+ # Plot lines
+ ax.axhline(a, color="b", label=r"$\beta_0$ (Intercept)")
+ ax.plot(
+ ax.get_xlim(),
+ [a * x + b for x in ax.get_xlim()],
+ color="r",
+ label=r"$\beta_1$ (Slope)",
+ )
+
+ # Decorate
+ ax.set_title(title)
+ ax.legend(fontsize="large")
+
+ return fig, axarr
+
+
+def ttest_wilcoxon_plot(data, intercept_ttest, intercept_wilcoxon):
+ fig, axarr = plt.subplots(ncols=2, figsize=[18, 8])
+
+ for ax, dataset, to_str, title, b in zip(
+ axarr,
+ [data.y, signed_rank(data.y)],
+ [format_decimals_factory(), format_decimals_factory(0)],
+ ["$t$-test", "Wilcoxon"],
+ [intercept_ttest, intercept_wilcoxon],
+ ):
+ # Scatter plot
+ ax.scatter(np.ones_like(dataset), dataset, color="k")
+
+ # Annotate data points
+ annotations = dataset.apply(to_str)
+ for i, annot in enumerate(annotations):
+ ax.annotate(annot, (1, dataset[i]), color="grey")
+
+ # Plot lines
+ ax.axhline(b, color="b", label=r"$\beta_0$ (Intercept)")
+
+ # Decorate
+ ax.set_title(title)
+ ax.legend(fontsize="large")
+
+ return fig, axarr
diff --git a/requirements.txt b/requirements.txt
index b843e1e..ad37b91 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,8 +1,10 @@
-pandas==0.24.2
-patsy==0.5.1
+black==19.3b0
jupyter==1.0.0
matplotlib==3.1.0
nbdime==1.0.6
numpy==1.16.4
+pandas==0.24.2
+patsy==0.5.1
+pylint==2.3.1
scipy==1.2.0
statsmodels==0.9.0
diff --git a/tests-as-linear.ipynb b/tests-as-linear.ipynb
index d080b79..8b7e2cd 100644
--- a/tests-as-linear.ipynb
+++ b/tests-as-linear.ipynb
@@ -53,7 +53,8 @@
" - [5.1.2 Theory: Dummy coding](#5.1.2-Theory:-Dummy-coding)\n",
" - [5.1.3 Theory: Dummy coding (continued)](#5.1.3-Theory:-Dummy-coding-(continued))\n",
" - [5.1.4 Python code: independent t-test](#5.1.4-Python-code:-independent-t-test)\n",
- " - [5.1.5 Python code: Mann-Whitney U](#5.1.5-Python-code:-Mann-Whitney-U)\n"
+ " - [5.1.5 Python code: Mann-Whitney U](#5.1.5-Python-code:-Mann-Whitney-U)\n",
+ " - [5.2 Welch’s t-test](#5.2-Welch’s-t-test)"
],
"text/plain": [
""
@@ -109,6 +110,8 @@
"import scipy\n",
"import statsmodels.formula.api as smf\n",
"import matplotlib.pyplot as plt\n",
+ "import plots\n",
+ "np.random.seed(1618) # Reproducible results\n",
"plt.style.use('seaborn-whitegrid')"
]
},
@@ -116,18 +119,6 @@
"cell_type": "code",
"execution_count": 3,
"metadata": {},
- "outputs": [],
- "source": [
- "# Reproducible results\n",
- "np.random.seed(1859)\n",
- "\n",
- "# TODO any plt stuff, possibly in a function?"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
"outputs": [
{
"data": {
@@ -157,28 +148,28 @@
" \n",
" \n",
" 0 \n",
- " 0.240200 \n",
- " 0.404321 \n",
+ " -0.290010 \n",
+ " -0.084340 \n",
" \n",
" \n",
" 1 \n",
- " 0.874423 \n",
- " 0.773233 \n",
+ " 0.917701 \n",
+ " 1.039325 \n",
" \n",
" \n",
" 2 \n",
- " -0.205784 \n",
- " -0.071019 \n",
+ " 0.817674 \n",
+ " 0.899141 \n",
" \n",
" \n",
" 3 \n",
- " 0.291822 \n",
- " 0.622727 \n",
+ " 0.089775 \n",
+ " 0.335860 \n",
" \n",
" \n",
" 4 \n",
- " 0.971538 \n",
- " 0.941467 \n",
+ " 0.300801 \n",
+ " 0.467720 \n",
" \n",
" \n",
"\n",
@@ -186,14 +177,14 @@
],
"text/plain": [
" x y\n",
- "0 0.240200 0.404321\n",
- "1 0.874423 0.773233\n",
- "2 -0.205784 -0.071019\n",
- "3 0.291822 0.622727\n",
- "4 0.971538 0.941467"
+ "0 -0.290010 -0.084340\n",
+ "1 0.917701 1.039325\n",
+ "2 0.817674 0.899141\n",
+ "3 0.089775 0.335860\n",
+ "4 0.300801 0.467720"
]
},
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -201,15 +192,15 @@
"source": [
"# Correlated data with fixed correlation\n",
"correlated_data = pd.DataFrame()\n",
- "correlated_data[\"x\"] = np.random.normal(0.5, 0.5, 30)\n",
- "correlated_data[\"y\"] = 0.8 * correlated_data[\"x\"] + 0.2 + 0.1*np.random.randn(30)\n",
+ "correlated_data[\"x\"] = np.random.normal(0.5, 0.5, 20)\n",
+ "correlated_data[\"y\"] = 0.9 * correlated_data[\"x\"] + 0.2 + 0.1*np.random.randn(20)\n",
"\n",
"correlated_data.head()"
]
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -242,38 +233,38 @@
" \n",
" \n",
" 0 \n",
- " 1.032769 \n",
- " -0.010210 \n",
- " 1.671794 \n",
- " -1.682004 \n",
+ " 0.370360 \n",
+ " 0.634343 \n",
+ " -0.111973 \n",
+ " 0.746316 \n",
" \n",
" \n",
" 1 \n",
- " -0.063599 \n",
- " 1.065212 \n",
- " 1.987121 \n",
- " -0.921908 \n",
+ " -1.403470 \n",
+ " -0.556456 \n",
+ " -0.304594 \n",
+ " -0.251862 \n",
" \n",
" \n",
" 2 \n",
- " -0.855739 \n",
- " 0.554099 \n",
- " 1.002813 \n",
- " -0.448714 \n",
+ " 0.006593 \n",
+ " -0.183445 \n",
+ " 0.216582 \n",
+ " -0.400027 \n",
" \n",
" \n",
" 3 \n",
- " 1.879184 \n",
- " 0.579551 \n",
- " -0.034006 \n",
- " 0.613557 \n",
+ " -1.242953 \n",
+ " -0.274897 \n",
+ " 0.194504 \n",
+ " -0.469401 \n",
" \n",
" \n",
" 4 \n",
- " 0.782369 \n",
- " -2.315127 \n",
- " -0.553362 \n",
- " -1.761765 \n",
+ " -0.504203 \n",
+ " -0.639618 \n",
+ " 1.453154 \n",
+ " -2.092772 \n",
" \n",
" \n",
"\n",
@@ -281,14 +272,14 @@
],
"text/plain": [
" x y y2 y_sub_y2\n",
- "0 1.032769 -0.010210 1.671794 -1.682004\n",
- "1 -0.063599 1.065212 1.987121 -0.921908\n",
- "2 -0.855739 0.554099 1.002813 -0.448714\n",
- "3 1.879184 0.579551 -0.034006 0.613557\n",
- "4 0.782369 -2.315127 -0.553362 -1.761765"
+ "0 0.370360 0.634343 -0.111973 0.746316\n",
+ "1 -1.403470 -0.556456 -0.304594 -0.251862\n",
+ "2 0.006593 -0.183445 0.216582 -0.400027\n",
+ "3 -1.242953 -0.274897 0.194504 -0.469401\n",
+ "4 -0.504203 -0.639618 1.453154 -2.092772"
]
},
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -322,7 +313,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -332,14 +323,12 @@
},
{
"cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "scrolled": false
- },
+ "execution_count": 6,
+ "metadata": {},
"outputs": [
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlQAAAHNCAYAAADYGeU/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdeXxU1f3/8VeCW2NdoS61khQtF1zqgor6c9eKVtywKjqoaDVuKOCOqVqXuKEi4BoVVBxXREVcS3EvfK1BKkK4uJG4C4WKGPbM748LBJAlIZPcyczr+XjwkLlz586H45B5c8655+SlUikkSZK05vLjLkCSJKm5M1BJkiQ1kIFKkiSpgQxUkiRJDWSgkiRJaqC1muJNysvLvZVQkiQ1Gx06dMirz/lNEqgAOnTokLZrVVRU0L59+7RdrzmzLSK2Qy3bopZtUcu2qGVbRGyHWsu3RXl5eb2v4ZCfJElSAxmoJEmSGshAJUmS1EAGKkmSpAYyUEmSJDWQgUqSJKmBDFSSJEkNZKCSJElqIAOVJElSAxmoJEmSGshABfTv358jjzySTp068dRTT8VdjiRJamZyPlC98847VFRU8PzzzzNgwABGjhy52tfMmDGDq6++GoCvvvqKE044YaXnzp07l2eeeSZt9a7O0u83bdo0rrvuuiZ7b0mSclXOB6pRo0Zx7LHHsmDBApLJJIceeuhqX3PnnXdy8skn1+n6U6dObdJAtfT7tWrVivXXX5/333+/yd5fkqRctFbcBQA8+igMGlT386urW1NQsOpzzjgDTj119deaMGECO+64Ix07dmSrrbaiT58+qzx/1qxZjB8/nmuvvfYXzw0bNoy33nqLOXPmUFVVxVlnncXYsWP59NNPueuuuzj77LO55pprqKyspKamhl69evH111/z7LPPUlNTw4UXXsguu+xCnz59+Oabb5g/fz5XXXUVO+ywwwpfN3LkSH744QfmzZvH+eefT6dOnbjvvvuWvF+PHj3o3LkzAwcOZI899lh9Y0iSpDWSEYEqLjU1NXz33Xd06dKFP//5z1x99dUMHjyY7t27c+2117L22muzxx57cNRRRy15zbhx4/j973+/0mvOmjWLhx56iClTpnDOOefw4IMPMnnyZHr06MHjjz/OJptswo033siMGTPo1q0bf/3rX9lwww259957AXj44YfZaqut6NevH1OmTOHNN9+koqJiha+bPXs21157LZtvvjnHH388Bx98MOecc86S9wPYdtttKS8vb9yGlCQpx2VEoDr11Lr1Ji1WUVFF+/btG/y+X3zxBYWFhQCst9567LrrrkybNo3XX3+dTp06cdBBB9GrV69lAtWMGTNo1arVSq/Zrl07ALbcckvmzZu3zHOTJ0+mvLycjz76CIAFCxYwY8aMZQLa559/zn777QdAUVER3bt35+9///sKX7f77ruTn59Pq1at2HDDDZk+ffov6mnRogVrrbUWNTU15Ofn/AivJEmNIqe/YSdOnMj8+fNZuHAh8+bNY8SIERxyyCF8//33bLnllkAUSJbWsmVLZs6cudJr5uXlLfM4Pz+fmpoaANq0acMRRxzBkCFDeOCBBzjssMPYaKONlgk622yzDePHjwfgyy+/5OKLL17p6yZMmABEk89nzZpFy5Ytl3k/gFQqxVprrWWYkiQ1mmQySVFREfn5+RQVFZFMJuMuqcnl9LdsRUUFc+bM4U9/+hNdu3blmGOOoV27dmy++eZ89913AMuEE4CddtqJMAzr/B4tW7Zk/vz59O3bl65du/L555/TrVs3unbtylZbbfWLoNO1a1e++uorunXrxmWXXUb37t1X+rpp06Zx1VVXUVxczDXXXEOLFi2WeT+AMAzZeeedG9hSkiStWDKZpLi4mMrKSlKpFJWVlRQXF+dcqMqIIb+4VFRUcOutt9K2bdtljh966KFcf/31vPnmmxx44IHLPLf++uuzww47MHHiRLbbbjt+97vf8fTTTwPQpUuXJeetu+66jBo1CoAXXnhhyfFbb711lTWtu+663H777b84vvzrhg0bxu67784RRxyxzPDnuuuuu8z7DR8+nEQiscr3lCRpTZWUlFBdXb3MserqakpKSnLq+yenA9Xnn39OmzZtfnG8oKCAm266aaWv69mzJ/369eOGG25ozPIabOrUqcyaNYvddtst7lIkSVmqqqqqXsezVU4HqrfeemuNXteyZcvYw9Ti3rCKioqVnvOb3/zGhT0lSY2qdevWVFZWrvB4LsnpOVSSJKlhSktLKVhucciCggJKS0tjqigeBipJkrTGEokEZWVlFBYWkpeXR2FhIWVlZTk1fwpyfMhPkiQ1XCKRyLkAtTx7qCRJkhrIQCVJktRABipJkqQGMlBJkiQ1kIFKkiSpgQxUQP/+/TnyyCPp1KkTTz31VNzlSJKkZibnA9U777xDRUUFzz//PAMGDGDkyJGrfc2MGTO4+uqrlzwuKyuje/fudOvWjVNOOYWPP/6YYcOGcdttt6WlxmnTprniuSRJGSzn16EaNWoUxx57LAsWLCCZTHLooYeu9jV33nknJ598MgCffvopo0aN4oknniAvL4+Kigouv/xyunfvnrYaW7Vqxfrrr8/777/PHnvskbbrSpKk9MiMQPXoozBoUJ1Pb11dDcstc/8LZ5wBp5662mtNmDCBHXfckY4dO7LVVlvRp0+fVZ4/a9Ysxo8fz7XXXgvABhtswDfffMPQoUPZb7/9aN++PUOHDmXEiBFLXjN//nz69OnDV199xcKFCzn99NOZM2cOI0eO5Oeff2bGjBmcf/75dOrUifnz53PNNddQWVlJTU0NvXr1omPHjnTu3JmBAwcaqCRJykA5PeRXU1PDd999R5cuXRgzZgzbb789gwcP5ssvv+TKK6/kwgsv/MVrxo0bx+9///sljzfffHPuvfdexo4dy4knnshhhx3GG2+8scxrnnrqKTbddFOefPJJBg8ezJ133smMGTOYPXs2gwcPZtCgQdx8880sWLCAZ555hk022YRkMsk999yzZKhv2223pby8vHEbRJIkrZHM6KE69dQ69SYtVlVRQfv27Rv8tl988QWFhYUArLfeeuy6665MmzaNrbfemhtvvHGFgWrGjBm0atVqyePKykp+/etfc9NNNwEwfvx4zjrrLM4+++wl53z22WfsvffeAPz6179mm222YeHChey+++7k5+fTqlUrNtxwQ6ZPn87kyZMpLy/no48+AmDBggVMnz6dTTfdlLXWWouamhry83M6B0uSlHFy+pt54sSJzJ8/n4ULFzJv3jxGjBjBIYccssrXtGzZkpkzZy55HIYh1113HfPmzQPg97//PRtuuOEyoWebbbbhgw8+AKIhw8mTJ5OXl8eECROAaNL5rFmzaNmyJW3atOGII45gyJAhPPDAAxx22GFsvPHGpFIp1lprLcOUJEkZKDN6qGJSUVHBnDlz+NOf/sTGG2/MySefTLt27Vb5mp122mmZu/cOPfRQPvvsM/7yl79QUFBAKpXisssuY+bMmUydOhWAE044gauuuoqTTjqJuXPn0qNHD1KpFNOmTeO0007j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\n",
+ "image/png": "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\n",
"text/plain": [
" "
],
"text/plain": [
- " slope p-values t-values 0.025 CI 0.975 CI\n",
- "scipy.stats.pearsonr 0.979512 4.963806e-21 NaN NaN NaN\n",
- "smf.ols 0.847384 4.963806e-21 25.736805 0.779941 0.914828\n",
- "smf.ols (scaled) 0.979512 4.963806e-21 25.736805 0.901552 1.057471"
+ " value p-values t-values 0.025 CI 0.975 CI\n",
+ "scipy.stats.pearsonr 0.981042 2.804604e-14 NaN NaN NaN\n",
+ "smf.ols 0.861270 2.804604e-14 21.47749 0.777021 0.945520\n",
+ "smf.ols (scaled) 0.981042 2.804604e-14 21.47749 0.885077 1.077008"
]
},
- "execution_count": 12,
+ "execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# Tabulate and display\n",
- "results = [res1, res2]\n",
- "df = pd.DataFrame(index=[\"scipy.stats.pearsonr\", \"smf.ols\", \"smf.ols (scaled)\"])\n",
- "df[\"slope\"] = [r] + [res.params.x for res in results]\n",
- "df[\"p-values\"] = [p] + [res.pvalues.x for res in results]\n",
- "df[\"t-values\"] = [None] + [res.tvalues.x for res in results]\n",
- "df[\"0.025 CI\"] = [None] + [res.conf_int().loc[\"x\", 0] for res in results]\n",
- "df[\"0.975 CI\"] = [None] + [res.conf_int().loc[\"x\", 1] for res in results]\n",
- "\n",
- "df"
+ "utils.tabulate_results([r, p, None, None, None],\n",
+ " [res1, res2],\n",
+ " [\"scipy.stats.pearsonr\", \"smf.ols\", \"smf.ols (scaled)\"])"
]
},
{
@@ -572,7 +533,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
@@ -584,7 +545,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 13,
"metadata": {},
"outputs": [
{
@@ -608,7 +569,7 @@
" \n",
" \n",
" \n",
- " slope \n",
+ " value \n",
" p-values \n",
" t-values \n",
" 0.025 CI \n",
@@ -618,45 +579,39 @@
" \n",
" \n",
" scipy.stats.spearmanr \n",
- " 0.308565 \n",
- " 0.097109 \n",
+ " 0.566917 \n",
+ " 0.009146 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" smf.ols (ranked) \n",
- " 0.308565 \n",
- " 0.097109 \n",
- " 1.716534 \n",
- " -0.059658 \n",
- " 0.676788 \n",
+ " 0.566917 \n",
+ " 0.009146 \n",
+ " 2.919762 \n",
+ " 0.158991 \n",
+ " 0.974844 \n",
" \n",
" \n",
"\n",
"
"
],
"text/plain": [
- " slope p-values t-values 0.025 CI 0.975 CI\n",
- "scipy.stats.spearmanr 0.308565 0.097109 NaN NaN NaN\n",
- "smf.ols (ranked) 0.308565 0.097109 1.716534 -0.059658 0.676788"
+ " value p-values t-values 0.025 CI 0.975 CI\n",
+ "scipy.stats.spearmanr 0.566917 0.009146 NaN NaN NaN\n",
+ "smf.ols (ranked) 0.566917 0.009146 2.919762 0.158991 0.974844"
]
},
- "execution_count": 14,
+ "execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# Tabulate and display\n",
- "df = pd.DataFrame(index=[\"scipy.stats.spearmanr\", \"smf.ols (ranked)\"])\n",
- "df[\"slope\"] = [r, res.params.x]\n",
- "df[\"p-values\"] = [p, res.pvalues.x]\n",
- "df[\"t-values\"] = [None, res.tvalues.x]\n",
- "df[\"0.025 CI\"] = [None, res.conf_int().loc[\"x\", 0]]\n",
- "df[\"0.975 CI\"] = [None, res.conf_int().loc[\"x\", 1]]\n",
- "\n",
- "df"
+ "utils.tabulate_results([r, p, None, None, None],\n",
+ " res,\n",
+ " [\"scipy.stats.spearmanr\", \"smf.ols (ranked)\"])"
]
},
{
@@ -684,23 +639,23 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
- "signed_rank_data = signed_rank(data, axis=0)\n",
- "res = smf.ols(formula=\"y ~ 1\", data=signed_rank_data).fit()\n",
- "intercept_wilcoxon = res.params"
+ "signed_rank_correlated_data = signed_rank(correlated_data, axis=0)\n",
+ "res = smf.ols(formula=\"y ~ 1\", data=signed_rank_correlated_data).fit()\n",
+ "intercept_wilcoxon = res.params.Intercept"
]
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
- "image/png": "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nzFixAgOHz7M5cuXAfj000/p1atXm/433HADycnJ7Nmzh0mTJn2p733PPffw0EMP8eyzzzJ06FB+8Ytf8MQTT+ByuQgKCiI7O7vNpwLx8fE8+eSTLF26FIDo6Gj+4z/+g379+rXb/2rWv0+fPvz+97/n9OnTREVF8dvf/rbdOOLj49m/fz9ZWVlfaiwiIv4kKyvLY/kjNP2dffTRR7lw4QLbtm1zv39UV1cTExPDvHnz3G3r6+spLCykpqaGkJAQUlNTiYiI8Po4pPvQ/YgX7kdcLlenfO3du9fVXR05cqSrQ+gyGrv/eOGFF1zh4eEuwP0VHh7ueuGFF7o6NK/zt999Sx059l//+teu5cuXX/P7PPnkky6Xy+XKzs52FRUVtdtu3759rkcffbTDYvo8X2Xse/bscc2aNesLtX3ppZdcv/71r7/093C5XK7m98hOew/Wl+5HujuN3b+88MILrri4OJfFYnHFx8e7nn76add///d/u86fP+9uU1tb68rOznZ98sknHn3feOMN19atW10ul8t16NAhV0lJiTdD7zD++HtvSfcjX05X349ouYGIj7LZbKxYsYK4uDgsFgtxcXGsWLECm83W1aHJdaqsrIzBgwe3e23YsGHceOONPPTQQxw/fpxp06a1227UqFHcfPPN7NixozND7XSXL19mw4YNPP74410diohIt2ez2SgvL+fw4cM8++yzpKam0rNnT48227Zt484772xzvrKykoSEBAASEhJULFZ0P9JCZ92PaLmBiA+z2WzYbDbKyso6tKKs+KejR49+7nq3p5566gs9z9X9fbujMWPGsGHDhr/brkePHuR+3U2jRUT8REFBAZmZmURGRhIbG8v8+fM9rtfU1HDy5EmmT5/epq/dbsdqtQJN2yHW1dV5JWbpvnQ/8pnOuh9RkkBERL6QPXv2dHUIIiJynWm5JXNKSgoul4vt27czcOBA1qxZw3333cdLL72Ew+EgPz+f1NRUoqKi3P2tVitbtmzh8uXLWCwWgoODu3A00h3ofqTzKUkg4iecTifr16+nurqahoYGJk6ciGEYbdoVFRURFhbG1KlTuyBKERER8SUtt2TOy8sjICCA+++/n379+jF16lTeeOMNgoKCSE1Npa6ujgsXLrRJEnz44Yc89thjbN++nf3793fVUET8hmoSiPiJgwcPEhYWRnp6Og8/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\n",
+ "image/png": "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hkGMsR6Y3vn67m7jjwPvH5BkkiRJkiQpb97LIwmSJEmSJGkPZcNAkiRJkiT1YsNAkiRJkiT1YsNAkiRJkiT1YsNAkvSuNDY2cvnll/OXf/mXnHLKKdx///35jiRJ2s00NTUxf/58ANasWcOtt97KHXfcwYMPPkgul8tvOO0WvB8ZWDYMJEnvyjXXXMNJJ53EU089xVe/+lXmzZv3jq7/xje+wS9/+UsATj/9dJYvX77Day677DJee+21d5V3V9qa4+233+byyy+ntbU135EkabdTW1tLTU0NmzdvBqCmpoaPfOQjXHrppYwcOXKnfi5I3o8M7P2IDQMpobp39LtbsmQJt9xyC/Pnz2f+/PmsW7du8MNpyFu1ahXNzc1ceumlFBUVATB27Nidvv53v/sdzz//PKeccso7+rq1tbXv6PyBsjXH3nvvzcc+9jG+/e1v5zmRJO1+SkpKmDVrVtf7DRs2cNhhhwFw2GGH0dDQkK9o2k14PzLw9yPDdvknShryamtrWbZsGcOHD+91bM2aNVxwwQUcfPDBeUim/tx1F9x++7u/vqWllOLi7Z9z2WVwySU793m/+c1vOOGEE2hvb2flypV87Wtf44orrtjpPN/5znf427/92z6PPf3003zrW9/isMMO47nnnqOtrY0vfelL/OQnPwHg05/+NNXV1UyYMIHHH3+cefPm8ac//YmRI0fyhS98gba2NtLpNMXFxbS0tPDVr36V++67jzvuuIPCwkJKSkq48cYb+73++OOP5+mnn+brX/8648ePp7GxkZEjR3LDDTdwxBFHMHfu3B45zjnnHL7xjW8wZ84cxo0bt9PfA0lKokwmQ1VVFQ0NDZSWlnL99dd3HSspKaG+vp7y8nKeffZZ/vSnP+UvqPrk/Ujy7kecYSAl0LYd/e7WrFnDr371K26//fau6VnStlatWsXkyZO55JJL+PjHP86oUaM466yzALjpppu4+OKLue666/q82duwYQNLly7lpJNO6vfzly1bxmWXXcbChQv5xCc+wX/+53/yta99DYA777yTCRMmUF9fz7e+9S2qq6tZuHAh//qv/8rVV1/Nxo0bee655/jmN7/JT3/6U5qamvjGN77BD37wA2pqajj99NOZN29ev9e3tLQAsHLlSi677DJqamq48MILue666wB65RgxYgQnnHACTz755C79HkvSniaT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\n",
"text/plain": [
""
]
@@ -712,23 +667,8 @@
}
],
"source": [
- "to_str1 = lambda x: \"{:.1f}\".format(x)\n",
- "to_str2 = lambda x: \"{:d}\".format(x)\n",
- "\n",
- "fig, axarr = plt.subplots(ncols=2, figsize=[18, 8])\n",
- "\n",
- "for ax, dataset, to_str, title, b in zip(axarr,\n",
- " [data.y, signed_rank(data.y)],\n",
- " [to_str1, to_str1],\n",
- " [\"$t$-test\", \"Wilcoxon\"],\n",
- " [intercept, intercept_wilcoxon]):\n",
- " ax.set_title(title)\n",
- " ax.scatter(np.ones(50), dataset, color=\"k\")\n",
- " annotations = dataset.apply(to_str)\n",
- " for i, annot in enumerate(annotations):\n",
- " ax.annotate(annot, (1, dataset[i]), color=\"grey\")\n",
- " ax.axhline(a, color=\"b\", label=r\"$\\beta_0$ (Intercept)\")\n",
- " ax.legend(fontsize=\"large\")"
+ "plots.ttest_wilcoxon_plot(correlated_data, intercept, intercept_wilcoxon)\n",
+ "plt.show()"
]
},
{
@@ -742,7 +682,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
@@ -752,10 +692,8 @@
},
{
"cell_type": "code",
- "execution_count": 18,
- "metadata": {
- "scrolled": true
- },
+ "execution_count": 17,
+ "metadata": {},
"outputs": [
{
"data": {
@@ -778,10 +716,9 @@
" \n",
" \n",
" \n",
- " slope \n",
+ " value \n",
" p-values \n",
" t-values \n",
- " df \n",
" 0.025 CI \n",
" 0.975 CI \n",
" \n",
@@ -790,51 +727,39 @@
" \n",
" scipy.stats.ttest_1samp \n",
" NaN \n",
- " 0.016092 \n",
- " 2.493053 \n",
- " NaN \n",
+ " 0.882318 \n",
+ " 0.148805 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" smf.ols (y ~ 1) \n",
- " 0.369656 \n",
- " 0.016092 \n",
- " 2.493053 \n",
- " 49.0 \n",
- " 0.071687 \n",
- " 0.667624 \n",
+ " 0.019429 \n",
+ " 0.882318 \n",
+ " 0.148805 \n",
+ " -0.242953 \n",
+ " 0.281811 \n",
" \n",
" \n",
"\n",
""
],
"text/plain": [
- " slope p-values t-values df 0.025 CI \\\n",
- "scipy.stats.ttest_1samp NaN 0.016092 2.493053 NaN NaN \n",
- "smf.ols (y ~ 1) 0.369656 0.016092 2.493053 49.0 0.071687 \n",
- "\n",
- " 0.975 CI \n",
- "scipy.stats.ttest_1samp NaN \n",
- "smf.ols (y ~ 1) 0.667624 "
+ " value p-values t-values 0.025 CI 0.975 CI\n",
+ "scipy.stats.ttest_1samp NaN 0.882318 0.148805 NaN NaN\n",
+ "smf.ols (y ~ 1) 0.019429 0.882318 0.148805 -0.242953 0.281811"
]
},
- "execution_count": 18,
+ "execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# Tabulate and display\n",
- "df = pd.DataFrame(index=[\"scipy.stats.ttest_1samp\", \"smf.ols (y ~ 1)\"])\n",
- "df[\"slope\"] = [None, res.params.Intercept]\n",
- "df[\"p-values\"] = [p, res.pvalues.Intercept]\n",
- "df[\"t-values\"] = [t, res.tvalues.Intercept]\n",
- "df[\"df\"] = [None, res.df_resid]\n",
- "df[\"0.025 CI\"] = [None, res.conf_int().loc[\"Intercept\", 0]]\n",
- "df[\"0.975 CI\"] = [None, res.conf_int().loc[\"Intercept\", 1]]\n",
- "\n",
- "df"
+ "utils.tabulate_results([None, p, t, None, None],\n",
+ " res,\n",
+ " [\"scipy.stats.ttest_1samp\", \"smf.ols (y ~ 1)\"],\n",
+ " x=False)"
]
},
{
@@ -848,7 +773,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
@@ -861,7 +786,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
@@ -885,10 +810,9 @@
" \n",
" \n",
" \n",
- " slope \n",
+ " value \n",
" p-values \n",
" t-values \n",
- " df \n",
" 0.025 CI \n",
" 0.975 CI \n",
" \n",
@@ -897,51 +821,39 @@
" \n",
" scipy.stats.wilcoxon \n",
" NaN \n",
- " 0.017335 \n",
- " NaN \n",
+ " 0.942284 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" smf.ols (y ~ 1, signed rank) \n",
- " 7.62 \n",
- " 0.057262 \n",
- " 1.947136 \n",
- " 49.0 \n",
- " -0.244352 \n",
- " 15.484352 \n",
+ " -2.78 \n",
+ " 0.494895 \n",
+ " -0.687683 \n",
+ " -10.903825 \n",
+ " 5.343825 \n",
" \n",
" \n",
"\n",
""
],
"text/plain": [
- " slope p-values t-values df 0.025 CI \\\n",
- "scipy.stats.wilcoxon NaN 0.017335 NaN NaN NaN \n",
- "smf.ols (y ~ 1, signed rank) 7.62 0.057262 1.947136 49.0 -0.244352 \n",
- "\n",
- " 0.975 CI \n",
- "scipy.stats.wilcoxon NaN \n",
- "smf.ols (y ~ 1, signed rank) 15.484352 "
+ " value p-values t-values 0.025 CI 0.975 CI\n",
+ "scipy.stats.wilcoxon NaN 0.942284 NaN NaN NaN\n",
+ "smf.ols (y ~ 1, signed rank) -2.78 0.494895 -0.687683 -10.903825 5.343825"
]
},
- "execution_count": 20,
+ "execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# Tabulate and display\n",
- "df = pd.DataFrame(index=[\"scipy.stats.wilcoxon\", \"smf.ols (y ~ 1, signed rank)\"])\n",
- "df[\"slope\"] = [None, res.params.Intercept]\n",
- "df[\"p-values\"] = [p, res.pvalues.Intercept]\n",
- "df[\"t-values\"] = [None, res.tvalues.Intercept]\n",
- "df[\"df\"] = [None, res.df_resid]\n",
- "df[\"0.025 CI\"] = [None, res.conf_int().loc[\"Intercept\", 0]]\n",
- "df[\"0.975 CI\"] = [None, res.conf_int().loc[\"Intercept\", 1]]\n",
- "\n",
- "df"
+ "utils.tabulate_results([None, p, None, None, None],\n",
+ " res,\n",
+ " [\"scipy.stats.wilcoxon\", \"smf.ols (y ~ 1, signed rank)\"],\n",
+ " x=False)"
]
},
{
@@ -961,7 +873,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
@@ -977,15 +889,6 @@
"$\\text{signed_rank}(y_2-y_1) = \\beta_0 \\qquad \\mathcal{H}_0: \\beta_0 = 0$"
]
},
- {
- "cell_type": "code",
- "execution_count": 22,
- "metadata": {},
- "outputs": [],
- "source": [
- "# TODO"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -995,7 +898,7 @@
},
{
"cell_type": "code",
- "execution_count": 23,
+ "execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
@@ -1005,7 +908,7 @@
},
{
"cell_type": "code",
- "execution_count": 24,
+ "execution_count": 22,
"metadata": {},
"outputs": [
{
@@ -1029,10 +932,9 @@
" \n",
" \n",
" \n",
- " slope \n",
+ " value \n",
" p-values \n",
" t-values \n",
- " df \n",
" 0.025 CI \n",
" 0.975 CI \n",
" \n",
@@ -1041,47 +943,39 @@
" \n",
" scipy.stats.ttest_ind \n",
" NaN \n",
- " 0.699144 \n",
- " -0.387612 \n",
- " NaN \n",
+ " 0.119175 \n",
+ " -1.571994 \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" smf.ols (y_sub_y2 ~ 1) \n",
- " -0.079916 \n",
- " 0.702639 \n",
- " -0.384001 \n",
- " 49.0 \n",
- " -0.498137 \n",
- " 0.338305 \n",
+ " -0.278406 \n",
+ " 0.075029 \n",
+ " -1.818975 \n",
+ " -0.585985 \n",
+ " 0.029173 \n",
" \n",
" \n",
"\n",
""
],
"text/plain": [
- " slope p-values t-values df 0.025 CI 0.975 CI\n",
- "scipy.stats.ttest_ind NaN 0.699144 -0.387612 NaN NaN NaN\n",
- "smf.ols (y_sub_y2 ~ 1) -0.079916 0.702639 -0.384001 49.0 -0.498137 0.338305"
+ " value p-values t-values 0.025 CI 0.975 CI\n",
+ "scipy.stats.ttest_ind NaN 0.119175 -1.571994 NaN NaN\n",
+ "smf.ols (y_sub_y2 ~ 1) -0.278406 0.075029 -1.818975 -0.585985 0.029173"
]
},
- "execution_count": 24,
+ "execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# Tabulate and display\n",
- "df = pd.DataFrame(index=[\"scipy.stats.ttest_ind\", \"smf.ols (y_sub_y2 ~ 1)\"])\n",
- "df[\"slope\"] = [None, res.params.Intercept]\n",
- "df[\"p-values\"] = [p, res.pvalues.Intercept]\n",
- "df[\"t-values\"] = [t, res.tvalues.Intercept]\n",
- "df[\"df\"] = [None, res.df_resid]\n",
- "df[\"0.025 CI\"] = [None, res.conf_int().loc[\"Intercept\", 0]]\n",
- "df[\"0.975 CI\"] = [None, res.conf_int().loc[\"Intercept\", 1]]\n",
- "\n",
- "df"
+ "utils.tabulate_results([None, p, t, None, None],\n",
+ " res,\n",
+ " [\"scipy.stats.ttest_ind\", \"smf.ols (y_sub_y2 ~ 1)\"],\n",
+ " x=False)"
]
},
{
@@ -1095,7 +989,7 @@
},
{
"cell_type": "code",
- "execution_count": 25,
+ "execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
@@ -1106,7 +1000,7 @@
},
{
"cell_type": "code",
- "execution_count": 26,
+ "execution_count": 24,
"metadata": {},
"outputs": [
{
@@ -1130,10 +1024,9 @@
" \n",
" \n",
" \n",
- " slope \n",
+ " value \n",
" p-values \n",
" t-values \n",
- " df \n",
" 0.025 CI \n",
" 0.975 CI \n",
" \n",
@@ -1142,60 +1035,47 @@
" \n",
" scipy.stats.wilcoxon \n",
" NaN \n",
- " 0.881060 \n",
- " NaN \n",
+ " 0.071808 \n",
" NaN \n",
" NaN \n",
" NaN \n",
" \n",
" \n",
" smf.ols (y_sub_y2 ~ 1) \n",
- " 3.22 \n",
- " 0.428812 \n",
- " 0.797842 \n",
- " 49.0 \n",
- " -4.890423 \n",
- " 11.330423 \n",
+ " -5.18 \n",
+ " 0.200729 \n",
+ " -1.296931 \n",
+ " -13.206335 \n",
+ " 2.846335 \n",
" \n",
" \n",
"\n",
""
],
"text/plain": [
- " slope p-values t-values df 0.025 CI 0.975 CI\n",
- "scipy.stats.wilcoxon NaN 0.881060 NaN NaN NaN NaN\n",
- "smf.ols (y_sub_y2 ~ 1) 3.22 0.428812 0.797842 49.0 -4.890423 11.330423"
+ " value p-values t-values 0.025 CI 0.975 CI\n",
+ "scipy.stats.wilcoxon NaN 0.071808 NaN NaN NaN\n",
+ "smf.ols (y_sub_y2 ~ 1) -5.18 0.200729 -1.296931 -13.206335 2.846335"
]
},
- "execution_count": 26,
+ "execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# Tabulate and display\n",
- "df = pd.DataFrame(index=[\"scipy.stats.wilcoxon\", \"smf.ols (y_sub_y2 ~ 1)\"])\n",
- "df[\"slope\"] = [None, res.params.Intercept]\n",
- "df[\"p-values\"] = [p, res.pvalues.Intercept]\n",
- "df[\"t-values\"] = [None, res.tvalues.Intercept]\n",
- "df[\"df\"] = [None, res.df_resid]\n",
- "df[\"0.025 CI\"] = [None, res.conf_int().loc[\"Intercept\", 0]]\n",
- "df[\"0.975 CI\"] = [None, res.conf_int().loc[\"Intercept\", 1]]\n",
- "\n",
- "df"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "For large sample sizes (N >> 100), this approaches the **sign test** to a reasonable degree, but this approximation is too inaccurate to flesh out here."
+ "utils.tabulate_results([None, p, None, None, None],\n",
+ " res,\n",
+ " [\"scipy.stats.wilcoxon\", \"smf.ols (y_sub_y2 ~ 1)\"],\n",
+ " x=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
+ "For large sample sizes (N >> 100), this approaches the **sign test** to a reasonable degree, but this approximation is too inaccurate to flesh out here.\n",
+ "\n",
"# 5 Two means\n",
"\n",
"## 5.1 Independent t-test and Mann-Whitney U\n",
@@ -1225,7 +1105,7 @@
},
{
"cell_type": "code",
- "execution_count": 27,
+ "execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
@@ -1257,7 +1137,7 @@
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
@@ -1273,12 +1153,30 @@
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"# TODO"
]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 5.2 Welch’s t-test\n",
+ "\n",
+ "This is identical to the (Student's) [independent t-test](#t2) above except that Student's assumes identical variances and **Welch's t-test** does not. So the linear model is the same and the trick is in the variances, which I won't go further into here."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t, p = scipy.stats.ttest_ind(data.y, data.y2, equal_var=False)"
+ ]
}
],
"metadata": {
diff --git a/utils.py b/utils.py
index a5cd0ac..52da92a 100644
--- a/utils.py
+++ b/utils.py
@@ -2,6 +2,61 @@
import re
import json
+import numpy as np
+import pandas as pd
+
+
+def signed_rank(x, axis=-1):
+ return np.sign(x) * np.argsort(x, axis=axis)
+
+
+def format_decimals_factory(num_decimals=1):
+ return lambda x: "{1:.{0}f}".format(num_decimals, x)
+
+
+def tabulate_results(test_values, ols_results, names, x=True):
+ """
+ Tabulates results of statistical tests and equivalent linear regressions to
+ demonstrate that the two methods are in fact equivalent.
+
+ Parameters
+ ----------
+ test_values : list
+ List of values from the scipy statistical test to display.
+ ols_results : statsmodels.RegressionResults or list thereof
+ Result object(s) of equivalent linear regression to display.
+ names : list
+ List of strings to display.
+ x : bool
+ If True, display `x` coefficient for parameters, p and t values.
+ Otherwise, display `Intercept` coefficient.
+
+ Returns
+ -------
+ table : pd.DataFrame
+ """
+ # There may be only one OLS result. If so, wrap it up as a single list.
+ if not isinstance(ols_results, list):
+ ols_results = [ols_results]
+
+ # Assert shapes
+ assert len(test_values) == 5
+ assert len(names) == len(ols_results) + 1
+
+ # Construct and return table
+ table = pd.DataFrame(index=names)
+ coeff = "x" if x else "Intercept"
+ table["value"] = [test_values[0]] + [res.params[coeff] for res in ols_results]
+ table["p-values"] = [test_values[1]] + [res.pvalues[coeff] for res in ols_results]
+ table["t-values"] = [test_values[2]] + [res.tvalues[coeff] for res in ols_results]
+ table["0.025 CI"] = [test_values[3]] + [
+ res.conf_int().loc[coeff, 0] for res in ols_results
+ ]
+ table["0.975 CI"] = [test_values[4]] + [
+ res.conf_int().loc[coeff, 1] for res in ols_results
+ ]
+
+ return table
def generate_toc(notebook="tests-as-linear.ipynb"):
@@ -25,7 +80,7 @@ def generate_toc(notebook="tests-as-linear.ipynb"):
with open(notebook, "r") as f:
cells = json.load(f)["cells"]
- items = ["# Table of contents\n"]
+ items = ["# Table of contents"]
for cell in cells:
if cell["cell_type"] == "markdown":
for line in cell["source"]:
@@ -39,11 +94,8 @@ def generate_toc(notebook="tests-as-linear.ipynb"):
+ line.strip(" #\n")
+ "](#"
+ link
- + ")\n"
+ + ")"
)
- toc = ""
- for item in items:
- toc += item
-
+ toc = "\n".join(items)
return toc