Textbook dataset examples for CROSSTABS

Brian O’Connor

2022-12-11

This R markdown document provides R code and output for multiple datasets when using the CROSSTABS function in the Crosstabs.Loglinear package.

Load the Crosstabs.Loglinear package

library(Crosstabs.Loglinear)
**************************************************************************************************
Crosstabs.Loglinear 0.1.1

Please contact Brian O'Connor at brian.oconnor@ubc.ca if you have questions or suggestions.
**************************************************************************************************

Field (2018). Chapter 18: Categorical data – cats only, entering raw data

# when 'data' is a raw data file (rather than counts/frequencies)
CROSSTABS(data = subset(datasets$Field_2018_raw, Animal=='Cat'), 
          data_type = 'raw', 
          variables=c('Training','Dance') )


Observed Frequencies:
           
            danced did not dance
  affection     48           114
  food          28            10


Row Totals:
affection      food 
      162        38 


Column Totals:
       danced did not dance 
           76           124 


N = 200


Expected Frequencies:
           
            danced did not dance
  affection  61.56        100.44
  food       14.44         23.56


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                         df    p
Pearson Chi-Square             25.356     1    0
Yates Continuity Correction    23.520     1    0
Likelihood Ratio               24.932     1    0
Fisher's Exact p                   NA    NA    0
Linear-by-Linear Assocn.       25.229     1    0
McNemar Test                   50.880     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.335
Phi                          0.356
Cramer's V (from X2)         0.356
Cramer's V (from G2)         0.353
Cohen's W (from X2)          0.356
Cohen's W (from G2)          0.353


Residuals:
           
            danced did not dance
  affection -13.56         13.56
  food       13.56        -13.56


Standardized Residuals:
           
            danced did not dance
  affection -1.728         1.353
  food       3.568        -2.794


Adjusted Residuals:
           
            danced did not dance
  affection -5.035         5.035
  food       5.035        -5.035


2-by-2 Table Effect Sizes
$`Effect Sizes for affection vs. food ()  when  = danced`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.402  0.297  0.545
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

$`Effect Sizes for food vs. affection ()  when  = danced`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.487 1.835  3.370
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

$`Effect Sizes for affection vs. food ()  when  = did not dance`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.674 1.556  4.595
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

$`Effect Sizes for food vs. affection ()  when  = did not dance`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.374  0.218  0.643
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

Field (2018). Chapter 18: Categorical data – cats only, entering counts

# when 'data' is a file with the counts/frequencies (rather than raw data points)
CROSSTABS(data = subset(datasets$Field_2018, Animal=='Cat'), 
          data_type = 'counts', 
          variables=c('Training','Dance') )


Observed Frequencies:
           Dance
Training    danced did not dance
  affection     48           114
  food          28            10


Row Totals:
affection      food 
      162        38 


Column Totals:
       danced did not dance 
           76           124 


N = 200


Expected Frequencies:
           Dance
Training    danced did not dance
  affection  61.56        100.44
  food       14.44         23.56


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                         df    p
Pearson Chi-Square             25.356     1    0
Yates Continuity Correction    23.520     1    0
Likelihood Ratio               24.932     1    0
Fisher's Exact p                   NA    NA    0
Linear-by-Linear Assocn.       25.229     1    0
McNemar Test                   50.880     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.335
Phi                          0.356
Cramer's V (from X2)         0.356
Cramer's V (from G2)         0.353
Cohen's W (from X2)          0.356
Cohen's W (from G2)          0.353


Residuals:
           Dance
Training    danced did not dance
  affection -13.56         13.56
  food       13.56        -13.56


Standardized Residuals:
           Dance
Training    danced did not dance
  affection -1.728         1.353
  food       3.568        -2.794


Adjusted Residuals:
           Dance
Training    danced did not dance
  affection -5.035         5.035
  food       5.035        -5.035


2-by-2 Table Effect Sizes
$`Effect Sizes for affection vs. food (Training)  when Dance = danced`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.402  0.297  0.545
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

$`Effect Sizes for food vs. affection (Training)  when Dance = danced`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.487 1.835  3.370
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

$`Effect Sizes for affection vs. food (Training)  when Dance = did not dance`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.674 1.556  4.595
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

