lệnh giúp setwd về thư mục chứa file Rscript mà mình đang làm việc
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))
library(readr)
data <- read_csv("Sleep_health_and_lifestyle_dataset.csv")
## Rows: 374 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): Gender, Occupation, BMI Category, Blood Pressure, Sleep Disorder
## dbl (8): Person ID, Age, Sleep Duration, Quality of Sleep, Physical Activity...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Bộ dữ liệu được sử dụng là data_health_and_lifestyle_dataset.csv, gồm 374 quan sát (374 người) và 13 biến phản ánh đặc điểm nhân khẩu học, sức khỏe và lối sống.
Các biến này đại diện tốt cho tình trạng sức khỏe, lối sống và phù hợp với yêu cầu thống kê mô tả.
Bảng tần số của BMI Category
table_bmi <- table(data$`BMI Category`)
data_bmi_freq <- data.frame(
BMI_Category = names(table_bmi),
Tần_số = as.vector(table_bmi)
)
data_bmi_freq$Tỷ_lệ_phần_trăm <- round(data_bmi_freq$Tần_số / sum(data_bmi_freq$Tần_số) * 100, 2)
print(data_bmi_freq)
## BMI_Category Tần_số Tỷ_lệ_phần_trăm
## 1 Normal 195 52.14
## 2 Normal Weight 21 5.61
## 3 Obese 10 2.67
## 4 Overweight 148 39.57
Biểu đồ thanh
barplot(table_bmi, main = "Biểu đồ tần số BMI Category", xlab = "Hạng mục BMI", ylab = "Tần số", col = "skyblue")
Nhận xét: Biểu đồ cho thấy sự phân bố tập trung cao độ vào 2 hạng mục:
Bình thường (Normal) chiếm hơn một nửa (52.14%) và Thừa cân (Overweight)
chiếm gần 40% (39.57%). Các hạng mục Béo phì (Obese) và Cân nặng Bình
thường (Normal Weight) có tỷ lệ rất thấp (tổng cộng khoảng 8,28% ), cho
thấy phần lớn mẫu nằm ở mức BMI từ bình thường đến thừa cân
Bảng tần số của Occupation
table_occ <- table(data$Occupation)
prop_occ <- prop.table(table_occ) * 100
data_occ <- data.frame(table_occ, Tỷ_lệ = prop_occ)
names(data_occ) <- c("Occupation", "Tần_số", "Tỷ_lệ_phần_trăm")
print("Bảng Tần số Nghề nghiệp:")
## [1] "Bảng Tần số Nghề nghiệp:"
data_occ
## Occupation Tần_số Tỷ_lệ_phần_trăm <NA>
## 1 Accountant 37 Accountant 9.8930481
## 2 Doctor 71 Doctor 18.9839572
## 3 Engineer 63 Engineer 16.8449198
## 4 Lawyer 47 Lawyer 12.5668449
## 5 Manager 1 Manager 0.2673797
## 6 Nurse 73 Nurse 19.5187166
## 7 Sales Representative 2 Sales Representative 0.5347594
## 8 Salesperson 32 Salesperson 8.5561497
## 9 Scientist 4 Scientist 1.0695187
## 10 Software Engineer 4 Software Engineer 1.0695187
## 11 Teacher 40 Teacher 10.6951872
Nhận xét: Biểu đồ thể hiện sự phân bố không đồng đều, với sự áp đảo của 3 nhóm nghề nghiệp chính: Y tá (Nurse), Bác sĩ (Doctor), và Kỹ sư (Engineer), tổng cộng chiếm hơn 55% số quan sát. Các nhóm còn lại như Lawyer, Teacher, và Accountant chiếm tỷ lệ vừa phải, trong khi các nhóm như Manager, Sales Representative, Software Engineer, và Scientist có tần suất rất thấp, cho thấy tính đại diện không đồng nhất của các ngành nghề trong mẫu
Biểu đồ thanh
barplot(table_occ,
main = "Biểu đồ tần số Nghề nghiệp",
xlab = "Nghề nghiệp",
ylab = "Tần số",
col = "lightgreen",
las = 2, # Xoay nhãn trục x để dễ đọc
mar = c(10, 4, 4, 2) + 0.1)
Biến Định lượng Age Vẽ Histogram (Phân tổ dữ liệu)
hist(data$Age,
main = "Histogram của Age",
xlab = "Tuổi",
ylab = "Tần số",
col = "salmon",
breaks = 10)
Nhận xét Độ tuổi dao động từ 27 đến 59. Phần lớn tập trung trong nhóm
35–50 tuổi. Độ phân tán ở mức vừa phải, không xuất hiện ngoại biên
Vẽ Biểu đồ hộp
boxplot(data$Age,
main = "Boxplot của Age",
ylab = "Tuổi",
col = "salmon")
Nhận xét: Không xuất hiện giá trị ngoại biên (outlier). Độ trải giữa
phân vị rộng (IQR = 14.75) → mẫu có độ phân tán tuổi tương đối cao. Phân
phối hơi lệch phải do phần đuôi trên dài hơn.
Biến Định lượng Daily Steps Vẽ Histogram (Phân tổ dữ liệu)
hist(data$`Daily Steps`,
main = "Histogram của Daily Steps",
xlab = "Số bước chân hàng ngày",
ylab = "Tần số",
col = "salmon",
breaks = 10)
Nhận xét: Dữ liệu có hai vùng tập trung chính: khoảng 5000–6000 bước và
7000–8000 bước. Phân phối tương đối đều, không lệch mạnh sang trái hoặc
phải. Nhóm bước cao (≥ 8000) vẫn xuất hiện nhiều → thể hiện mức độ vận
động tốt của phần lớn mẫu.
Vẽ Biểu đồ hộp (Boxplot)
boxplot(data$`Daily Steps`,
main = "Boxplot của Daily Steps",
ylab = "Số bước chân hàng ngày",
col = "gold")
Nhận xét: Không có ngoại biên → dữ liệu khá ổn định. Trung vị ở mức 7000
bước cho thấy phần lớn người tham gia vận động ở mức trung bình – cao.
IQR = 2400 cho thấy số bước có độ phân tán vừa phải.
min(data$Age)
## [1] 27
max(data$Age)
## [1] 59
range(data$Age)
## [1] 27 59
quantile(data$Age, 0.25)
## 25%
## 35.25
quantile(data$Age, 0.50)
## 50%
## 43
quantile(data$Age, 0.75)
## 75%
## 50
IQR(data$Age)
## [1] 14.75
sd(data$Age)
## [1] 8.673133
var(data$Age)
## [1] 75.22324
Nhận xét Độ tuổi dao động từ 27 đến 59. Phần lớn tập trung trong nhóm 35–50 tuổi. Độ phân tán ở mức vừa phải, không xuất hiện ngoại biên
min(data$`Daily Steps`)
## [1] 3000
max(data$`Daily Steps`)
## [1] 10000
range(data$`Daily Steps`)
## [1] 3000 10000
quantile(data$`Daily Steps`, 0.25)
## 25%
## 5600
quantile(data$`Daily Steps`, 0.50)
## 50%
## 7000
quantile(data$`Daily Steps`, 0.75)
## 75%
## 8000
IQR(data$`Daily Steps`)
## [1] 2400
sd(data$`Daily Steps`)
## [1] 1617.916
var(data$`Daily Steps`)
## [1] 2617651
Nhận xét Số bước dao động từ 3.000 đến 10.000 bước/ngày. Trung vị khoảng 7.000 bước/ngày. Phần lớn người tham gia có mức vận động trung bình đến khá.
Bộ dữ liệu có phân bố hợp lý, phản ánh đặc điểm của nhóm người trưởng thành đang làm việc.
BMI Category chủ yếu tập trung ở nhóm Normal/Normal Weight, tiếp theo là Overweight; nhóm Obese chiếm tỷ lệ nhỏ. Occupation phân bố không đồng đều, trong đó các nhóm Doctor, Nurse, Engineer, Teacher và Lawyer xuất hiện nhiều nhất. Age dao động từ 27 đến 59 tuổi, tập trung chủ yếu trong nhóm 35–50 tuổi, với mức độ phân tán tương đối thấp. Daily Steps có giá trị trung bình khoảng 6.800 bước/ngày, phần lớn nằm trong khoảng 5.600–8.000 bước/ngày, cho thấy mức độ vận động từ trung bình đến khá. Daily Steps có độ phân tán lớn hơn Age, phản ánh sự khác biệt rõ rệt về mức độ hoạt động thể chất giữa các cá nhân. Cả hai biến định lượng không xuất hiện ngoại biên, cho thấy dữ liệu có chất lượng tốt và phù hợp cho các phân tích tiếp theo.
mean(data$`Daily Steps`)
## [1] 6816.845
Kết quả:
[1] 6816.845
Kết luận: Ước lượng điểm cho số bước chân trung bình hàng ngày là 6816.845 bước.
Lời giải:
x <- subset(data, data$`Daily Steps` >= 6000)
vector1 <- nrow(x)
vector2 <- nrow(data)
prop.test(vector1, vector2, conf.level = 0.95, correct = FALSE)
##
## 1-sample proportions test without continuity correction
##
## data: vector1 out of vector2, null probability 0.5
## X-squared = 90.524, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
## 0.6995252 0.7874516
## sample estimates:
## p
## 0.7459893
Kết quả:
1-sample proportions test without continuity correction
data: vector1 out of vector2, null probability 0.5
X-squared = 90.524, df = 1, p-value < 2.2e-16
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
0.6995252 0.7874516
sample estimates:
p
0.7459893
Kết luận: Ước lượng điểm cho tỉ lệ số người có số bước chân hàng ngày >= 6000 là 74.59%.
Lời giải:
var(data$`Daily Steps`)
## [1] 2617651
Kết quả:
[1] 2617651
Kết luận: Ước lượng điểm cho phương sai của số bước chân hàng ngày là 2617651 (bước²).
Một công ty muốn biết khoảng giá trị ước lượng trung bình độ tuổi trong tập dữ liệu. Hãy xây dựng khoảng tin cậy 95% cho tuổi trung bình trong mẫu dữ liệu trên.
t.test(data$Age, conf.level = 0.95)
##
## One Sample t-test
##
## data: data$Age
## t = 94.062, df = 373, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 41.30263 43.06635
## sample estimates:
## mean of x
## 42.18449
Kết quả:
One Sample t-test
data: data$Age
t = 94.062, df = 373, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
41.30263 43.06635
sample estimates:
mean of x
42.18449
Nhận xét: Ước lượng khoảng 95% cho trung bình độ tuổi là [41.30263, 43.06635].
Một công ty muốn biết khoảng ước lượng tỷ lệ người có chỉ số BMI bình thường (Normal). Hãy xây dựng khoảng tin cậy 99% cho tỷ lệ này.
t.test(data$`BMI Category` == "Normal", conf.level = 0.99)
##
## One Sample t-test
##
## data: data$`BMI Category` == "Normal"
## t = 20.158, df = 373, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 99 percent confidence interval:
## 0.4544232 0.5883576
## sample estimates:
## mean of x
## 0.5213904
Kết quả:
One Sample t-test
data: data$`BMI Category` == "Normal"
t = 20.158, df = 373, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
0.4544232 0.5883576
sample estimates:
mean of x
0.5213904
Nhận xét: Ước lượng khoảng 99% cho tỷ lệ người có chỉ số BMI bình thường là [0.4544232, 0.5883576] (tương đương 45.44% - 58.84%).
Một công ty muốn biết khoảng tin cậy 95% cho phương sai của số bước chân hàng ngày. Hãy xây dựng khoảng tin cậy 95% cho phương sai này.
n <- length(data$`Daily Steps`)
s2 <- var(data$`Daily Steps`)
alpha <- 0.05
lower <- (n - 1) * s2 / qchisq(1 - alpha/2, df = n - 1)
upper <- (n - 1) * s2 / qchisq(alpha/2, df = n - 1)
c(lower, upper)
## [1] 2279136 3038039
Kết luận: Khoảng tin cậy 95% cho phương sai của số bước chân hàng ngày là (2279136, 3038039).
Bài tập này đã thực hiện các phân tích thống kê cơ bản trên tập dữ liệu về sức khỏe và lối sống, bao gồm:
Các kết quả cho thấy: - Số bước chân trung bình hàng ngày: ~6817 bước - 74.59% người có số bước chân >= 6000 - Độ tuổi trung bình: ~42 tuổi (khoảng tin cậy 95%: 41.3 - 43.1) - Tỷ lệ BMI bình thường: ~52% (khoảng tin cậy 99%: 45.4% - 58.8%)
Định tính: BMI và Occupation Định lượng: Age và Daily steps # Câu 4: Các bài toán kiểm định tham số một tổng thể: trung bình, tỉ lệ ## 4.1 Kiểm định trung bình một tổng thể ### Bài toán 1: Kiểm định BMI normal Một công ty cho rằng số bước chân trung bình là 7000 bước.Hãy kiểm định giả thuyết tại mức ý nghĩa 5%.
Thiết lập giả thuyết H₀: μ = 7000 (số bước chân trung bình là 7000) H₁: μ ≠ 7000 (số bước chân trung bình khác 7000) Mức ý nghĩa: α = 0.05 Đây là kiểm định hai phía
t.test(data$`Daily Steps`,mu=7000,alternative="two.sided")
##
## One Sample t-test
##
## data: data$`Daily Steps`
## t = -2.1893, df = 373, p-value = 0.0292
## alternative hypothesis: true mean is not equal to 7000
## 95 percent confidence interval:
## 6652.34 6981.35
## sample estimates:
## mean of x
## 6816.845
p-value = 0.0292 < 0.05 Bác bỏ H₀ Kết luận: Tại mức ý nghĩa 5%, không có đủ bằng chứng thống kê để kết luận rằng số bước chân trung bình là 7000 bước.
Một công ty cho rằng tỉ lệ BMI normal không quá là 50%.Hãy kiểm định giả thuyết tại mức ý nghĩa 5%.
Thiết lập giả thuyết H₀: p ≤ 0.5 (tỉ lệ BMI normal tối đa là 50%) H₁: p > 0.5 (tỉ lệ BMI normal trên 50%) Mức ý nghĩa: α = 0.05 Đây là kiểm định hai phía
x <- sum(data$`BMI Category` == "Normal")
n <- nrow(data)
prop.test(x, n, p=0.5,alt="g",correct = F)
##
## 1-sample proportions test without continuity correction
##
## data: x out of n, null probability 0.5
## X-squared = 0.68449, df = 1, p-value = 0.204
## alternative hypothesis: true p is greater than 0.5
## 95 percent confidence interval:
## 0.4789016 1.0000000
## sample estimates:
## p
## 0.5213904
p-value = 0.204 > 0.05 Không bác bỏ H₀ Kết luận: Tại mức ý nghĩa 5%, Chưa có đủ bằng chứng để kết luận tỉ lệ BMI normal khác 50%
Một công ty muốn so sánh mức độ stress trung bình giữa hai nghề: Doctor và Software Engineer. Hãy kiểm định xem có sự khác biệt hay không tại mức ý nghĩa 5%.
Gọi μ₁: Mức độ stress trung bình của Doctor Gọi μ₂: Mức độ stress trung bình của Software Engineer
H₀: μ₁ = μ₂ (mức độ stress của hai nghề bằng nhau) H₁: μ₁ ≠ μ₂ (mức độ stress của hai nghề khác nhau)
Mức ý nghĩa: α = 0.05 → Kiểm định hai phía
doctor_stress <- data$`Stress Level`[data$Occupation == "Doctor"]
engineer_stress <- data$`Stress Level`[data$Occupation == "Software Engineer"]
t.test(doctor_stress, engineer_stress,
alternative = "two.sided",
var.equal = FALSE)
##
## Welch Two Sample t-test
##
## data: doctor_stress and engineer_stress
## t = 1.0093, df = 3.3266, p-value = 0.3805
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.453794 2.918583
## sample estimates:
## mean of x mean of y
## 6.732394 6.000000
p-value = 0.3805 ≥ 0.05 Không bác bỏ H₀ Chưa có đủ bằng chứng để kết luận mức độ stress trung bình của hai nghề khác nhau
Một nghiên cứu muốn kiểm tra xem tỉ lệ người có rối loạn giấc ngủ (Sleep Disorder khác “None”) trong nhóm BMI Obese có CAO HƠN nhóm BMI Normal hay không. Hãy kiểm định giả thuyết tại mức ý nghĩa 5%.
Gọi p₁: Tỉ lệ người có rối loạn giấc ngủ trong nhóm Obese Gọi p₂: Tỉ lệ người có rối loạn giấc ngủ trong nhóm Normal
H₀: p₁ ≤ p₂ (tỉ lệ rối loạn ở nhóm Obese không cao hơn Normal) H₁: p₁ > p₂ (tỉ lệ rối loạn ở nhóm Obese cao hơn Normal)
Mức ý nghĩa: α = 0.05 → Kiểm định một phía phải
# Lọc dữ liệu
obese_data <- data[data$`BMI Category` == "Obese", ]
normal_data <- data[data$`BMI Category` == "Normal", ]
# Đếm số người có rối loạn
x1 <- sum(obese_data$`Sleep Disorder` != "None") # Obese có rối loạn
n1 <- nrow(obese_data) # Tổng số người Obese
x2 <- sum(normal_data$`Sleep Disorder` != "None") # Normal có rối loạn
n2 <- nrow(normal_data) # Tổng số người Normal
# Kiểm định (p1 > p2)
prop.test(c(x1, x2), c(n1, n2),
alternative = "greater",
correct = FALSE)
## Warning in prop.test(c(x1, x2), c(n1, n2), alternative = "greater", correct =
## FALSE): Chi-squared approximation may be incorrect
##
## 2-sample test for equality of proportions without continuity correction
##
## data: c(x1, x2) out of c(n1, n2)
## X-squared = 87.448, df = 1, p-value < 2.2e-16
## alternative hypothesis: greater
## 95 percent confidence interval:
## 0.9101547 1.0000000
## sample estimates:
## prop 1 prop 2
## 1.00000000 0.06153846
p-value < 2.2e-16 < 0.05 Bác bỏ H₀ Có đủ bằng chứng để kết luận tỉ lệ rối loạn giấc ngủ ở nhóm Obese cao hơn nhóm Normal.
Một công ty muốn so sánh độ đồng đều (phương sai) của mức độ stress giữa nghề Doctor và Teacher. Hãy kiểm định xem có sự khác biệt hay không tại mức ý nghĩa 5%.
Gọi σ₁²: Phương sai mức độ stress của Doctor Gọi σ₂²: Phương sai mức độ stress của Teacher
H₀: σ₁² = σ₂² (phương sai của hai nghề bằng nhau) H₁: σ₁² ≠ σ₂² (phương sai của hai nghề khác nhau)
Mức ý nghĩa: α = 0.05 → Kiểm định hai phía
# Lọc dữ liệu
doctor_stress <- data$`Stress Level`[data$Occupation == "Doctor"]
teacher_stress <- data$`Stress Level`[data$Occupation == "Teacher"]
var.test(doctor_stress, teacher_stress,
alternative = "two.sided")
##
## F test to compare two variances
##
## data: doctor_stress and teacher_stress
## F = 1.6713, num df = 70, denom df = 39, p-value = 0.08346
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.9328414 2.8623603
## sample estimates:
## ratio of variances
## 1.671308
p-value = 0.08346 ≥ 0.05 Không bác bỏ H₀ Chưa có đủ bằng chứng để kết luận phương sai mức độ stress của hai nghề khác nhau. → Mức độ biến động stress tương đương.
So sánh sự khác biệt số bước đi hàng ngày giữa các nghề nghiệp có ảnh hưởng đến số bước đi trung bình hằng ngày không, kiểm định ở mức ý nghĩa 5%
Gọi μ1, μ2, μ3, μ… là số bước đi trung bình hàng ngày ở các loại nghề nghiệp Teacher, Lawyer, Engineer,…
H₀ (Giả thuyết không) Trung bình Daily Steps giữa các nghề nghiệp không khác nhau μ1=μ2=μ3=μ….
H₁ (Giả thuyết đối) Trung bình Daily Steps giữa các nghề nghiệp khác nhau
PL=factor(data$Occupation)
anova(lm(data$`Daily Steps`~PL))
## Analysis of Variance Table
##
## Response: data$`Daily Steps`
## Df Sum Sq Mean Sq F value Pr(>F)
## PL 10 284597878 28459788 14.934 < 2.2e-16 ***
## Residuals 363 691785999 1905747
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Vì p-value = 2.2*e-16 < 0.05 nên bác bỏ Ho, chấp nhận H1 => tại mức ý nghĩa 5%, trung bình số bước đi hàng ngày ở các nghề nghiệp là khác nhau.
TukeyHSD(aov(data$`Daily Steps`~PL))
## Tukey multiple comparisons of means
## 95% family-wise confidence level
##
## Fit: aov(formula = data$`Daily Steps` ~ PL)
##
## $PL
## diff lwr upr
## Doctor-Accountant -72.63038 -979.36362 834.10286
## Engineer-Accountant -900.12870 -1826.37515 26.11775
## Lawyer-Accountant 780.62105 -202.22964 1763.47174
## Manager-Accountant -1381.08108 -5913.06783 3150.90567
## Nurse-Accountant 1176.45317 273.98530 2078.92103
## Sales Representative-Accountant -3881.08108 -7127.57160 -634.59056
## Salesperson-Accountant -881.08108 -1960.64010 198.47794
## Scientist-Accountant -1531.08108 -3884.82259 822.66043
## Software Engineer-Accountant -1081.08108 -3434.82259 1272.66043
## Teacher-Accountant -923.58108 -1943.60933 96.44717
## Engineer-Doctor -827.49832 -1601.51558 -53.48106
## Lawyer-Doctor 853.25142 12.31997 1694.18287
## Manager-Doctor -1308.45070 -5811.79104 3194.88963
## Nurse-Doctor 1249.08354 503.68535 1994.48174
## Sales Representative-Doctor -3808.45070 -7014.83043 -602.07098
## Salesperson-Doctor -808.45070 -1760.61555 143.71414
## Scientist-Doctor -1458.45070 -3756.55194 839.65054
## Software Engineer-Doctor -1008.45070 -3306.55194 1289.65054
## Teacher-Doctor -850.95070 -1735.04790 33.14649
## Lawyer-Engineer 1680.74975 818.81412 2542.68538
## Manager-Engineer -480.95238 -4988.26216 4026.35740
## Nurse-Engineer 2076.58187 1307.56574 2845.59799
## Sales Representative-Engineer -2980.95238 -6192.90478 231.00002
## Salesperson-Engineer 19.04762 -951.71766 989.81290
## Scientist-Engineer -630.95238 -2936.82242 1674.91766
## Software Engineer-Engineer -180.95238 -2486.82242 2124.91766
## Teacher-Engineer -23.45238 -927.55148 880.64672
## Manager-Lawyer -2161.70213 -6680.98354 2357.57928
## Nurse-Lawyer 395.83212 -440.49843 1232.16267
## Sales Representative-Lawyer -4661.70213 -7890.43272 -1432.97154
## Salesperson-Lawyer -1661.70213 -2686.61589 -636.78837
## Scientist-Lawyer -2311.70213 -4640.88645 17.48220
## Software Engineer-Lawyer -1861.70213 -4190.88645 467.48220
## Teacher-Lawyer -1704.20213 -2666.20949 -742.19476
## Nurse-Manager 2557.53425 -1944.94920 7060.01770
## Sales Representative-Manager -2500.00000 -7977.00736 2977.00736
## Salesperson-Manager 500.00000 -4041.29460 5041.29460
## Scientist-Manager -150.00000 -5149.80080 4849.80080
## Software Engineer-Manager 300.00000 -4699.80080 5299.80080
## Teacher-Manager 457.50000 -4070.01219 4985.01219
## Sales Representative-Nurse -5057.53425 -8262.71037 -1852.35812
## Salesperson-Nurse -2057.53425 -3005.63813 -1109.43036
## Scientist-Nurse -2707.53425 -5003.95589 -411.11260
## Software Engineer-Nurse -2257.53425 -4553.95589 38.88740
## Teacher-Nurse -2100.03425 -2979.75632 -1220.31217
## Salesperson-Sales Representative 3000.00000 -259.47134 6259.47134
## Scientist-Sales Representative 2350.00000 -1522.82905 6222.82905
## Software Engineer-Sales Representative 2800.00000 -1072.82905 6672.82905
## Teacher-Sales Representative 2957.50000 -282.74125 6197.74125
## Scientist-Salesperson -650.00000 -3021.61376 1721.61376
## Software Engineer-Salesperson -200.00000 -2571.61376 2171.61376
## Teacher-Salesperson -42.50000 -1103.11792 1018.11792
## Software Engineer-Scientist 450.00000 -2712.15168 3612.15168
## Teacher-Scientist 607.50000 -1737.61445 2952.61445
## Teacher-Software Engineer 157.50000 -2187.61445 2502.61445
## p adj
## Doctor-Accountant 1.0000000
## Engineer-Accountant 0.0652636
## Lawyer-Accountant 0.2669797
## Manager-Accountant 0.9961183
## Nurse-Accountant 0.0015130
## Sales Representative-Accountant 0.0059489
## Salesperson-Accountant 0.2304404
## Scientist-Accountant 0.5729143
## Software Engineer-Accountant 0.9231828
## Teacher-Accountant 0.1168511
## Engineer-Doctor 0.0248807
## Lawyer-Doctor 0.0433504
## Manager-Doctor 0.9973796
## Nurse-Doctor 0.0000056
## Sales Representative-Doctor 0.0065256
## Salesperson-Doctor 0.1820379
## Scientist-Doctor 0.6096884
## Software Engineer-Doctor 0.9424524
## Teacher-Doctor 0.0710814
## Lawyer-Engineer 0.0000000
## Manager-Engineer 0.9999998
## Nurse-Engineer 0.0000000
## Sales Representative-Engineer 0.0964863
## Salesperson-Engineer 1.0000000
## Scientist-Engineer 0.9984180
## Software Engineer-Engineer 1.0000000
## Teacher-Engineer 1.0000000
## Manager-Lawyer 0.9017762
## Nurse-Lawyer 0.9077751
## Sales Representative-Lawyer 0.0002140
## Salesperson-Lawyer 0.0000138
## Scientist-Lawyer 0.0537319
## Software Engineer-Lawyer 0.2582512
## Teacher-Lawyer 0.0000011
## Nurse-Manager 0.7553248
## Sales Representative-Manager 0.9260940
## Salesperson-Manager 0.9999997
## Scientist-Manager 1.0000000
## Software Engineer-Manager 1.0000000
## Teacher-Manager 0.9999999
## Sales Representative-Nurse 0.0000277
## Salesperson-Nurse 0.0000000
## Scientist-Nurse 0.0072435
## Software Engineer-Nurse 0.0587524
## Teacher-Nurse 0.0000000
## Salesperson-Sales Representative 0.1030569
## Scientist-Sales Representative 0.6729328
## Software Engineer-Sales Representative 0.4075940
## Teacher-Sales Representative 0.1099491
## Scientist-Salesperson 0.9983959
## Software Engineer-Salesperson 1.0000000
## Teacher-Salesperson 1.0000000
## Software Engineer-Scientist 0.9999960
## Teacher-Scientist 0.9990106
## Teacher-Software Engineer 1.0000000
Nghiên cứu xem có mối liên hệ giữa biến BMI và biến Occupation hay không, kiểm định ở mức ý nghĩa 5%
H0: không có mối liên hệ giữa 2 biến định tính (độc lập)
H1: có mối liên hệ giữa 2 biến định tính (phụ thuộc)
table(data$`BMI Category`,data$Occupation)
##
## Accountant Doctor Engineer Lawyer Manager Nurse
## Normal 26 65 56 42 0 0
## Normal Weight 5 2 4 1 0 7
## Obese 0 4 0 2 0 0
## Overweight 6 0 3 2 1 66
##
## Sales Representative Salesperson Scientist Software Engineer
## Normal 0 0 0 0
## Normal Weight 0 0 0 2
## Obese 2 0 0 1
## Overweight 0 32 4 1
##
## Teacher
## Normal 6
## Normal Weight 0
## Obese 1
## Overweight 33
x=c(26,65,56,42,0,0,0,0,0,0,6,5,2,4,1,0,7,0,0,0,2,0,0,4,0,2,0,0,2,0,0,1,1,6,0,3,2,1,66,0,32,4,1,33)
A=matrix(x,nrow = 4,byrow = T)
chisq.test(A)
## Warning in chisq.test(A): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: A
## X-squared = 405.51, df = 30, p-value < 2.2e-16
p-value=2.2e-16 < 0.05 => bác bỏ H0 ,chấp nhận H1
kiểm định phân bố biến BMI :Normal, Normal Weight, Obese, Overweight theo tỷ lệ: 52% ,6%, 2%, 40% hay không kiểm định ở mức ý nghĩa 5%
H₀ (Giả thuyết không) biến BMI có phù hợp với phân bố
H₁ (Giả thuyết đối) biến BMI không phù hợp với phân bố
table(data$`BMI Category`)
##
## Normal Normal Weight Obese Overweight
## 195 21 10 148
a=c(195,21,10,148)
p0=c(0.52,0.06,0.02,0.4)
chisq.test(a,p=p0)
##
## Chi-squared test for given probabilities
##
## data: a
## X-squared = 0.95989, df = 3, p-value = 0.811
p-value = 0.811 > 0.05 => chấp nhận H0, bác bỏ H1