Một mẫu ngẫu nhiên gồm 9 sản phẩm được tiến hành kiểm tra và thấy lượng tạp chất như sau đơn vị tính là gam: a Tìm khoảng tin cậy cho trọng lượng trung bình tạp chất của sản phẩm với độ
Trang 1Trường đại học Bách Khoa Hà Nội Viện Toán Ứng Dụng và Tin học
Báo cáo chương II Học phần : SUY LUẬN THỐNG KÊ
GV hướng dẫn : Nguyễn Thị Thu Thủy
Nhóm sinh viên thực hiện: Nhóm 2
Trang 2Suy luận thống kê Thực hành với R
Mục Lục
1 Viết hàm tìm khoảng tin cậy và xác định cỡ mẫu 3
1.1 Hàm tìm khoảng tin cậy trung bình 3
1.2 Hàm tìm khoảng tin cậy cho phương sai 4
1.3 Hàm tìm khoảng tin cậy của tỉ lệ 5
1.4 Các hàm tìm cỡ mẫu 6
2 Thực hành làm các bài tập chương 2 với R 8
2.1 Bài tập 2.2 8
2.2 Bài tập 2.3 8
2.3 Bài tập 2.4 9
2.4 Bài tập 2.5 10
2.5 Bài tập 2.6 11
2.6 Bài tập 2.7 12
2.7 Bài tập 2.8 13
2.8 Bài tập 2.9 14
2.9 Bài tập 2.10 14
2.10 Bài tập 2.11 15
2.11 Bài tập 2.12 16
2.12 Bài tập 2.13 17
Trang 3Suy luận thống kê Thực hành với R
1 Viết hàm tìm khoảng tin cậy và xác định cỡ mẫu
Yêu cầu:
Thực hành viết hàm tìm khoảng tin cậy của giá trị trung bình, tỷ lệ, phương sai
sử dụng phần mềm thống kê R
Thực hành viết các hàm tìm cỡ mẫu trong các trường hợp đã trình bày trong phần lý thuyết sử dụng phần mềm thống kê R
Giải
- Đầu tiên ta viết hàm hiển thị các giá trị đặc trung của mẫu
HT <- function (Sample)
{
cat("\nMean: ", mean(Sample))
cat("\nVariance:", var(Sample))
cat("\nStandard deviation: ", sd(Sample),"\n")
}
1.1 Hàm tìm khoảng tin cậy trung bình
Hàm gồm các tham số truyền vào là : Sample ( Mẫu ), Conf.level (độ tin cậy) mặc định bằng 0.95, SD (độ lệch chuẩn ) mặc định là NULL (chưa biết),
ALT (loại khoảng tin cậy) với “two.sided” là 2 phía, “less” là bên trái và
“greater” là bên phải
Bài toán tìm khoảng tin cậy trung bình được chia làm 2 trường hợp chính:
đã biết phương sai và chưa biết phương sai:
+ Trường hợp đã biết phương sai thì sẽ dùng hàm z.test() trong packages BSDA để tính ước lượng khoảng tin cậy
+ Trường hợp chưa biết phương sai thì với cỡ mẫu < 30 sẽ sử dụng hàm t.test() để tính Còn với cỡ mẫu ≥ 30 tiến dần về dạng phân phối chuẩn vì vậy
sẽ sử dụng hàm z.test() với độ lệch chuẩn là độ lệch chuẩn của mẫu ( sd(Sample) )
ULKTB <- function ( Sample, Conf.Level = 0.95 , SD = NULL, ALT =
c("two.sided","less","greater"))
{
cat("\nUoc luong khoang tin cay cho ky vong.")
if ( is.null(SD) ){
if ( length(Sample) < 30){
Test <- t.test( Sample, alternative = ALT, conf.level =
Conf.Level)
}
else {
require(BSDA)
Test <- z.test( Sample, alternative = ALT, sigma.x = sd(Sample),
conf.level = Conf.Level )
}
HT(Sample)
cat("Khoang tin cay", Conf.Level*100 , "%:")
Trang 4Suy luận thống kê Thực hành với R
if ( ALT == "two.sided" ){
cat("[",Test$conf.int[1], ";", Test$conf.int[2],"]")
}
else if ( ALT == "less"){
cat("(-inf ;",Test$conf.int[2],"]")
}
else {
cat("[",Test$conf.int[1], "; inf )")
}
}
else {
require(BSDA)
Test <- z.test( Sample, alternative = ALT, sigma.x = SD, conf.level
= Conf.Level )
HT(Sample)
cat("Khoang tin cay", Conf.Level*100 , "%:")
if ( ALT == "two.sided" ){
cat("[",Test$conf.int[1], ";",Test$conf.int[2],"]")
}
else if ( ALT == "less"){
cat("(-inf ;", Test$conf.int[2],"]")
}
else {
cat("[",Test$conf.int[1], "; inf )")
}
}
return(Test)
}
1.2 Hàm tìm khoảng tin cậy cho phương sai
Hàm tính tổng trung bình từng phần tử của mẫu trừ đi kỳ vọng đã biết
TBP <- function (Sample, M)
{
n <- length(Sample)
x
for (i in :n) {
x <- x + (Sample[i] - M)^2
}
return(x)
}
Hàm gồm các tham số truyền vào là : Sample ( Mẫu ), Conf.level (độ tin cậy) mặc định bằng 0.95, M (kỳ vọng ) mặc định là NULL (chưa biết),
ALT (loại khoảng tin cậy) với “two.sided” là 2 phía, “less” là bên trái và
“greater” là bên phải
Bài toán tìm khoảng tin cậy cho phương sai được chia làm hai trường hợp:
+ Trường hợp đã biết kỳ vọng sẽ sử dụng hàm VarTest() trong packages DecsTools
Trang 5Suy luận thống kê Thực hành với R
+ Trường hợp chưa biết kỳ vọng thì sẽ tính theo công thức ( (𝑛−1)𝑠2
𝜒
(𝑛−1,1−𝑎2)
2 ; (𝑛−1)𝑠2
𝜒 (𝑛−1,𝑎2)
𝜒(𝑛−1,𝑎)2 ) cho khoảng tin
𝜒(𝑛−1,1−𝛼)2 ; 1 ) cho khoảng tin cậy phải
ULKPS <- function (Sample, M = NULL,ALT =
c("two.sided","less","greater"), Conf.Level = 0.95 )
{
cat("\nUoc luong khoang tin cay cho Phuong sai.")
if ( is.null(M)){
library(DescTools)
Test <- VarTest( Sample, alternative = ALT, conf.level =
Conf.Level)
HT(Sample)
cat("Khoang tin cay", Conf.Level*100 , "%:")
if ( ALT == "two.sided" ){
cat("(",Test$conf.int[1], ";",Test$conf.int[2],")")
}
else if ( ALT == "less"){
cat("(0 ;",Test$conf.int[2],")")
}
else {
cat("(",Test$conf.int[1], "; inf )")
}
return(Test)
}
else {
cat("Khoang tin cay", Conf.Level*100 , "%:")
HT(Sample)
alpha = - Conf.Level
n <- length(Sample)
x <- TBP(Sample, M)
if ( ALT == "two.sided" ){
cat( "(", x/qchisq(1-alpha/2 ,n-1), ";", x/qchisq(alpha/2 ,n-1),")"
)
result <- (x/qchisq(1-alpha/2 ,n-1),x/qchisq(alpha/2 ,n-1))
return(result)
}
else if ( ALT == "less" ){
cat( "( 0 ;", x/qchisq(alpha,n-1)," )")
return(x/qchisq(alpha,n-1))
}
else {
cat( "( ", x/qchisq(1-alpha,n-1) ,"; inf )\n")
return(x/qchisq(1-alpha,n-1))
}
}
}
1.3 Hàm tìm khoảng tin cậy của tỉ lệ
Bài toán ước lượng khoảng tin cậy cho tỉ lệ sẽ sử dụng hàm prop.test() với điều kiện 𝑛𝑓 > 5 và 𝑛(1 − 𝑓) > 5 Nếu không thỏa mãn thông báo cỡ mẫu chưa đủ để ước lượng
Trang 6Suy luận thống kê Thực hành với R
ULKTL
<-function (Sample,n,p= NULL,ALT= ("two.sided" , "less" , "greater"), Conf.Level = 0.95 )
{
cat("\nUoc luong khoan tin cay cho ty le.")
f <- Sample/n
if ( n*f > 5 && n*(1 f)>5 ){
Test <- prop.test(Sample,n,p,alt = ALT, conf.level = Conf.Level)
cat("\nKhoang tin cay " ,Conf.Level*100, "%: ")
if ( ALT == "two.sided" ){
cat("(" ,Test$conf.int[1], ";" ,Test$conf.int[2], ")")
}
else if ( ALT == "less"){
cat("(0 ;" ,Test$conf.int[2], ")")
}
else {
cat("(" ,Test$conf.int[1], "; 1 )")
}
return(Test)
}
else {
cat("Kich thuoc mau chua du lon de uoc luong.")
}
}
1.4 Các hàm tìm cỡ mẫu
Với bài toán xác định cỡ mẫu thì có 3 trường hợp cần giải quyết
+ Xác định cỡ mẫu với phương sai đã biết sao cho sai số không vượt quá 𝜀 với độ tin cậy (1 − 𝛼) : sử dụng công thức 𝑛 ≥
𝜎 2 (𝑈 1−𝛼2) 2
𝜀 2 + Xác định cỡ mẫu với phương sai chưa biết sao cho sai số không vượt quá
𝜀 với độ tin cậy (1 − 𝛼) : sử dụng công thức 𝑛 ≥
𝑠2(𝑈 1−𝛼2) 2
bộ cỡ mẫu n thỏa mãn (𝑛 ≥ 30)
+ Xác định cỡ mẫu cho tỷ lệ sao cho sai số không vượt quá 𝜀 với độ tin cậy
4 ta có
𝑛 ≥
(𝑈
1−𝛼2) 2
ước lượng ban đầu cho 𝑝 khi đó 𝑛 ≥
(𝑈 1−𝑎2)
2 𝑓𝑘(1−𝑓𝑘)
và 𝑘(1 − 𝑓𝑘) > 5
Trang 7Suy luận thống kê Thực hành với R
XDKTM <- function (dtc,eps,ps)
{
al <- 1- dtc
N <- (ps*(qnorm(1-al/ )^2))/(eps^2)
cat("\nVoi do tin cay " , dtc*100, "% muon co ULK cho gia tri TB voi sai so ko vuot qua" , eps)
cat("\nthi N >= " , ceiling(N))
}
#phuong sai chua biet
XDKTM.2 <- function (Mau,dtc,eps)
{
al <- 1 - dtc
n <- length(Mau)
s <- sqrt(mean(Mau))
N <- ((s^ )*(qt(1-al/ ,nt-1)^2))/(eps^2)
cat("\nVoi do tin cay " , dtc*100, "% muon co ULK cho gia tri TB voi sai so ko vuot qua" , eps)
cat("\nthi N >= " , ceiling(N))
cat("\ncan phai khao sat them " , ceiling(N) - n, "mau nua")
}
#ti le
# dung bat dang thuc Cauchy ko phu thuoc vao mau
XDKTM.3 <- function (dtc,eps)
{
al <- 1 - dtc
N <- (qnorm(1-al/2)^2)/(4*eps^2
cat("\nVoi do tin cay " , dtc*100, "% muon co ULK cho ty le voi sai
so ko vuot qua" , eps)
cat("\nthi N >= " , ceiling(N))
}
#
XDKTM.4 <- function (m,n,dtc,eps)
{
f <- m/n
alpha = 1 - dtc
if ( n*f > 5 && n*(1 f > 5){
N <- (qnorm(1-alpha/2)^2*f*(1 f))/(eps^2)
cat("\nVoi do tin cay " , dtc*100, "% muon co ULK cho ty le voi sai
so ko vuot qua" , eps)
cat("\nthi N >= " , ceiling(N))
cat("\nCan dieu tra them " , ceiling(N) - n, "mau nua.")
}
}
Trang 8Suy luận thống kê Thực hành với R
2 Thực hành làm các bài tập chương 2 với R
2.1 Bài tập 2.2
Một kỹ sư cho biết trọng lượng tạp chất trong một sản phẩm tuân theo luật phân phối chuẩn với độ lệch chuẩn bằng 3,8gam Một mẫu ngẫu nhiên gồm 9 sản phẩm được tiến hành kiểm tra và thấy lượng tạp chất như sau (đơn vị tính là gam):
(a) Tìm khoảng tin cậy cho trọng lượng trung bình tạp chất của sản phẩm với độ tin cậy 99%
(b) Không cần tính toán, nếu độ tin cậy 95% thì khoảng ước lượng trung bình sẽ rộng hơn, hẹp hơn hay bằng như trong ý (a)?
Giải
Dạng: Trường hợp phân phối chuẩn, phương sai đã biết
(a)
* Code:
Bai2.2 <- function ()
{
cat("\nBai 2.2")
bai2.2 <- (18.2, 13.7 , 15.9 , 17.4 , 21.8 , 16.6 , 12.3 , 18.8 , 16.2 )
kq = ULKTB( bai2.2, Conf.Level = 0.99 , SD = 3.8 , ALT = "two.sided") }
*Kết quả
> Mean: 16.76667
> Variance: 7.7975
> Standard deviation: 2.7924
> Khoang tin cay 99 %:[ 13.50395 ; 20.02938 ]
(b)
Không cần tính toán, với độ tin cậy 99% thì khoảng tin cậy trung bình sẽ rộng hơn
2.2 Bài tập 2.3
Để xác định trọng lượng trung bình của các bao gạo được đóng gói bằng máy tự động, người ta chọn ngẫu nhiên ra 20 bao gạo và thấy trung bình mẫu là 49,2kg và
độ lệch chuẩn mẫu hiệu chỉnh là 1,8kg Biết rằng trọng lượng các bao gạo xấp xỉ phân phối chuẩn Hãy tìm khoảng tin cậy cho trọng lượng trung bình của một bao gạo với độ tin cậy 99%
Trang 9Suy luận thống kê Thực hành với R
Giải
Dạng: Trường hợp phân phối chuẩn, phương sai chưa biết
*Code
Bai2.3 <- function ()
{
alpha2.3 <- 1 - 0.99
tbm2.3 <- 49.2
dlc2.3 <- 1.8
n2.3 <- 20
cat("\nBai 2.3")
cat("\nKhoang tin cay cho trong luong trung binh cua 1 bao gao voi
do tin cay 99% la:")
cat("\n[" , tbm2.3 - qnorm(1-alpha2.3/2)*(dlc2.3/sqrt(n2.3)), ";" , tbm2.3 + qnorm(1-alpha2.3/2)*(dlc2.3/sqrt(n2.3)), "]")
*Kết quả
> Khoang tin cay cho trong luong trung binh cua 1 bao gao voi do tin cay 99% la:
> [ 48.16325 ; 50.23675 ]
2.3 Bài tập 2.4
Một mẫu ngẫu nhiên gồm 16 thùng hàng được chọn ra từ tất cả các thùng hàng được sản xuất bởi nhà máy trong một tháng Trọng lượng của 16 thùng hàng lần lượt như sau (đơn vị tính là kg):
18,6 18,4 19,2 19,8 19,4 19,5 18,9 19,4 19,7 20,1 20,2 20,1 18,6 18,4 19,2 19,8 Tìm khoảng tin cậy cho trọng lượng trung bình tổng thể của tất cả các thùng hàng của nhà máy với độ tin cậy 95%, biết rằng trọng lượng thùng hàng được chọn ngẫu nhiên là biến ngẫu nhiên tuân theo luật phân phối chuẩn
Giải
Dạng: Trường hợp phân phối chuẩn, phương sai đã biết
*Code
Bai2.4 <- function ()
{
bai2.4 <- c(18.6, 18.4 , 19.2 , 19.8 , 19.4 , 19.5 , 18.9 , 19.4 , 19.7 ,
20.1 , 20.2 , 20.1 , 18.6 , 18.4 , 19.2 , 19.8)
Trang 10Suy luận thống kê Thực hành với R
kq = ULKTB(bai2.4, Conf.Level = 0.95 , ALT = "two.sided")
}
*Kết quả
> Uoc luong khoang tin cay cho ky vong
> Mean: 19.33125
> Variance: 0.371625
> Standard deviation: 0.6096105
> Khoang tin cay 95 %:[ 19.00641 ; 19.65609 ]
2.4 Bài tập 2.5
Trọng lượng những viên gạch trong một quá trình sản xuất gạch được giả sử là tuân theo luật phân phối chuẩn Một mẫu ngẫu nhiên gồm 25 viên gạch vừa sản xuất ra trong ngày có trọng lượng trung bình 2,45 kg và độ lệch chuẩn mẫu hiệu chỉnh là 0,15 kg
(a) Tìm khoảng tin cậy của trọng lượng trung bình của tất cả các viên gạch trong ngày với độ tin cậy 99%
(b) (b) Không cần tính toán, với độ tin cậy 95% thì khoảng tin cậy trung bình sẽ rộng hơn, hẹp hơn hay bằng với kết quả ý (a)?
(c) (c) Một mẫu ngẫu nhiên gồm 20 viên gạch sẽ được chọn ra trong ngày mai Không cần tính toán, với độ tin cậy 99% thì khoảng tin cậy cho trọng lượng trung bình của tất cả các viên gạch sản xuất ra trong ngày mai sẽ rộng hơn, hẹp hơn hay bằng như trong ý (a)?
(d) Sự thật rằng, độ lệch chuẩn mẫu của các viên gạch sản xuất trong ngày mai là 0,10kg Không cần tính toán, với độ tin cậy 99% thì khoảng tin cậy cho trọng lượng trung bình của tất cả các viên gạch sản xuất ra trong ngày mai sẽ rộng hơn, hẹp hơn hay bằng như trong ý (a)?
Giải
Dạng: Trường hợp phân phối chuẩn, phương sai chưa biết
(a)
*Code
Bai2.5 <- function ()
{
cat("\nKhoang tin tin cay 99% cua trong luong trung binh tat ca ca vien gach trong ngay:")
cat("\n[" , 2.45 - qnorm(1-0.01/2)*(0.15/sqrt(25)), ";" , 2.45 +
qnorm(1-0.01/2)*(0.15/sqrt(25)), "]")
}
*Kết quả
> Khoang tin tin cay 99% cua trong luong trung binh tat ca ca vien gach trong ngay:
> [ 2.372725 ; 2.527275 ]
Trang 11Suy luận thống kê Thực hành với R
(b) Không cần tính toán, với độ tin cậy 95% thì khoảng tin cậy trung bình sẽ hẹp
2 sẽ tăng lên
Khoảng tin cậy cho trọng lượng trung bình sẽ rộng ra
(c) Một mẫu ngẫu nhiên gồm 20 viên gạch, không cần tính toán, với độ tin cậy 99%
( 𝑥̅ − 𝑢1−𝛼
2
𝑆
√𝑛 ; 𝑥̅ + 𝑢1−𝛼
2
𝑆
√𝑛 tăng => 𝑢1−𝛼
2
𝑆
√𝑛 tăng
Khoảng tin cậy cho trọng lượng trung bình sẽ rộng ra
(d) Độ lệch chuẩn của các viên gạch sản xuất 0,01 kg => giảm
( 𝑥̅ − 𝑢1−𝛼
2
𝑆
√𝑛 ; 𝑥̅ + 𝑢1−𝛼
2
𝑆
√𝑛 giảm => 𝑢1−𝛼
2
𝑆
Khoảng tin cậy cho trọng lượng trung bình sẽ hẹp lại
2.5 Bài tập 2.6
Một trường đại học lớn đang quan tâm về lượng thời gian sinh viên tự nghiên cứu mỗi tuần Người ta tiến hành khảo sát một mẫu ngẫu nhiên gồm 16 sinh viên, dữ liệu cho thấy thời gian nghiên cứu trung bình của một sinh viên là 15,26 giờ/tuần và độ lệch chuẩn hiệu chỉnh là 6,43 giờ Giả sử thời gian nghiên cứu của sinh viên của trường đại học trên là tuân theo luật phân phối chuẩn
(a) Tìm khoảng tin cậy cho lượng thời gian tự nghiên cứu trung bình mỗi tuần cho tất cả sinh viên trường đại học này với độ tin cậy 95%
(b) Không cần tính toán, khoảng tin cậy của trung bình tổng thể khi ước lượng sẽ rộng hơn hay hẹp hơn với ba điều kiện sau:
(b1) Mẫu gồm 30 sinh viên được chọn ra, với tất cả các điều kiện khác giống như ý (a)?
(b2) Độ lệch chuẩn mẫu là 4,15 giờ, tất cả các điều kiện khác giống như ý (a)? (b3) Độ tin cậy 99%, tất cả các điều kiện khác giống như ý (a)?
Giải
Dạng: Phân phối chuẩn, phương sai đã biết
(a)
*Code
Bai2.6 <- function ()
{