$`Effect Sizes for food vs. affection (Training)  when Dance = did not dance`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.374  0.218  0.643
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

Field (2018). Chapter 18: Categorical data – cats only, entering a table (method 1)

# create and enter a two-dimensional contingency table for 'data'
food <- c(28, 10)
affection <- c(48, 114)
Field_2018_cats_conTable <- rbind(food, affection) 
colnames(Field_2018_cats_conTable) <- c('danced', 'did not dance')
# add dimension names to the table
names(attributes(Field_2018_cats_conTable)$dimnames) <- c('Training','Dance') 

CROSSTABS(data = Field_2018_cats_conTable, data_type = 'cont.table')


Observed Frequencies:
           Dance
Training    danced did not dance
  food          28            10
  affection     48           114


Row Totals:
     food affection 
       38       162 


Column Totals:
       danced did not dance 
           76           124 


N = 200


Expected Frequencies:
           Dance
Training    danced did not dance
  food       14.44         23.56
  affection  61.56        100.44


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                         df    p
Pearson Chi-Square             25.356     1    0
Yates Continuity Correction    23.520     1    0
Likelihood Ratio               24.932     1    0
Fisher's Exact p                   NA    NA    0
Linear-by-Linear Assocn.       25.229     1    0
McNemar Test                   23.603     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.335
Phi                          0.356
Cramer's V (from X2)         0.356
Cramer's V (from G2)         0.353
Cohen's W (from X2)          0.356
Cohen's W (from G2)          0.353


Residuals:
           Dance
Training    danced did not dance
  food       13.56        -13.56
  affection -13.56         13.56


Standardized Residuals:
           Dance
Training    danced did not dance
  food       3.568        -2.794
  affection -1.728         1.353


Adjusted Residuals:
           Dance
Training    danced did not dance
  food       5.035        -5.035
  affection -5.035         5.035


2-by-2 Table Effect Sizes
$`Effect Sizes for food vs. affection (Training)  when Dance = danced`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.487 1.835  3.370
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

$`Effect Sizes for affection vs. food (Training)  when Dance = danced`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.402  0.297  0.545
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

$`Effect Sizes for food vs. affection (Training)  when Dance = did not dance`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.374  0.218  0.643
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

$`Effect Sizes for affection vs. food (Training)  when Dance = did not dance`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.674 1.556  4.595
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

Field (2018). Chapter 18: Categorical data – cats only, entering a table (method 2)

# another way of creating the same two-dimensional contingency table for 'data'
Field_2018_cats_conTable_2 <- matrix( c(28, 48, 10, 114), nrow = 2, ncol = 2)
colnames(Field_2018_cats_conTable_2) <- c('danced', 'did not dance')
rownames(Field_2018_cats_conTable_2) <- c('food', 'affection')

CROSSTABS(data = Field_2018_cats_conTable_2, data_type = 'cont.table')


Observed Frequencies:
          danced did not dance
food          28            10
affection     48           114


Row Totals:
     food affection 
       38       162 


Column Totals:
       danced did not dance 
           76           124 


N = 200


Expected Frequencies:
          danced did not dance
food       14.44         23.56
affection  61.56        100.44


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                         df    p
Pearson Chi-Square             25.356     1    0
Yates Continuity Correction    23.520     1    0
Likelihood Ratio               24.932     1    0
Fisher's Exact p                   NA    NA    0
Linear-by-Linear Assocn.       25.229     1    0
McNemar Test                   23.603     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.335
Phi                          0.356
Cramer's V (from X2)         0.356
Cramer's V (from G2)         0.353
Cohen's W (from X2)          0.356
Cohen's W (from G2)          0.353


Residuals:
          danced did not dance
food       13.56        -13.56
affection -13.56         13.56


Standardized Residuals:
          danced did not dance
food       3.568        -2.794
affection -1.728         1.353


Adjusted Residuals:
          danced did not dance
food       5.035        -5.035
affection -5.035         5.035


2-by-2 Table Effect Sizes
$`Effect Sizes for food vs. affection ()  when  = danced`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.487 1.835  3.370
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

