行百分比的 Express 和卡方检验

发布于 2025-01-13 07:33:26 字数 849 浏览 2 评论 0原文

如何使用 expss 包对行百分比执行卡方检验? 我知道列百分比的显着性测试应该应用于 tab_stat_cpct 与总行的结果。 但我有一个像这样的表,我的卡方 p 值在我的表中是空白的。

d=mtcars
banner <- d %>%  tab_cells(vs, am)
# column percentage significacne
tab_cpct_sig=. %>% 
tab_stat_cpct() %>%
 tab_total_row_position("below") %>% 
    tab_total_statistic("u_rpct")


Table1 = function (Q, banner) {
    eval.parent(substitute(
        {
            banner %>%
                tab_cols (Q) %>%
                 tab_stat_rpct() %>% 
          tab_cols(total(Q)) %>% 
          tab_stat_cases() %>% 
        tab_last_sig_cases(sig_level = 0.05) %>%
        tab_pivot(stat_position = "outside_columns")  %>%  
               
            
            set_caption("Tableau 1") #%>%
         
           
              
        }
    ))
}
A1=Table1(gear,banner)
A1

How to perform a Chi-squared test on a row percent using expss package?
I know the Significance testing on column percent should be applied on the result of tab_stat_cpct with total row.
But I have a table like this and my Chi-squared p-value IS blank IN MY TABLE.

d=mtcars
banner <- d %>%  tab_cells(vs, am)
# column percentage significacne
tab_cpct_sig=. %>% 
tab_stat_cpct() %>%
 tab_total_row_position("below") %>% 
    tab_total_statistic("u_rpct")


Table1 = function (Q, banner) {
    eval.parent(substitute(
        {
            banner %>%
                tab_cols (Q) %>%
                 tab_stat_rpct() %>% 
          tab_cols(total(Q)) %>% 
          tab_stat_cases() %>% 
        tab_last_sig_cases(sig_level = 0.05) %>%
        tab_pivot(stat_position = "outside_columns")  %>%  
               
            
            set_caption("Tableau 1") #%>%
         
           
              
        }
    ))
}
A1=Table1(gear,banner)
A1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

娇纵 2025-01-20 07:33:26

目前expss仅支持对整个表进行卡方检验。但是,我们可以创建一个函数来添加行卡方统计量:

chi_sq_row = function(df){
    totals = grepl("#", df[[1]])
    df_matr = as.matrix(df[,-1][!totals])
    df_matr[is.na(df_matr)] = 0
    df[!totals,"chisq"] = apply(df_matr, 1,
                                   function(each_row) chisq.test(
                                       head(each_row, -1)*tail(each_row, 1)/100
                                   )$statistic
    )
    df[!totals, "pvalue"] = apply(df_matr, 1,
                                   function(each_row) chisq.test(
                                       head(each_row, -1)*tail(each_row, 1)/100
                                   )$p.value
    )
    df
}

Table1 = function (Q, banner) {
    eval.parent(substitute(
        {
            banner %>%
                tab_cols (Q) %>%
                tab_stat_rpct() %>% 
                tab_cols(total(Q)) %>% 
                tab_stat_cases() %>% 
                tab_pivot(stat_position = "outside_columns")  %>%  
                chi_sq_row() %>% 
                set_caption("Tableau 1")
            
            
            
        }
    ))
}
A1=Table1(gear,banner)
A1

Currently expss only supports chi-square test on the entire table. However, we can make a function to add rowwise chi-square statistic:

chi_sq_row = function(df){
    totals = grepl("#", df[[1]])
    df_matr = as.matrix(df[,-1][!totals])
    df_matr[is.na(df_matr)] = 0
    df[!totals,"chisq"] = apply(df_matr, 1,
                                   function(each_row) chisq.test(
                                       head(each_row, -1)*tail(each_row, 1)/100
                                   )$statistic
    )
    df[!totals, "pvalue"] = apply(df_matr, 1,
                                   function(each_row) chisq.test(
                                       head(each_row, -1)*tail(each_row, 1)/100
                                   )$p.value
    )
    df
}

Table1 = function (Q, banner) {
    eval.parent(substitute(
        {
            banner %>%
                tab_cols (Q) %>%
                tab_stat_rpct() %>% 
                tab_cols(total(Q)) %>% 
                tab_stat_cases() %>% 
                tab_pivot(stat_position = "outside_columns")  %>%  
                chi_sq_row() %>% 
                set_caption("Tableau 1")
            
            
            
        }
    ))
}
A1=Table1(gear,banner)
A1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文