From 7b269ddd2b9d11a620175e6e632d9d1bc869b373 Mon Sep 17 00:00:00 2001 From: fyears Date: Sat, 31 Aug 2019 13:01:44 +0800 Subject: [PATCH 1/4] html version of cheat sheet --- include/cheat_sheet_plots/cc-by.svg | 155 ++++++++++++++ include/cheat_sheet_plots/p1.png | Bin 0 -> 611 bytes include/cheat_sheet_plots/p2_1.png | Bin 0 -> 2124 bytes include/cheat_sheet_plots/p2_2.png | Bin 0 -> 1705 bytes include/cheat_sheet_plots/p2_3.png | Bin 0 -> 666 bytes include/cheat_sheet_plots/p3.png | Bin 0 -> 1208 bytes include/cheat_sheet_plots/p4.png | Bin 0 -> 1048 bytes include/cheat_sheet_plots/p5.png | Bin 0 -> 1489 bytes include/cheat_sheet_plots/p6.png | Bin 0 -> 4446 bytes linear_tests_cheat_sheet.html | 307 ++++++++++++++++++++++++++++ 10 files changed, 462 insertions(+) create mode 100644 include/cheat_sheet_plots/cc-by.svg create mode 100644 include/cheat_sheet_plots/p1.png create mode 100644 include/cheat_sheet_plots/p2_1.png create mode 100644 include/cheat_sheet_plots/p2_2.png create mode 100644 include/cheat_sheet_plots/p2_3.png create mode 100644 include/cheat_sheet_plots/p3.png create mode 100644 include/cheat_sheet_plots/p4.png create mode 100644 include/cheat_sheet_plots/p5.png create mode 100644 include/cheat_sheet_plots/p6.png create mode 100644 linear_tests_cheat_sheet.html diff --git a/include/cheat_sheet_plots/cc-by.svg b/include/cheat_sheet_plots/cc-by.svg new file mode 100644 index 0000000..e44c25f --- /dev/null +++ b/include/cheat_sheet_plots/cc-by.svg @@ -0,0 +1,155 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/include/cheat_sheet_plots/p1.png b/include/cheat_sheet_plots/p1.png new file mode 100644 index 0000000000000000000000000000000000000000..4c528f61281358c689706a4c49816fb17b997527 GIT binary patch literal 611 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 literal 0 HcmV?d00001 diff --git a/include/cheat_sheet_plots/p2_3.png b/include/cheat_sheet_plots/p2_3.png new file mode 100644 index 0000000000000000000000000000000000000000..b22fb1dd3b18b98d65550f3e65f764f68b3c5a64 GIT binary patch literal 666 zcmeAS@N?(olHy`uVBq!ia0vp^2|zr7gAGW2=gLzAQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$Aj3=B;Ao-U3d6>)EGUCcUcz|;D$?EU|9vP}|B zg)+-?mF7=|K!!r zXuF9|^cat<%d}s5Cy`C&=k3!g*#xd}SEqcOEwoje-C%JI1JA>hch(99%v>{OiZc|L zzxo@nZ#z)tb4jqB!c~T^*vcxaItltpPj|mQ#VdMzCQiapDbS9bBxhnx4*w%|Nm;$-#I@$ zEA;2oyj!ny%9tZz_44^PWpzu!od2AgxH5WK-f{-FZHE{etczc^Z?e6o*l@|;vib`1 z3*9>9Kxy@dDJ&CwcCwz_KK}rpha1C5nfXmivV!;(zVIdPeeYGo@nG(ibp_lG?@o3o z&N-9H-t+FyvXr%aj3@N!0`eV=yW?jSF?{Nl4~f1o@u+_6;v@#MZh0Bz39C-Nl~E{n z)_m7+;Wq1}tt)_$pr~=35g3&Z(q#Azg4j*AGdzh4v|u%;@{Zc(_fK0%l2Ij@O{JJy m;lnH`hGz!MuvlMSZS#*&gxNJid#crIkf5ilpUXO@geCw}>a~60+7BevL9R^{>Q=H3u)0Upf_{I-30ULO*>R&6vcA?Yfr!#C{bSj=XW}a3ZZ$ag%AEpO% z1M2R`J!NNLFh4TiVaM8tx_vA=L__~cJ@^#zF}opqQ`!H|KKZj5{St#Sb6*7ho0XX@ z`aq=Zbhf$J(f*lv-_J9FXb<2vIYbC#)l1!K!v1#I_ zl|OYE`BHZ*DN8;*-%{(q!WEOQ>D)N>M?U8K7E{&uZie%ie}Ax@K3vckNE-N88J5(_*saEzGi4 z>C~Pv`4-ghcvIV{L(hE{>$6(OWiQj&3I69h~*N z_N{xguSeHir=EAiqOMIHx*Kntz42&$;GX@O=9@&%7k*xR z#pY+tKCjvbahX%S-X4GQyvEx7hvd6C>x1NXq(?37`fXU4c3$RT`i^XnqCg>U_mA&p za|{08m3B(-fmG4KYEAcs&!?ZhTPnl2PEkB&X%Ex&3EcO*Et%%T>y_(2P?)SdPDaIC;g=Ep1aI?N4<5Ext|_?TDdVbXW@?>dv<=X w-1bAeptAcBFgrW_WW<)^v5GZx|N8x#|DXojMzPuNZi19}y85}Sb4q9e03Iha?f?J) literal 0 HcmV?d00001 diff --git a/include/cheat_sheet_plots/p4.png b/include/cheat_sheet_plots/p4.png new file mode 100644 index 0000000000000000000000000000000000000000..f7930db5cf99a1333ed9f6471fef19d250eafeca GIT binary patch literal 1048 zcmeAS@N?(olHy`uVBq!ia0vp^2Y`422OE%#3rhI_q!^2X+?^QKos)S9a~60+7BevL9R^{>db&7fHpYrZ&Mu7(J^NW`b^m~1;1dI1vI-x)H-AAzazf-5vpB^)x z^8RbZhxSvC-bvW+*}3VF_5V-xZ0}d={HXr3b$x#x-#!1xcmI#Y|Niyk*@N0CNB>Fu zyK#Nu?56Jl*QDIxT2wsvo`e73v(%Jgqd#agd>K%D+7#nlIYPDwp> z@cXTe*;hYTAFQ0>dhB5T*2UXbUC(X)tkK=m{C;b4|BCM~4q9F*l)u_{C}x|p|JKC@ z{cleMzkRXxRjIATe5-ehZ(WSO`g$8gH_)i+E7{+hu4`$7EqNch{yulyavcM{eb@VJ zSKUk37yEiia7sJap7TNPrzbg1Z<}COy{hQ3#gC0;UuM3t{hp+l$uPZYRncLKA92>- zq+jg?i@4jaxue2Yw?_7_?$>|S8z-1FES3w(6JQ5=^Pf}gH8Zg(Z3QcLPvL(2;P|bJ z`$OjM>^-_fFy`{rQxCxgi@w^tedCP1f=kXH*VAHubOWd;eC7H3-5^E5A^QZ`?XUIi z3;HYhEy*#H!~Ji79oX~f0rk`NM)*h_G_BRne*`kwc%}Viuw7TSe^LW^YHsM?pH(_p zGC(C-@kc+**O%;lmSy|ZzBboj zuF03Zpk%8#BS`AE*^Dr$KV~zcq-sHFpJDZ<>GM;2AAk2g5Clx?2768ZK$5?=LEW^p zKRVgg{|td@|C)ic#=%VjXMpVouWU=czmFX$n;|h9_J9BQQU2sI<3f{E>q#I9Pgg&e IbxsLQ0K7^CMF0Q* literal 0 HcmV?d00001 diff --git a/include/cheat_sheet_plots/p5.png b/include/cheat_sheet_plots/p5.png new file mode 100644 index 0000000000000000000000000000000000000000..225cd200c1989592c5298ea3890226598a7e96d9 GIT binary patch literal 1489 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 literal 0 HcmV?d00001 diff --git a/linear_tests_cheat_sheet.html b/linear_tests_cheat_sheet.html new file mode 100644 index 0000000..2d2a1cc --- /dev/null +++ b/linear_tests_cheat_sheet.html @@ -0,0 +1,307 @@ + + + + + + + + + +
+
+

Common statistical tests are linear models

+

Last updated: 28 June, 2019.Also check out the Python version!

+
+
+

See worked examples and more details at the accompanying + notebook:
https://lindeloev.github.io/tests-as-linear

+
+
+ +
+
+
Common name
+
Built-in function R
+
Equivalent linear model in R
+
Exact?
+
The linear model in words
+
Icon
+ +
+ + Simple regression: lm(y ~ 1 + x) + + +
+ +
+
y is independent of x
P: One-sample t-test
N: Wilcoxon signed-rank
+

t.test(y)
wilcox.test(y)
+

lm(y ~ 1)
lm(signed_rank(y) ~ 1)
+ +

One number (intercept, i.e., the mean) predicts y.
- (Same, but it predicts the signed rank of y.)
+
p1
+
+ +
+
P: Paired-sample t-test
N: Wilcoxon matched pairs
+
t.test(y1, y2, paired=TRUE)
wilcox.test(y1, y2, paired=TRUE)
+
lm(y2 - y1 ~ 1)
lm(signed_rank(y2 - y1) ~ 1)
+ +
One intercept predicts the pairwise y 2 -y 1 differences.
- (Same, but it predicts the signed rank of y 2 -y 1 .)
+
p2_1p2_2p2_3
+
+ +
+
y ~ continuous x
P: Pearson correlation
N: Spearman correlation
+

cor.test(x, y, method='Pearson')
cor.test(x, y, method=Spearman')
+

lm(y ~ 1 + x)
lm(rank(y) ~ 1 + rank(x))
+


for N > 10
+

One intercept plus x multiplied by a number (slope) predicts y.
- (Same, but with ranked x and y)
+
p3
+
+ +
+
y ~ discrete x
P: Two-sample t-test
P: Welch’s t-test
N: Mann-Whitney U
+
+
t.test(y1, y2, var.equal=TRUE)
t.test(y1, y2, var.equal=FALSE)
wilcox.test(y1, y2)
+
+
+
lm(y ~ 1 + G2)A
gls(y ~ 1 + G2, weights=...B)A
lm(signed_rank(y) ~ 1 + G2)A
+
+



N > 11
+

An intercept for group 1 (plus a difference if group 2) predicts y.
- (Same, but with one variance per group instead of one common.)
- (Same, but it predicts the signed rank of y.)) +
+
p4
+
+ +
+ + Multiple regression: lm(y~1+x1+x2+...) + +
+ +
+
P: One-way ANOVA
N: Kruskal-Wallis
+
aov(y ~ group)
kruskal.test(y ~ group)
+
+ lm(y ~ 1 + G2 + G3 + .. + Gn)A
lm(rank(y) ~ 1 + G2 + G3 + .. + Gn)A
+

N > 11
+
An intercept for group 1 (plus a difference if group ≠ 1) predicts y.
- (Same, but it predicts the rank of y.)
+
p5
+
+ +
+
P: One-way ANCOVA
+
aov(y ~ group + x)
+
lm(y ~ 1 + G2 + G3 + ... + Gn + x)A
+
+
- (Same, but plus a slope on x.)
Note: this is discrete AND continuous. ANCOVAs are ANOVAs with a continuous x.
+
p6
+
+ +
+
P: Two-way ANOVA
+
aov(y ~ group * sex)
+
lm(y ~ 1+G2+G3+...+Gn+ + S2+S3+...+Sk+ + G2*S2+G3*S3+...+Gn*Sk)
+
+
Interaction term: changing sex changes the y ~ group parameters.
+ Note: G2 ... Gn is an indicator (0 or 1) for each non-intercept levels of the group variable. Similarly for S2 ... Sk for sex. The first line (with Gi ) is main effect of group, the second (with Si ) for sex and the third is the group * sex interaction. For two levels (e.g. male/female), line 2 would just be S2 and line 3 would be S2 multiplied with each Gi. +
+
[Coming]
+
+ +
+
Counts ~ discrete x
N: Chi-square test
+

chisq.test(groupXsex_table)
+
Equivalent log-linear model
glm(y ~ 1+G2+G3+...+Gn+ + S2+S3+...+Sk+ + G2*S2+G3*S3+...+Gn*Sk, family=...)A
+
+
Interaction term: (Same as Two-way ANOVA.)
Note: Run glm using the following arguments: glm(model, family=poisson())
As linear-model, the Chi-square test is log(y_i) = log(N) + log(alpha_i) + log(beta_j) + + log(alpha_i beta_j),where alpha_i and beta_j are proportions. See more info in the accompanying notebook.
+
Same as Two-way ANOVA
+
+ +
+
N: Goodness of fit
+
chisq.test(y)
+
glm(y ~ 1 + G2 + G3 + ... + Gn, family=...)A
+
+
(Same as One-way ANOVA and see Chi-Square note.)
+
1W-ANOVA
+
+
+ +

List of common parametric (P) non-parametric (N) tests and equivalent linear models. The notation y ~ 1 + x is R shorthand for y = 1·b + a·x which most of us learned in school. Models in similar colors are highly similar, but + really, notice how similar they all are across colors! For non-parametric models, the linear models are reasonable approximations for non-small sample sizes (see "Exact" column and click links to see simulations). Other less accurate approximations exist, e.g., Wilcoxon for the sign test and Goodness-of-fit for the binomial test. The signed rank function is signed_rank = function(x) sign(x) * rank(abs(x)). The variables Gi and Si are "dummy + coded" indicator variables (either 0 or 1) exploiting the fact that when Δx = 1 between categories the difference equals the slope. Subscripts (e.g., G2 or y1) indicate different columns in data. lm requires long-format data for all non-continuous models. All of this is exposed in greater detail and worked examples at https://lindeloev.github.io/tests-as-linear. + +

+ + + + \ No newline at end of file From 9d204d3f29b90c14f4748603b6e0a0b3925a32cc Mon Sep 17 00:00:00 2001 From: fyears Date: Sat, 31 Aug 2019 13:02:11 +0800 Subject: [PATCH 2/4] add link to html cheat sheet and recompile source --- index.Rmd | 2 +- index.html | 268 ++-- .../datatables-binding-0.8/datatables.js | 1258 +++++++++++++++++ .../figure-html/unnamed-chunk-13-1.png | Bin 15582 -> 15451 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 22357 -> 22418 bytes .../figure-html/unnamed-chunk-27-1.png | Bin 10324 -> 10344 bytes .../figure-html/unnamed-chunk-37-1.png | Bin 12395 -> 12499 bytes .../figure-html/unnamed-chunk-48-1.png | Bin 7057 -> 7066 bytes index_files/figure-html/unnamed-chunk-5-1.png | Bin 66359 -> 66429 bytes .../figure-html/unnamed-chunk-56-1.png | Bin 10631 -> 10426 bytes index_files/navigation-1.1/codefolding.js | 2 +- index_files/tocify-1.9.1/jquery.tocify.css | 10 +- index_files/tocify-1.9.1/jquery.tocify.js | 4 +- 13 files changed, 1405 insertions(+), 139 deletions(-) create mode 100644 index_files/datatables-binding-0.8/datatables.js diff --git a/index.Rmd b/index.Rmd index 9142b05..13412fc 100644 --- a/index.Rmd +++ b/index.Rmd @@ -85,7 +85,7 @@ print_df = function(D, ``` -This document is summarised in the table below. It shows the linear models underlying common parametric and "non-parametric" tests. Formulating all the tests in the same language highlights the many similarities between them. Get it [as an image](linear_tests_cheat_sheet.png) or [as a PDF](linear_tests_cheat_sheet.pdf). +This document is summarised in the table below. It shows the linear models underlying common parametric and "non-parametric" tests. Formulating all the tests in the same language highlights the many similarities between them. Get it [as an image](linear_tests_cheat_sheet.png) or [as a PDF](linear_tests_cheat_sheet.pdf) or [as a web page](linear_tests_cheat_sheet.html). *** diff --git a/index.html b/index.html index 3ece0d1..404535f 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,7 @@ + @@ -27,7 +28,7 @@ - + @@ -107,7 +108,6 @@ } img { max-width:100%; - height: auto; } .tabbed-pane { padding-top: 12px; @@ -181,49 +181,10 @@ } - - - -