$`Effect Sizes for affection vs. food ()  when  = danced`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.402  0.297  0.545
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

$`Effect Sizes for food vs. affection ()  when  = did not dance`
                        CI_lb  CI_ub
Risk difference -0.441 -0.597 -0.284
Risk ratio       0.374  0.218  0.643
Odds ratio       0.150  0.068  0.334
Yule's Q        -0.739 -0.873 -0.500

$`Effect Sizes for affection vs. food ()  when  = did not dance`
                      CI_lb  CI_ub
Risk difference 0.441 0.284  0.597
Risk ratio      2.674 1.556  4.595
Odds ratio      6.650 2.997 14.754
Yule's Q        0.739 0.500  0.873

Field (2018), Chapter 18: Categorical data – dogs only

CROSSTABS(data = subset(datasets$Field_2018, Animal=='Dog'), 
          data_type = 'counts', 
          variables=c('Training','Dance') )


Observed Frequencies:
           Dance
Training    danced did not dance
  affection     29             7
  food          20            14


Row Totals:
affection      food 
       36        34 


Column Totals:
       danced did not dance 
           49            21 


N = 70


Expected Frequencies:
           Dance
Training    danced did not dance
  affection   25.2          10.8
  food        23.8          10.2


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                        df          p
Pearson Chi-Square             3.932     1    0.04736
Yates Continuity Correction    2.966     1    0.08505
Likelihood Ratio               3.984     1    0.04594
Fisher's Exact p                  NA    NA    0.06797
Linear-by-Linear Assocn.       3.876     1    0.04897
McNemar Test                   5.333     1    0.02092


Model Effect Sizes:
                                  
Contingency coefficient C    0.231
Phi                          0.237
Cramer's V (from X2)         0.237
Cramer's V (from G2)         0.239
Cohen's W (from X2)          0.237
Cohen's W (from G2)          0.239


Residuals:
           Dance
Training    danced did not dance
  affection    3.8          -3.8
  food        -3.8           3.8


Standardized Residuals:
           Dance
Training    danced did not dance
  affection  0.757        -1.156
  food      -0.779         1.190


Adjusted Residuals:
           Dance
Training    danced did not dance
  affection  1.983        -1.983
  food      -1.983         1.983


2-by-2 Table Effect Sizes
$`Effect Sizes for affection vs. food (Training)  when Dance = danced`
                       CI_lb CI_ub
Risk difference 0.217  0.007 0.427
Risk ratio      1.369  0.991 1.893
Odds ratio      2.900  0.993 8.466
Yule's Q        0.487 -0.003 0.789

$`Effect Sizes for food vs. affection (Training)  when Dance = danced`
                        CI_lb  CI_ub
Risk difference -0.217 -0.427 -0.007
Risk ratio       0.730  0.528  1.009
Odds ratio       0.345  0.118  1.007
Yule's Q        -0.487 -0.789  0.003

$`Effect Sizes for affection vs. food (Training)  when Dance = did not dance`
                        CI_lb  CI_ub
Risk difference -0.217 -0.427 -0.007
Risk ratio       0.472  0.217  1.027
Odds ratio       0.345  0.118  1.007
Yule's Q        -0.487 -0.789  0.003

$`Effect Sizes for food vs. affection (Training)  when Dance = did not dance`
                       CI_lb CI_ub
Risk difference 0.217  0.007 0.427
Risk ratio      2.118  0.974 4.605
Odds ratio      2.900  0.993 8.466
Yule's Q        0.487 -0.003 0.789

Howell (2017), Chapter 19: Chi-Square p. 512

CROSSTABS(data = datasets$Howell_2017, data_type = 'counts', variables=c('Heart_Attack','Drug'))


Observed Frequencies:
            Drug
Heart_Attack Aspirin Placebo
         No    10933   10845
         Yes     104     189


Row Totals:
   No   Yes 
21778   293 


Column Totals:
Aspirin Placebo 
  11037   11034 


N = 22071


Expected Frequencies:
            Drug
