{ "cells": [ { "cell_type": "markdown", "id": "c47ebc4d-d172-4e70-9e16-cf6a0ba7153a", "metadata": {}, "source": [ "# Multiple Factor Nonparametric Tests - R" ] }, { "cell_type": "markdown", "id": "4ecefac5-3aac-4309-a413-d1e62eb0fc81", "metadata": {}, "source": [ "## Aligned Rank Transform for Between Subjects (ART)\n", "\n", "* **Samples:** `≥2`\n", "* **Levels:** `≥2`\n", "* **Between or Within Subjects:** Between\n", "* **Reporting:** \"Figure 10 shows boxplots for all levels of X1×X2. A nonparametric analysis of variance based on the Aligned Rank Transform indicated no statistically significant effect on Y of X1 (F(1, 56) = 1.98, n.s.), or of X2 (F(1, 56) = 0.81, n.s.), but there was a statistically significant X1×X2 interaction (F(1, 56) = 13.65, p < .001).\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "c7fa707e-af25-4dab-a4f6-cddd99a5ca4e", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 20 × 4
SX1X2Y
<int><chr><chr><dbl>
1 1aa 8.236467
2 2ab12.965256
3 3ba10.782947
4 4bb 7.385979
5 5aa12.041681
6 6ab12.779924
7 7ba11.581190
8 8bb 9.529899
9 9aa12.658464
1010ab14.159172
1111ba 9.548367
1212bb 7.859910
1313aa10.395678
1414ab10.385932
1515ba12.512831
1616bb 8.080291
1717aa10.252031
1818ab12.052793
1919ba13.768800
2020bb11.417579
\n" ], "text/latex": [ "A data.frame: 20 × 4\n", "\\begin{tabular}{r|llll}\n", " & S & X1 & X2 & Y\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t1 & 1 & a & a & 8.236467\\\\\n", "\t2 & 2 & a & b & 12.965256\\\\\n", "\t3 & 3 & b & a & 10.782947\\\\\n", "\t4 & 4 & b & b & 7.385979\\\\\n", "\t5 & 5 & a & a & 12.041681\\\\\n", "\t6 & 6 & a & b & 12.779924\\\\\n", "\t7 & 7 & b & a & 11.581190\\\\\n", "\t8 & 8 & b & b & 9.529899\\\\\n", "\t9 & 9 & a & a & 12.658464\\\\\n", "\t10 & 10 & a & b & 14.159172\\\\\n", "\t11 & 11 & b & a & 9.548367\\\\\n", "\t12 & 12 & b & b & 7.859910\\\\\n", "\t13 & 13 & a & a & 10.395678\\\\\n", "\t14 & 14 & a & b & 10.385932\\\\\n", "\t15 & 15 & b & a & 12.512831\\\\\n", "\t16 & 16 & b & b & 8.080291\\\\\n", "\t17 & 17 & a & a & 10.252031\\\\\n", "\t18 & 18 & a & b & 12.052793\\\\\n", "\t19 & 19 & b & a & 13.768800\\\\\n", "\t20 & 20 & b & b & 11.417579\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 20 × 4\n", "\n", "| | S <int> | X1 <chr> | X2 <chr> | Y <dbl> |\n", "|---|---|---|---|---|\n", "| 1 | 1 | a | a | 8.236467 |\n", "| 2 | 2 | a | b | 12.965256 |\n", "| 3 | 3 | b | a | 10.782947 |\n", "| 4 | 4 | b | b | 7.385979 |\n", "| 5 | 5 | a | a | 12.041681 |\n", "| 6 | 6 | a | b | 12.779924 |\n", "| 7 | 7 | b | a | 11.581190 |\n", "| 8 | 8 | b | b | 9.529899 |\n", "| 9 | 9 | a | a | 12.658464 |\n", "| 10 | 10 | a | b | 14.159172 |\n", "| 11 | 11 | b | a | 9.548367 |\n", "| 12 | 12 | b | b | 7.859910 |\n", "| 13 | 13 | a | a | 10.395678 |\n", "| 14 | 14 | a | b | 10.385932 |\n", "| 15 | 15 | b | a | 12.512831 |\n", "| 16 | 16 | b | b | 8.080291 |\n", "| 17 | 17 | a | a | 10.252031 |\n", "| 18 | 18 | a | b | 12.052793 |\n", "| 19 | 19 | b | a | 13.768800 |\n", "| 20 | 20 | b | b | 11.417579 |\n", "\n" ], "text/plain": [ " S X1 X2 Y \n", "1 1 a a 8.236467\n", "2 2 a b 12.965256\n", "3 3 b a 10.782947\n", "4 4 b b 7.385979\n", "5 5 a a 12.041681\n", "6 6 a b 12.779924\n", "7 7 b a 11.581190\n", "8 8 b b 9.529899\n", "9 9 a a 12.658464\n", "10 10 a b 14.159172\n", "11 11 b a 9.548367\n", "12 12 b b 7.859910\n", "13 13 a a 10.395678\n", "14 14 a b 10.385932\n", "15 15 b a 12.512831\n", "16 16 b b 8.080291\n", "17 17 a a 10.252031\n", "18 18 a b 12.052793\n", "19 19 b a 13.768800\n", "20 20 b b 11.417579" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Example data\n", "# df has subjects (S), two between-Ss factors (X1,X2) each w/levels (a,b), and continuous response (Y)\n", "df <- read.csv(\"data/2F2LBs.csv\")\n", "head(df, 20)" ] }, { "cell_type": "code", "execution_count": 2, "id": "9c5f3020-cc55-4064-bb7d-867f7d1f37dc", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading required package: survival\n", "\n" ] }, { "data": { "text/plain": [ "\n", "\tExact Wilcoxon-Mann-Whitney Test\n", "\n", "data: Y by X (a, b)\n", "Z = -2.4394, p-value = 0.01425\n", "alternative hypothesis: true mu is not equal to 0\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# library(ARTool)\n", "# df$S = factor(df$S) # Subject id is nominal (unused)\n", "# df$X1 = factor(df$X1) # X1 is a 2-level factor\n", "# df$X2 = factor(df$X2) # X2 is a 2-level factor\n", "# m = art(Y ~ X1*X2, data=df)\n", "# anova(m)" ] }, { "cell_type": "markdown", "id": "d2e9942f-eb49-4a79-b244-cdcc21b5a691", "metadata": {}, "source": [ "## Generalized Linear Model (GLM)\n", "\n", "* **Samples:** `≥2`\n", "* **Levels:** `≥2`\n", "* **Between or Within Subjects:** Between\n", "* **Reporting:** \"The median of ‘a’ was 11.92 (IQR = 2.35) and of ‘b’ was 10.74 (IQR = 2.29). This difference was statistically significant according to a Wilcoxon signed-rank test (Z = 2.11, p < .05).\"\n", "\n", "[See Generalized Linear (Mixed) Models: Distributions and Canonical Links]()" ] }, { "cell_type": "markdown", "id": "328e4c96-8c2b-4ce5-865d-b9a0784dcc78", "metadata": {}, "source": [ "## Aligned Rank Transform for Within Subjects (ART)\n", "\n", "* **Samples:** `≥2`\n", "* **Levels:** `≥2`\n", "* **Between or Within Subjects:** Within\n", "* **Reporting:** \"Figure 11 shows boxplots for all levels of X1×X2. A nonparametric analysis of variance based on the Aligned Rank Transform indicated no statistically significant effect on Y of X1 (F(1, 42) = 1.85, n.s.) or of the X1×X2 interaction (F(1, 42) = 1.93, n.s.), but there was a statistically significant effect of X2 (F(1, 42) = 24.97, p < .0001).\"" ] }, { "cell_type": "code", "execution_count": 2, "id": "494b0730-a4d2-4d93-a4a9-4a3d2fbe6580", "metadata": { "vscode": { "languageId": "r" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
A data.frame: 20 × 4
SX1X2Y
<int><chr><chr><dbl>
11aa13.177771
21ab13.299755
31ba 9.909350
41bb16.457684
52aa11.770180
62ab14.804296
72ba 9.819264
82bb13.907344
93aa 8.535872
103ab12.210064
113ba12.448765
123bb12.204888
134aa10.287867
144ab16.082883
154ba 9.196968
164bb 9.614437
175aa 9.040155
185ab16.885613
195ba10.184381
205bb14.435134
\n" ], "text/latex": [ "A data.frame: 20 × 4\n", "\\begin{tabular}{r|llll}\n", " & S & X1 & X2 & Y\\\\\n", " & & & & \\\\\n", "\\hline\n", "\t1 & 1 & a & a & 13.177771\\\\\n", "\t2 & 1 & a & b & 13.299755\\\\\n", "\t3 & 1 & b & a & 9.909350\\\\\n", "\t4 & 1 & b & b & 16.457684\\\\\n", "\t5 & 2 & a & a & 11.770180\\\\\n", "\t6 & 2 & a & b & 14.804296\\\\\n", "\t7 & 2 & b & a & 9.819264\\\\\n", "\t8 & 2 & b & b & 13.907344\\\\\n", "\t9 & 3 & a & a & 8.535872\\\\\n", "\t10 & 3 & a & b & 12.210064\\\\\n", "\t11 & 3 & b & a & 12.448765\\\\\n", "\t12 & 3 & b & b & 12.204888\\\\\n", "\t13 & 4 & a & a & 10.287867\\\\\n", "\t14 & 4 & a & b & 16.082883\\\\\n", "\t15 & 4 & b & a & 9.196968\\\\\n", "\t16 & 4 & b & b & 9.614437\\\\\n", "\t17 & 5 & a & a & 9.040155\\\\\n", "\t18 & 5 & a & b & 16.885613\\\\\n", "\t19 & 5 & b & a & 10.184381\\\\\n", "\t20 & 5 & b & b & 14.435134\\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "A data.frame: 20 × 4\n", "\n", "| | S <int> | X1 <chr> | X2 <chr> | Y <dbl> |\n", "|---|---|---|---|---|\n", "| 1 | 1 | a | a | 13.177771 |\n", "| 2 | 1 | a | b | 13.299755 |\n", "| 3 | 1 | b | a | 9.909350 |\n", "| 4 | 1 | b | b | 16.457684 |\n", "| 5 | 2 | a | a | 11.770180 |\n", "| 6 | 2 | a | b | 14.804296 |\n", "| 7 | 2 | b | a | 9.819264 |\n", "| 8 | 2 | b | b | 13.907344 |\n", "| 9 | 3 | a | a | 8.535872 |\n", "| 10 | 3 | a | b | 12.210064 |\n", "| 11 | 3 | b | a | 12.448765 |\n", "| 12 | 3 | b | b | 12.204888 |\n", "| 13 | 4 | a | a | 10.287867 |\n", "| 14 | 4 | a | b | 16.082883 |\n", "| 15 | 4 | b | a | 9.196968 |\n", "| 16 | 4 | b | b | 9.614437 |\n", "| 17 | 5 | a | a | 9.040155 |\n", "| 18 | 5 | a | b | 16.885613 |\n", "| 19 | 5 | b | a | 10.184381 |\n", "| 20 | 5 | b | b | 14.435134 |\n", "\n" ], "text/plain": [ " S X1 X2 Y \n", "1 1 a a 13.177771\n", "2 1 a b 13.299755\n", "3 1 b a 9.909350\n", "4 1 b b 16.457684\n", "5 2 a a 11.770180\n", "6 2 a b 14.804296\n", "7 2 b a 9.819264\n", "8 2 b b 13.907344\n", "9 3 a a 8.535872\n", "10 3 a b 12.210064\n", "11 3 b a 12.448765\n", "12 3 b b 12.204888\n", "13 4 a a 10.287867\n", "14 4 a b 16.082883\n", "15 4 b a 9.196968\n", "16 4 b b 9.614437\n", "17 5 a a 9.040155\n", "18 5 a b 16.885613\n", "19 5 b a 10.184381\n", "20 5 b b 14.435134" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Example data\n", "# df has subjects (S), two within-Ss factors (X1,X2) each w/levels (a,b), and continuous response (Y)\n", "df <- read.csv(\"data/2F2LWs.csv\")\n", "head(df, 20)" ] }, { "cell_type": "code", "execution_count": 2, "id": "9ec98708-36c5-4c0e-944f-b4426476843f", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading required package: survival\n", "\n" ] }, { "data": { "text/plain": [ "\n", "\tExact Wilcoxon-Mann-Whitney Test\n", "\n", "data: Y by X (a, b)\n", "Z = -2.4394, p-value = 0.01425\n", "alternative hypothesis: true mu is not equal to 0\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# library(ARTool)\n", "# df$S = factor(df$S) # Subject id is nominal\n", "# df$X1 = factor(df$X1) # X1 is a 2-level factor\n", "# df$X2 = factor(df$X2) # X2 is a 2-level factor\n", "# m = art(Y ~ X1*X2 + (1|S), data=df) # S is a random factor\n", "# anova(m)" ] }, { "cell_type": "markdown", "id": "b38aca62-0d5f-42b0-a290-d6100ea5f179", "metadata": {}, "source": [ "## Generalized Linear Mixed Model (GLMM)\n", "\n", "* **Samples:** `≥2`\n", "* **Levels:** `≥2`\n", "* **Between or Within Subjects:** Within\n", "* **Reporting:** \"The median of ‘a’ was 11.92 (IQR = 2.35) and of ‘b’ was 10.74 (IQR = 2.29). This difference was statistically significant according to a Wilcoxon signed-rank test (Z = 2.11, p < .05).\"\n", "\n", "[See Generalized Linear (Mixed) Models: Distributions and Canonical Links]()" ] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "4.2.2" } }, "nbformat": 4, "nbformat_minor": 5 }