一、資料整理

pacman::p_load(openxlsx)
dta <- read.xlsx(xlsxFile ="ANA_V2(遺漏值改1)(有加權).xlsx", sheet = 'ANA')

資料結構

dta$sleep_grp<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("poor", "moderate", "good"))
dta$sleep_grp1<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("1", "2", "3"))
dta$sleep1_1<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("1", "2", "3"))
dta$sleep2_1<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("1", "2", "3"))
dta$sleep3_1<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("1", "2", "3"))
dta$sleep4_1<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("1", "2", "3"))
dta$sleep5_1<-cut(dta$T_Sleep, c(0, 7, 9, 10), c("1", "2", "3"))

將睡眠進行分組 0~7poor ,8~9moderate, 10 good。 參考以下文章 Dalmases, M., Benítez, I. D., Mas, A., Garcia-Codina, O., Medina-Bustos, A., Escarrabill, J., … & de Batlle, J. (2018). Assessing sleep health in a European population: results of the Catalan Health Survey 2015. PloS one, 13(4), e0194495.

head(dta)
pacman::p_load(ggplot2,Hmisc, MASS, reshape2,vcd)

二、睡眠5題的基本描述

將五題睡眠進行”poor”, “moderate”, “good”分組後,在性別、年齡、健康識能、KAP上資料分布皆相同。

Sleep1 您對您的睡眠狀況滿意嗎?

pacman::p_load(gtsummary)
#sleep2_1, sleep3_1, sleep4_1, sleep5_1