Heart_Attack  Aspirin  Placebo
         No  10890.48 10887.52
         Yes   146.52   146.48


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                            df    p
Pearson Chi-Square                25.014     1    0
Yates Continuity Correction       24.429     1    0
Likelihood Ratio                  25.372     1    0
Fisher's Exact p                      NA    NA    0
Linear-by-Linear Assocn.          25.013     1    0
McNemar Test                   10534.989     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.034
Phi                          0.034
Cramer's V (from X2)         0.034
Cramer's V (from G2)         0.034
Cohen's W (from X2)          0.034
Cohen's W (from G2)          0.034


Residuals:
            Drug
Heart_Attack Aspirin Placebo
         No    42.52  -42.52
         Yes  -42.52   42.52


Standardized Residuals:
            Drug
Heart_Attack Aspirin Placebo
         No    0.407  -0.408
         Yes  -3.513   3.513


Adjusted Residuals:
            Drug
Heart_Attack Aspirin Placebo
         No    5.001  -5.001
         Yes  -5.001   5.001


2-by-2 Table Effect Sizes
$`Effect Sizes for No vs. Yes (Heart_Attack)  when Drug = Aspirin`
                      CI_lb CI_ub
Risk difference 0.147 0.092 0.202
Risk ratio      1.414 1.211 1.651
Odds ratio      1.832 1.440 2.331
Yule's Q        0.294 0.180 0.400

$`Effect Sizes for Yes vs. No (Heart_Attack)  when Drug = Aspirin`
                        CI_lb  CI_ub
Risk difference -0.147 -0.202 -0.092
Risk ratio       0.707  0.606  0.826
Odds ratio       0.546  0.429  0.694
Yule's Q        -0.294 -0.400 -0.180

$`Effect Sizes for No vs. Yes (Heart_Attack)  when Drug = Placebo`
                        CI_lb  CI_ub
Risk difference -0.147 -0.202 -0.092
Risk ratio       0.772  0.708  0.841
Odds ratio       0.546  0.429  0.694
Yule's Q        -0.294 -0.400 -0.180

$`Effect Sizes for Yes vs. No (Heart_Attack)  when Drug = Placebo`
                      CI_lb CI_ub
Risk difference 0.147 0.092 0.202
Risk ratio      1.295 1.189 1.412
Odds ratio      1.832 1.440 2.331
Yule's Q        0.294 0.180 0.400

Howell (2017), Chapter 19: Chi-Square p. 512 reordered variables

# change the order of the variables, which may or may not make the output more interpretable
CROSSTABS(data = datasets$Howell_2017, data_type = 'counts', variables=c('Drug','Heart_Attack'))


Observed Frequencies:
         Heart_Attack
Drug         No   Yes
  Aspirin 10933   104
  Placebo 10845   189


Row Totals:
Aspirin Placebo 
  11037   11034 


Column Totals:
   No   Yes 
21778   293 


N = 22071


Expected Frequencies:
         Heart_Attack
Drug            No    Yes
  Aspirin 10890.48 146.52
  Placebo 10887.52 146.48


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                            df    p
Pearson Chi-Square                25.014     1    0
Yates Continuity Correction       24.429     1    0
Likelihood Ratio                  25.372     1    0
Fisher's Exact p                      NA    NA    0
Linear-by-Linear Assocn.          25.013     1    0
McNemar Test                   10534.989     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.034
Phi                          0.034
Cramer's V (from X2)         0.034
Cramer's V (from G2)         0.034
Cohen's W (from X2)          0.034
Cohen's W (from G2)          0.034


Residuals:
         Heart_Attack
Drug          No    Yes
  Aspirin  42.52 -42.52
  Placebo -42.52  42.52


Standardized Residuals:
         Heart_Attack
Drug          No    Yes
  Aspirin  0.407 -3.513
  Placebo -0.408  3.513


Adjusted Residuals:
         Heart_Attack
Drug          No    Yes
  Aspirin  5.001 -5.001
  Placebo -5.001  5.001


2-by-2 Table Effect Sizes
$`Effect Sizes for Aspirin vs. Placebo (Drug)  when Heart_Attack = No`
                      CI_lb CI_ub
Risk difference 0.008 0.005 0.011
Risk ratio      1.008 1.005 1.011
Odds ratio      1.832 1.440 2.331
Yule's Q        0.294 0.180 0.400

$`Effect Sizes for Placebo vs. Aspirin (Drug)  when Heart_Attack = No`
                        CI_lb  CI_ub
Risk difference -0.008 -0.011 -0.005
Risk ratio       0.992  0.989  0.995
Odds ratio       0.546  0.429  0.694
Yule's Q        -0.294 -0.400 -0.180

$`Effect Sizes for Aspirin vs. Placebo (Drug)  when Heart_Attack = Yes`
                        CI_lb  CI_ub
Risk difference -0.008 -0.011 -0.005
Risk ratio       0.550  0.434  0.698
Odds ratio       0.546  0.429  0.694
Yule's Q        -0.294 -0.400 -0.180

$`Effect Sizes for Placebo vs. Aspirin (Drug)  when Heart_Attack = Yes`
                      CI_lb CI_ub
Risk difference 0.008 0.005 0.011
Risk ratio      1.818 1.433 2.306
Odds ratio      1.832 1.440 2.331
Yule's Q        0.294 0.180 0.400

Noursis (2012). Chapter 1: Model selection Loglinear analysis

CROSSTABS(data = datasets$Noursis_2012_marital,
          data_type = 'counts', 
          variables=c('Marital_Status','Gen.Happiness'))


Observed Frequencies:
               Gen.Happiness
Marital_Status  Happy Not Happy
  Married         566        38
  Split           320        72
  Never Married   313        60


Row Totals:
      Married         Split Never Married 
          604           392           373 


Column Totals:
    Happy Not Happy 
     1199       170 


N = 1369


Expected Frequencies:
               Gen.Happiness
Marital_Status    Happy Not Happy
  Married       528.996    75.004
  Split         343.322    48.678
  Never Married 326.682    46.318


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                          df    p
Pearson Chi-Square              38.217     2    0
Yates Continuity Correction     38.217     2    0
Likelihood Ratio                40.480     2    0
Fisher's Exact p                    NA    NA    0
Linear-by-Linear Association    25.163     2    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.165
Phi                          0.167
Cramer's V (from X2)         0.167
Cramer's V (from G2)         0.172
Cohen's W (from X2)          0.167
Cohen's W (from G2)          0.172


Residuals:
               Gen.Happiness
Marital_Status    Happy Not Happy
  Married        37.004   -37.004
  Split         -23.322    23.322
  Never Married -13.682    13.682


Standardized Residuals:
               Gen.Happiness
Marital_Status   Happy Not Happy
  Married        1.609    -4.273
  Split         -1.259     3.343
  Never Married -0.757     2.010


Adjusted Residuals:
               Gen.Happiness
Marital_Status   Happy Not Happy
  Married        6.108    -6.108
  Split         -4.228     4.228
  Never Married -2.518     2.518

Noursis (2012). Chapter 22: General loglinear analysis

CROSSTABS(data = datasets$Noursis_2012_voting_degree,
          data_type = 'counts', 
          variables=c('Vote','College.Degree'))


Observed Frequencies:
     College.Degree
Vote   No Yes
  No  369  50
  Yes 659 372


Row Totals:
  No  Yes 
 419 1031 


Column Totals:
  No  Yes 
1028  422 


N = 1450


Expected Frequencies:
     College.Degree
Vote       No     Yes
  No  297.057 121.943
  Yes 730.943 300.057


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                          df    p
Pearson Chi-Square              84.199     1    0
Yates Continuity Correction     83.033     1    0
Likelihood Ratio                94.241     1    0
Fisher's Exact p                    NA    NA    0
Linear-by-Linear Assocn.        84.141     1    0
McNemar Test                   521.388     1    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.234
Phi                          0.241
Cramer's V (from X2)         0.241
Cramer's V (from G2)         0.255
Cohen's W (from X2)          0.241
Cohen's W (from G2)          0.255


Residuals:
     College.Degree
Vote       No     Yes
  No   71.943 -71.943
  Yes -71.943  71.943


Standardized Residuals:
     College.Degree
Vote      No    Yes
  No   4.174 -6.515
  Yes -2.661  4.153


Adjusted Residuals:
     College.Degree
Vote      No    Yes
  No   9.176 -9.176
  Yes -9.176  9.176