sleep1<- dta  %>%
select(SEX, AGE,ATOTAL,K_SUM,A_SUM,P_SUM, LIVING,LIVING1_1,LIVING1_11,  LIVING1_12,sleep1_1)  %>%
tbl_summary(by = sleep1_1, label = list(SEX ~ "Sex", AGE ~ "Age", ATOTAL ~ "Health awareness",K_SUM ~ "Knoeledge ", A_SUM ~ "Attitude", P_SUM ~ "Practice")) %>%
add_p()%>%
add_stat_label() %>%
bold_labels() %>%
modify_header(list(label ~ "**Variable**", all_stat_cols() ~ "**{level}**")) %>%
modify_spanning_header(all_stat_cols() ~ "**Group**") %>%
as_gt() %>%
gt::tab_header(
title = gt::md("**Table 1. Sleep Satisfaction **"))
## 1 observations missing `sleep1_1` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `sleep1_1` column before passing to `tbl_summary()`.
## There was an error in 'add_p()/add_difference()' for variable 'LIVING1_11', p-value omitted:
## Error in stats::fisher.test(c(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, : FEXACT 錯誤碼 6.  LDKEY=618 對此問題而言太小,
##   (ii := key2[itp=699] = 1812637, ldstp=18540)
## 嘗試增加工作空間的大小並盡可能 'mult'
sleep1
**Table 1. Sleep Satisfaction **
Variable Group p-value1
1 2 3
Sex, n (%) 195 (47%) 82 (47%) 28 (47%) >0.9
Age, Median (IQR) 47 (24, 57) 42 (24, 56) 50 (25, 62) 0.3
Health awareness, Median (IQR) 94 (80, 110) 95 (77, 110) 96 (80, 109) >0.9
Knoeledge , Median (IQR) 7.39 (5.72, 8.44) 7.39 (6.13, 8.45) 6.97 (5.77, 7.62) 0.2
Attitude, Median (IQR) 24.4 (21.4, 27.0) 24.4 (21.0, 27.8) 23.7 (20.1, 27.0) 0.6
Practice, Median (IQR) 38 (33, 43) 38 (33, 43) 38 (32, 41) 0.6
LIVING, n (%) 346 (84%) 152 (87%) 55 (92%) 0.3
LIVING1_1, n (%) 0.4
0 277 (67%) 115 (66%) 41 (68%)
1 69 (17%) 37 (21%) 14 (23%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_11, n (%)
0 23 (5.6%) 10 (5.7%) 4 (6.7%)
1 323 (79%) 142 (81%) 51 (85%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_12, n (%) 0.6
0 230 (56%) 103 (59%) 36 (60%)
1 116 (28%) 49 (28%) 19 (32%)
2 65 (16%) 23 (13%) 5 (8.3%)

1 Pearson's Chi-squared test; Kruskal-Wallis rank sum test

Sleep2 您可以整天保持清醒而沒有打瞌睡嗎?

sleep2<- dta  %>%
select(SEX, AGE,ATOTAL,K_SUM,A_SUM,P_SUM, LIVING,LIVING1_1,LIVING1_11,  LIVING1_12,sleep2_1)  %>%
tbl_summary(by = sleep2_1, label = list(SEX ~ "Sex", AGE ~ "Age", ATOTAL ~ "Health awareness",K_SUM ~ "Knoeledge ", A_SUM ~ "Attitude", P_SUM ~ "Practice")) %>%
add_p()%>%
add_stat_label() %>%
bold_labels() %>%
modify_header(list(label ~ "**Variable**", all_stat_cols() ~ "**{level}**")) %>%
modify_spanning_header(all_stat_cols() ~ "**Group**") %>%
as_gt() %>%
gt::tab_header(
title = gt::md("**Table 2. Sleep Alertness**"))
## 1 observations missing `sleep2_1` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `sleep2_1` column before passing to `tbl_summary()`.
## There was an error in 'add_p()/add_difference()' for variable 'LIVING1_11', p-value omitted:
## Error in stats::fisher.test(c(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, : FEXACT 錯誤碼 6.  LDKEY=618 對此問題而言太小,
##   (ii := key2[itp=699] = 1812637, ldstp=18540)
## 嘗試增加工作空間的大小並盡可能 'mult'
sleep2
Table 2. Sleep Alertness
Variable Group p-value1
1 2 3
Sex, n (%) 195 (47%) 82 (47%) 28 (47%) >0.9
Age, Median (IQR) 47 (24, 57) 42 (24, 56) 50 (25, 62) 0.3
Health awareness, Median (IQR) 94 (80, 110) 95 (77, 110) 96 (80, 109) >0.9
Knoeledge , Median (IQR) 7.39 (5.72, 8.44) 7.39 (6.13, 8.45) 6.97 (5.77, 7.62) 0.2
Attitude, Median (IQR) 24.4 (21.4, 27.0) 24.4 (21.0, 27.8) 23.7 (20.1, 27.0) 0.6
Practice, Median (IQR) 38 (33, 43) 38 (33, 43) 38 (32, 41) 0.6
LIVING, n (%) 346 (84%) 152 (87%) 55 (92%) 0.3
LIVING1_1, n (%) 0.4
0 277 (67%) 115 (66%) 41 (68%)
1 69 (17%) 37 (21%) 14 (23%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_11, n (%)
0 23 (5.6%) 10 (5.7%) 4 (6.7%)
1 323 (79%) 142 (81%) 51 (85%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_12, n (%) 0.6
0 230 (56%) 103 (59%) 36 (60%)
1 116 (28%) 49 (28%) 19 (32%)
2 65 (16%) 23 (13%) 5 (8.3%)

1 Pearson's Chi-squared test; Kruskal-Wallis rank sum test

Sleep3 您在凌晨2點~4點間睡著了(或是試圖入睡)嗎?

sleep3<- dta  %>%
select(SEX, AGE,ATOTAL,K_SUM,A_SUM,P_SUM, LIVING,LIVING1_1,LIVING1_11,  LIVING1_12,sleep3_1)  %>%
tbl_summary(by = sleep3_1, label = list(SEX ~ "Sex", AGE ~ "Age", ATOTAL ~ "Health awareness",K_SUM ~ "Knoeledge ", A_SUM ~ "Attitude", P_SUM ~ "Practice")) %>%
add_p()%>%
add_stat_label() %>%
bold_labels() %>%
modify_header(list(label ~ "**Variable**", all_stat_cols() ~ "**{level}**")) %>%
modify_spanning_header(all_stat_cols() ~ "**Group**") %>%
as_gt() %>%
gt::tab_header(
title = gt::md("**Table 3. Sleep Timing **"))
## 1 observations missing `sleep3_1` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `sleep3_1` column before passing to `tbl_summary()`.
## There was an error in 'add_p()/add_difference()' for variable 'LIVING1_11', p-value omitted:
## Error in stats::fisher.test(c(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, : FEXACT 錯誤碼 6.  LDKEY=618 對此問題而言太小,
##   (ii := key2[itp=699] = 1812637, ldstp=18540)
## 嘗試增加工作空間的大小並盡可能 'mult'
sleep3
**Table 3. Sleep Timing **
Variable Group p-value1
1 2 3
Sex, n (%) 195 (47%) 82 (47%) 28 (47%) >0.9
Age, Median (IQR) 47 (24, 57) 42 (24, 56) 50 (25, 62) 0.3
Health awareness, Median (IQR) 94 (80, 110) 95 (77, 110) 96 (80, 109) >0.9
Knoeledge , Median (IQR) 7.39 (5.72, 8.44) 7.39 (6.13, 8.45) 6.97 (5.77, 7.62) 0.2
Attitude, Median (IQR) 24.4 (21.4, 27.0) 24.4 (21.0, 27.8) 23.7 (20.1, 27.0) 0.6
Practice, Median (IQR) 38 (33, 43) 38 (33, 43) 38 (32, 41) 0.6
LIVING, n (%) 346 (84%) 152 (87%) 55 (92%) 0.3
LIVING1_1, n (%) 0.4
0 277 (67%) 115 (66%) 41 (68%)
1 69 (17%) 37 (21%) 14 (23%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_11, n (%)
0 23 (5.6%) 10 (5.7%) 4 (6.7%)
1 323 (79%) 142 (81%) 51 (85%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_12, n (%) 0.6
0 230 (56%) 103 (59%) 36 (60%)
1 116 (28%) 49 (28%) 19 (32%)
2 65 (16%) 23 (13%) 5 (8.3%)

1 Pearson's Chi-squared test; Kruskal-Wallis rank sum test

Sleep4 您夜晚醒著的時間少於30分鐘嗎?(這包括進入睡眠的時間與從睡眠中醒來的時間)

sleep4<- dta  %>%
select(SEX, AGE,ATOTAL,K_SUM,A_SUM,P_SUM, LIVING,LIVING1_1,LIVING1_11,  LIVING1_12,sleep4_1)  %>%
tbl_summary(by = sleep4_1, label = list(SEX ~ "Sex", AGE ~ "Age", ATOTAL ~ "Health awareness",K_SUM ~ "Knoeledge ", A_SUM ~ "Attitude", P_SUM ~ "Practice")) %>%
add_p()%>%
add_stat_label() %>%
bold_labels() %>%
modify_header(list(label ~ "**Variable**", all_stat_cols() ~ "**{level}**")) %>%
modify_spanning_header(all_stat_cols() ~ "**Group**") %>%
as_gt() %>%
gt::tab_header(
title = gt::md("**Table 4. Sleep Efficiency **"))
## 1 observations missing `sleep4_1` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `sleep4_1` column before passing to `tbl_summary()`.
## There was an error in 'add_p()/add_difference()' for variable 'LIVING1_11', p-value omitted:
## Error in stats::fisher.test(c(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, : FEXACT 錯誤碼 6.  LDKEY=618 對此問題而言太小,
##   (ii := key2[itp=699] = 1812637, ldstp=18540)
## 嘗試增加工作空間的大小並盡可能 'mult'
sleep4
**Table 4. Sleep Efficiency **
Variable Group p-value1
1 2 3
Sex, n (%) 195 (47%) 82 (47%) 28 (47%) >0.9
Age, Median (IQR) 47 (24, 57) 42 (24, 56) 50 (25, 62) 0.3
Health awareness, Median (IQR) 94 (80, 110) 95 (77, 110) 96 (80, 109) >0.9
Knoeledge , Median (IQR) 7.39 (5.72, 8.44) 7.39 (6.13, 8.45) 6.97 (5.77, 7.62) 0.2
Attitude, Median (IQR) 24.4 (21.4, 27.0) 24.4 (21.0, 27.8) 23.7 (20.1, 27.0) 0.6
Practice, Median (IQR) 38 (33, 43) 38 (33, 43) 38 (32, 41) 0.6
LIVING, n (%) 346 (84%) 152 (87%) 55 (92%) 0.3
LIVING1_1, n (%) 0.4
0 277 (67%) 115 (66%) 41 (68%)
1 69 (17%) 37 (21%) 14 (23%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_11, n (%)
0 23 (5.6%) 10 (5.7%) 4 (6.7%)
1 323 (79%) 142 (81%) 51 (85%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_12, n (%) 0.6
0 230 (56%) 103 (59%) 36 (60%)
1 116 (28%) 49 (28%) 19 (32%)
2 65 (16%) 23 (13%) 5 (8.3%)

1 Pearson's Chi-squared test; Kruskal-Wallis rank sum test

Sleep5 您每天的睡眠時間介於6-8小時之間嗎?

sleep5<- dta  %>%
select(SEX, AGE,ATOTAL,K_SUM,A_SUM,P_SUM, LIVING,LIVING1_1,LIVING1_11,  LIVING1_12,sleep5_1)  %>%
tbl_summary(by = sleep5_1, label = list(SEX ~ "Sex", AGE ~ "Age", ATOTAL ~ "Health awareness",K_SUM ~ "Knoeledge ", A_SUM ~ "Attitude", P_SUM ~ "Practice")) %>%
add_p()%>%
add_stat_label() %>%
bold_labels() %>%
modify_header(list(label ~ "**Variable**", all_stat_cols() ~ "**{level}**")) %>%
modify_spanning_header(all_stat_cols() ~ "**Group**") %>%
as_gt() %>%
gt::tab_header(
title = gt::md("**Table 5. Sleep  Duration **"))
## 1 observations missing `sleep5_1` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `sleep5_1` column before passing to `tbl_summary()`.
## There was an error in 'add_p()/add_difference()' for variable 'LIVING1_11', p-value omitted:
## Error in stats::fisher.test(c(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, : FEXACT 錯誤碼 6.  LDKEY=618 對此問題而言太小,
##   (ii := key2[itp=699] = 1812637, ldstp=18540)
## 嘗試增加工作空間的大小並盡可能 'mult'
sleep5
**Table 5. Sleep Duration **
Variable Group p-value1
1 2 3
Sex, n (%) 195 (47%) 82 (47%) 28 (47%) >0.9
Age, Median (IQR) 47 (24, 57) 42 (24, 56) 50 (25, 62) 0.3
Health awareness, Median (IQR) 94 (80, 110) 95 (77, 110) 96 (80, 109) >0.9
Knoeledge , Median (IQR) 7.39 (5.72, 8.44) 7.39 (6.13, 8.45) 6.97 (5.77, 7.62) 0.2
Attitude, Median (IQR) 24.4 (21.4, 27.0) 24.4 (21.0, 27.8) 23.7 (20.1, 27.0) 0.6
Practice, Median (IQR) 38 (33, 43) 38 (33, 43) 38 (32, 41) 0.6
LIVING, n (%) 346 (84%) 152 (87%) 55 (92%) 0.3
LIVING1_1, n (%) 0.4
0 277 (67%) 115 (66%) 41 (68%)
1 69 (17%) 37 (21%) 14 (23%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_11, n (%)
0 23 (5.6%) 10 (5.7%) 4 (6.7%)
1 323 (79%) 142 (81%) 51 (85%)
2 65 (16%) 23 (13%) 5 (8.3%)
LIVING1_12, n (%) 0.6
0 230 (56%) 103 (59%) 36 (60%)
1 116 (28%) 49 (28%) 19 (32%)
2 65 (16%) 23 (13%) 5 (8.3%)

1 Pearson's Chi-squared test; Kruskal-Wallis rank sum test

三、Ordinal Regression

五題的回歸皆無顯著。

pacman::p_load(ordinal,ggeffects, effects,tidyverse)
cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")

Sleep1 您對您的睡眠狀況滿意嗎?

ols1 = clm(sleep1_1~SEX+ AGE+EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM+ LIVING+LIVING1_1+ LIVING1_11+ LIVING1_12 ,data = dta, link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
##   Consider formula(paste(x, collapse = " ")) instead.
summary(ols1)
## formula: 
## sleep1_1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM + LIVING + LIVING1_1 + LIVING1_11 + LIVING1_12
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -549.28 1124.56 5(0)  1.67e-10 6.4e+06
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## SEX         0.015322   0.169067   0.091   0.9278  
## AGE         0.008941   0.005612   1.593   0.1111  
## EDU         0.284502   0.114174   2.492   0.0127 *
## ATOTAL      0.008184   0.004543   1.802   0.0716 .
## K_SUM      -0.008298   0.052983  -0.157   0.8755  
## A_SUM      -0.019978   0.025110  -0.796   0.4262  
## P_SUM      -0.018890   0.014547  -1.299   0.1941  
## LIVING      0.516275   0.692544   0.745   0.4560  
## LIVING1_1   0.290993   0.213012   1.366   0.1719  
## LIVING1_11 -0.218531   0.388839  -0.562   0.5741  
## LIVING1_12 -0.087645   0.205582  -0.426   0.6699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2    1.276      1.129   1.130
## 2|3    3.022      1.136   2.659
## (因為不存在,1 個觀察量被刪除了)
exp(coef(ols1))
##        1|2        2|3        SEX        AGE        EDU     ATOTAL      K_SUM 
##  3.5805148 20.5366803  1.0154402  1.0089807  1.3290997  1.0082178  0.9917364 
##      A_SUM      P_SUM     LIVING  LIVING1_1 LIVING1_11 LIVING1_12 
##  0.9802201  0.9812876  1.6757729  1.3377552  0.8036986  0.9160861

Sleep2 您可以整天保持清醒而沒有打瞌睡嗎?

ols1 = clm(sleep2_1~SEX+ AGE+EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM+ LIVING+LIVING1_1+ LIVING1_11+ LIVING1_12 ,data = dta, link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
##   Consider formula(paste(x, collapse = " ")) instead.
summary(ols1)
## formula: 
## sleep2_1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM + LIVING + LIVING1_1 + LIVING1_11 + LIVING1_12
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -549.28 1124.56 5(0)  1.67e-10 6.4e+06
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## SEX         0.015322   0.169067   0.091   0.9278  
## AGE         0.008941   0.005612   1.593   0.1111  
## EDU         0.284502   0.114174   2.492   0.0127 *
## ATOTAL      0.008184   0.004543   1.802   0.0716 .
## K_SUM      -0.008298   0.052983  -0.157   0.8755  
## A_SUM      -0.019978   0.025110  -0.796   0.4262  
## P_SUM      -0.018890   0.014547  -1.299   0.1941  
## LIVING      0.516275   0.692544   0.745   0.4560  
## LIVING1_1   0.290993   0.213012   1.366   0.1719  
## LIVING1_11 -0.218531   0.388839  -0.562   0.5741  
## LIVING1_12 -0.087645   0.205582  -0.426   0.6699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2    1.276      1.129   1.130
## 2|3    3.022      1.136   2.659
## (因為不存在,1 個觀察量被刪除了)

Sleep3 您在凌晨2點~4點間睡著了(或是試圖入睡)嗎?

ols1 = clm(sleep3_1~SEX+ AGE+EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM+ LIVING+LIVING1_1+ LIVING1_11+ LIVING1_12 ,data = dta, link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
##   Consider formula(paste(x, collapse = " ")) instead.
summary(ols1)
## formula: 
## sleep3_1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM + LIVING + LIVING1_1 + LIVING1_11 + LIVING1_12
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -549.28 1124.56 5(0)  1.67e-10 6.4e+06
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## SEX         0.015322   0.169067   0.091   0.9278  
## AGE         0.008941   0.005612   1.593   0.1111  
## EDU         0.284502   0.114174   2.492   0.0127 *
## ATOTAL      0.008184   0.004543   1.802   0.0716 .
## K_SUM      -0.008298   0.052983  -0.157   0.8755  
## A_SUM      -0.019978   0.025110  -0.796   0.4262  
## P_SUM      -0.018890   0.014547  -1.299   0.1941  
## LIVING      0.516275   0.692544   0.745   0.4560  
## LIVING1_1   0.290993   0.213012   1.366   0.1719  
## LIVING1_11 -0.218531   0.388839  -0.562   0.5741  
## LIVING1_12 -0.087645   0.205582  -0.426   0.6699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2    1.276      1.129   1.130
## 2|3    3.022      1.136   2.659
## (因為不存在,1 個觀察量被刪除了)

Sleep4 您夜晚醒著的時間少於30分鐘嗎?(這包括進入睡眠的時間與從睡眠中醒來的時間)

ols1 = clm(sleep4_1~SEX+ AGE+EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM+ LIVING+LIVING1_1+ LIVING1_11+ LIVING1_12 ,data = dta, link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
##   Consider formula(paste(x, collapse = " ")) instead.
summary(ols1)
## formula: 
## sleep4_1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM + LIVING + LIVING1_1 + LIVING1_11 + LIVING1_12
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -549.28 1124.56 5(0)  1.67e-10 6.4e+06
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## SEX         0.015322   0.169067   0.091   0.9278  
## AGE         0.008941   0.005612   1.593   0.1111  
## EDU         0.284502   0.114174   2.492   0.0127 *
## ATOTAL      0.008184   0.004543   1.802   0.0716 .
## K_SUM      -0.008298   0.052983  -0.157   0.8755  
## A_SUM      -0.019978   0.025110  -0.796   0.4262  
## P_SUM      -0.018890   0.014547  -1.299   0.1941  
## LIVING      0.516275   0.692544   0.745   0.4560  
## LIVING1_1   0.290993   0.213012   1.366   0.1719  
## LIVING1_11 -0.218531   0.388839  -0.562   0.5741  
## LIVING1_12 -0.087645   0.205582  -0.426   0.6699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2    1.276      1.129   1.130
## 2|3    3.022      1.136   2.659
## (因為不存在,1 個觀察量被刪除了)

Sleep5 您每天的睡眠時間介於6-8小時之間嗎?

ols1 = clm(sleep5_1~SEX+ AGE+ EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM+ LIVING+LIVING1_1+ LIVING1_11+ LIVING1_12 ,data = dta, link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
##   Consider formula(paste(x, collapse = " ")) instead.
summary(ols1)
## formula: 
## sleep5_1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM + LIVING + LIVING1_1 + LIVING1_11 + LIVING1_12
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -549.28 1124.56 5(0)  1.67e-10 6.4e+06
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## SEX         0.015322   0.169067   0.091   0.9278  
## AGE         0.008941   0.005612   1.593   0.1111  
## EDU         0.284502   0.114174   2.492   0.0127 *
## ATOTAL      0.008184   0.004543   1.802   0.0716 .
## K_SUM      -0.008298   0.052983  -0.157   0.8755  
## A_SUM      -0.019978   0.025110  -0.796   0.4262  
## P_SUM      -0.018890   0.014547  -1.299   0.1941  
## LIVING      0.516275   0.692544   0.745   0.4560  
## LIVING1_1   0.290993   0.213012   1.366   0.1719  
## LIVING1_11 -0.218531   0.388839  -0.562   0.5741  
## LIVING1_12 -0.087645   0.205582  -0.426   0.6699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2    1.276      1.129   1.130
## 2|3    3.022      1.136   2.659
## (因為不存在,1 個觀察量被刪除了)

以睡眠總分來看,也得到同樣結果。

ols1 = clm(sleep_grp1~SEX+ AGE+ EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM+ LIVING+LIVING1_1+ LIVING1_11+ LIVING1_12 ,data = dta, link = "logit")
## Warning: Using formula(x) is deprecated when x is a character vector of length > 1.
##   Consider formula(paste(x, collapse = " ")) instead.
summary(ols1)
## formula: 
## sleep_grp1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM + LIVING + LIVING1_1 + LIVING1_11 + LIVING1_12
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -549.28 1124.56 5(0)  1.67e-10 6.4e+06
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## SEX         0.015322   0.169067   0.091   0.9278  
## AGE         0.008941   0.005612   1.593   0.1111  
## EDU         0.284502   0.114174   2.492   0.0127 *
## ATOTAL      0.008184   0.004543   1.802   0.0716 .
## K_SUM      -0.008298   0.052983  -0.157   0.8755  
## A_SUM      -0.019978   0.025110  -0.796   0.4262  
## P_SUM      -0.018890   0.014547  -1.299   0.1941  
## LIVING      0.516275   0.692544   0.745   0.4560  
## LIVING1_1   0.290993   0.213012   1.366   0.1719  
## LIVING1_11 -0.218531   0.388839  -0.562   0.5741  
## LIVING1_12 -0.087645   0.205582  -0.426   0.6699  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2    1.276      1.129   1.130
## 2|3    3.022      1.136   2.659
## (因為不存在,1 個觀察量被刪除了)

若將居住狀況移除,5題中只有教育顯著,以下僅秀出sleep5的情況。

ols1 = clm(sleep5_1~SEX+ AGE+ EDU+ ATOTAL+ K_SUM+ A_SUM+ P_SUM ,data = dta, link = "logit")
summary(ols1)
## formula: sleep5_1 ~ SEX + AGE + EDU + ATOTAL + K_SUM + A_SUM + P_SUM
## data:    dta
## 
##  link  threshold nobs logLik  AIC     niter max.grad cond.H 
##  logit flexible  646  -551.51 1121.02 5(0)  1.77e-10 1.1e+06
## 
## Coefficients:
##         Estimate Std. Error z value Pr(>|z|)  
## SEX    -0.021555   0.167514  -0.129   0.8976  
## AGE     0.010056   0.005355   1.878   0.0604 .
## EDU     0.284783   0.113384   2.512   0.0120 *
## ATOTAL  0.007718   0.004515   1.709   0.0874 .
## K_SUM  -0.004639   0.052676  -0.088   0.9298  
## A_SUM  -0.020160   0.024927  -0.809   0.4186  
## P_SUM  -0.017491   0.014379  -1.216   0.2238  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Threshold coefficients:
##     Estimate Std. Error z value
## 1|2   1.0436     0.5026   2.076
## 2|3   2.7834     0.5167   5.387
## (因為不存在,1 個觀察量被刪除了)