2-by-2 Table Effect Sizes
$`Effect Sizes for No vs. Yes (Vote)  when College.Degree = No`
                      CI_lb CI_ub
Risk difference 0.241 0.199 0.284
Risk ratio      1.378 1.300 1.460
Odds ratio      4.166 3.020 5.746
Yule's Q        0.613 0.503 0.704

$`Effect Sizes for Yes vs. No (Vote)  when College.Degree = No`
                        CI_lb  CI_ub
Risk difference -0.241 -0.284 -0.199
Risk ratio       0.726  0.685  0.769
Odds ratio       0.240  0.174  0.331
Yule's Q        -0.613 -0.704 -0.503

$`Effect Sizes for No vs. Yes (Vote)  when College.Degree = Yes`
                        CI_lb  CI_ub
Risk difference -0.241 -0.284 -0.199
Risk ratio       0.331  0.252  0.434
Odds ratio       0.240  0.174  0.331
Yule's Q        -0.613 -0.704 -0.503

$`Effect Sizes for Yes vs. No (Vote)  when College.Degree = Yes`
                      CI_lb CI_ub
Risk difference 0.241 0.199 0.284
Risk ratio      3.024 2.302 3.971
Odds ratio      4.166 3.020 5.746
Yule's Q        0.613 0.503 0.704

Stevens (2009). Chapter 14: Categorical data analysis p 472

CROSSTABS(data = datasets$Stevens_2009_HeadStart_1, data_type = 'counts', 
          variables=c('SEX', 'ATTITUDE'))


Observed Frequencies:
   ATTITUDE
SEX  1  2
  1 33  7
  2 37 23


Row Totals:
 1  2 
40 60 


Column Totals:
 1  2 
70 30 


N = 100


Expected Frequencies:
   ATTITUDE
SEX  1  2
  1 28 12
  2 42 18


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                         df          p
Pearson Chi-Square              4.960     1    0.02594
Yates Continuity Correction     4.018     1    0.04502
Likelihood Ratio                5.194     1    0.02266
Fisher's Exact p                   NA    NA    0.02833
Linear-by-Linear Assocn.        4.911     1    0.02669
McNemar Test                   19.114     1    0.00001


Model Effect Sizes:
                                  
Contingency coefficient C    0.217
Phi                          0.223
Cramer's V (from X2)         0.223
Cramer's V (from G2)         0.228
Cohen's W (from X2)          0.223
Cohen's W (from G2)          0.228


Residuals:
   ATTITUDE
SEX  1  2
  1  5 -5
  2 -5  5


Standardized Residuals:
   ATTITUDE
SEX      1      2
  1  0.945 -1.443
  2 -0.772  1.179


Adjusted Residuals:
   ATTITUDE
SEX      1      2
  1  2.227 -2.227
  2 -2.227  2.227


2-by-2 Table Effect Sizes
$`Effect Sizes for 1 vs. 2 (SEX)  when ATTITUDE = 1`
                      CI_lb CI_ub
Risk difference 0.208 0.038 0.379
Risk ratio      1.338 1.047 1.710
Odds ratio      2.931 1.114 7.711
Yule's Q        0.491 0.054 0.770

$`Effect Sizes for 2 vs. 1 (SEX)  when ATTITUDE = 1`
                        CI_lb  CI_ub
Risk difference -0.208 -0.379 -0.038
Risk ratio       0.747  0.585  0.955
Odds ratio       0.341  0.130  0.898
Yule's Q        -0.491 -0.770 -0.054

$`Effect Sizes for 1 vs. 2 (SEX)  when ATTITUDE = 2`
                        CI_lb  CI_ub
Risk difference -0.208 -0.379 -0.038
Risk ratio       0.457  0.217  0.962
Odds ratio       0.341  0.130  0.898
Yule's Q        -0.491 -0.770 -0.054

$`Effect Sizes for 2 vs. 1 (SEX)  when ATTITUDE = 2`
                      CI_lb CI_ub
Risk difference 0.208 0.038 0.379
Risk ratio      2.190 1.039 4.616
Odds ratio      2.931 1.114 7.711
Yule's Q        0.491 0.054 0.770

Warner (2021). Chapter 17: Chi-Square analysis of contingency tables – Titanic data

CROSSTABS(data = datasets$Warner_2020_titanic,
          data_type = 'cont.table')


Observed Frequencies:
       Died Survived
First     4      140
Second   13       80
Third    89       76


Row Totals:
 First Second  Third 
   144     93    165 


Column Totals:
    Died Survived 
     106      296 


N = 402


Expected Frequencies:
         Died Survived
First  37.970  106.030
Second 24.522   68.478
Third  43.507  121.493


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                           df    p
Pearson Chi-Square              113.231     2    0
Yates Continuity Correction     113.231     2    0
Likelihood Ratio                124.286     2    0
Fisher's Exact p                     NA    NA    0
Linear-by-Linear Association    105.362     2    0


Model Effect Sizes:
                                  
Contingency coefficient C    0.469
Phi                          0.531
Cramer's V (from X2)         0.531
Cramer's V (from G2)         0.556
Cohen's W (from X2)          0.531
Cohen's W (from G2)          0.556


Residuals:
          Died Survived
First  -33.970   33.970
Second -11.522   11.522
Third   45.493  -45.493


Standardized Residuals:
         Died Survived
First  -5.513    3.299
Second -2.327    1.392
Third   6.897   -4.127


Adjusted Residuals:
         Died Survived
First  -8.019    8.019
Second -3.093    3.093
Third  10.468  -10.468

Warner (2021). Chapter 17: Chi-Square analysis of contingency tables – Dog Ownership data

CROSSTABS(data = datasets$Warner_2020_dog,
          data_type = 'cont.table')


Observed Frequencies:
    Died Survived
No    11       28
Yes    3       50


Row Totals:
 No Yes 
 39  53 


Column Totals:
    Died Survived 
      14       78 


N = 92


Expected Frequencies:
     Died Survived
No  5.935   33.065
Yes 8.065   44.935


Number of cells with expected count < 5 = 0 (0%)


Chi-Square Tests:
                                         df          p
Pearson Chi-Square              8.851     1    0.00293
Yates Continuity Correction     7.190     1    0.00733
Likelihood Ratio                9.011     1    0.00268
Fisher's Exact p                   NA    NA    0.00637
Linear-by-Linear Assocn.        8.755     1    0.00309
McNemar Test                   18.581     1    0.00002


Model Effect Sizes:
                                  
Contingency coefficient C    0.296
Phi                          0.310
Cramer's V (from X2)         0.310
Cramer's V (from G2)         0.313
Cohen's W (from X2)          0.310
Cohen's W (from G2)          0.313


Residuals:
      Died Survived
No   5.065   -5.065
Yes -5.065    5.065


Standardized Residuals:
      Died Survived
No   2.079   -0.881
Yes -1.784    0.756


Adjusted Residuals:
      Died Survived
No   2.975   -2.975
Yes -2.975    2.975


2-by-2 Table Effect Sizes
$`Effect Sizes for No vs. Yes ()  when  = Died`
                      CI_lb  CI_ub
Risk difference 0.225 0.071  0.380
Risk ratio      4.983 1.489 16.673
Odds ratio      6.548 1.684 25.456
Yule's Q        0.735 0.255  0.924

$`Effect Sizes for Yes vs. No ()  when  = Died`
                        CI_lb  CI_ub
Risk difference -0.225 -0.380 -0.071
Risk ratio       0.201  0.060  0.672
Odds ratio       0.153  0.039  0.594
Yule's Q        -0.735 -0.924 -0.255

$`Effect Sizes for No vs. Yes ()  when  = Survived`
                        CI_lb  CI_ub
Risk difference -0.225 -0.380 -0.071
Risk ratio       0.761  0.618  0.936
Odds ratio       0.153  0.039  0.594
Yule's Q        -0.735 -0.924 -0.255

$`Effect Sizes for Yes vs. No ()  when  = Survived`
                      CI_lb  CI_ub
Risk difference 0.225 0.071  0.380
Risk ratio      1.314 1.068  1.617
Odds ratio      6.548 1.684 25.456
Yule's Q        0.735 0.255  0.924