Hướng dẫn z value for 95% confidence interval python - giá trị z cho python khoảng tin cậy 95%

⇦ Quay lại

Hãy bắt đầu với một số dữ liệu ví dụ. Tạo một loạt 20 số được phân phối bình thường về giá trị trung bình là 100 và với độ lệch chuẩn là 5:

import numpy as np

# Set a seed for the random number generator so we get the same random numbers each time
np.random.seed(20210710)

# Create fake data
mean = 100
standard_deviation = 5
sample_size = 20
x = np.random.normal(mean, standard_deviation, sample_size)

print([f'{x:.1f}' for x in sorted(x)])
## ['88.6', '89.9', '91.6', '94.4', '95.7', '97.4', '97.6', '98.1', '98.2', '99.4', '99.8', '100.0', '101.7', '101.8', '102.2', '104.3', '105.4', '106.7', '107.0', '109.5']

Đây là những gì họ trông giống như trên một dòng số:

import matplotlib.pyplot as plt

# Formatting options for plots
A = 6  # Want figure to be A6
plt.rc('figure', figsize=[46.82 * .5**(.5 * A), 33.11 * .5**(.5 * A) * 0.3])
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.rc('text.latex', preamble=r'\usepackage{textgreek}')

#
# Plot
#
ax = plt.axes()
# Add jitter to separate the points out
y = np.ones(len(x)) + np.random.uniform(-0.2, 0.2, size=len(x))
# Create scatter plot
ax.scatter(x, y, s=10)
ax.set_title('Example Data: 20 Random Measurements')
# Remove axes
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
# Add arrows on x-axis
ax.arrow(100, 0, 11.5, 0, head_width=0.2, color='k', clip_on=False)
ax.arrow(100, 0, -11.5, 0, head_width=0.2, color='k', clip_on=False)
# Axes' settings
ax.set_ylim(0, 2)
ax.set_xlim(88.5, 111.5)
ax.tick_params(axis='y', left=False, labelleft=False)
# Finish
plt.subplots_adjust(left=0.1, bottom=0.2, right=0.9, top=0.8)
plt.show()
plt.close()

20 số này là một mẫu ngẫu nhiên được rút ra từ toàn bộ số lượng có giá trị trung bình thực sự là 100 và độ lệch chuẩn thực sự (độ lệch chuẩn dân số) của 5. Đây là biểu đồ đại diện cho toàn bộ dân số (chính xác hơn, đây là biểu đồ của hàm phân phối xác suất - hàm tạo ra 20 số của chúng tôi):true mean of 100 and a true standard deviation (the population standard deviation) of 5. Here’s a graph representing the full population (more correctly, this is a graph of the probability distribution function - the function which produced our 20 numbers):

from scipy.stats import norm

# Formatting options for plots
A = 6  # Want figure to be A6
plt.rc('figure', figsize=[46.82 * .5**(.5 * A), 33.11 * .5**(.5 * A)])
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.rc('text.latex', preamble=r'\usepackage{textgreek}')

# Create data
x_pdf = np.linspace(84, 116, 1000)
mean = 100
std = 5
y_pdf = norm.pdf(x_pdf, mean, std)

#
# Plot
#
ax = plt.axes()
ax.plot(x_pdf, y_pdf)
ax.set_title('Probability Distribution Function')
ax.set_ylabel('Relative Likelihood')
ax.set_xlabel('Value')
ax.set_ylim(0, norm.pdf(mean, mean, std) * 1.08)
ax.set_xlim(84, 116)
# Vertical lines
ax.vlines(mean, 0, norm.pdf(mean, mean, std), colors='k', linestyles='dashed')
ax.vlines(mean - std, 0, norm.pdf(mean - std, mean, std), colors='k', linestyles='dotted')
ax.vlines(mean + std, 0, norm.pdf(mean + std, mean, std), colors='k', linestyles='dotted')
# Text
plt.text(mean - std, norm.pdf(mean - std, mean, std) * 1.04, r'$\bar x - \sigma$', ha='right')
plt.text(mean, norm.pdf(mean, mean, std) * 1.02, r'Mean, $\bar x$', ha='center')
plt.text(mean + std, norm.pdf(mean + std, mean, std) * 1.04, r'$\bar x + \sigma$', ha='left')
# Finish
plt.show()
plt.close()

Tất nhiên, lý do duy nhất chúng ta biết rằng độ lệch trung bình và độ lệch chuẩn thực sự của các số này lần lượt là 100 và 5 là vì chúng tôi đã tạo ra dữ liệu này một cách giả tạo. Tuy nhiên, nếu đây là những phép đo trong thế giới thực, chúng tôi sẽ biết những điều này và vì vậy chỉ có thể ước tính chúng:

mean = np.mean(x)
s = np.std(x, ddof=1)  # Use ddof=1 to get the sample standard deviation

print(rf'Sample mean = {mean:4.1f}; sample standard deviation = {s:3.1f}')
## Sample mean = 99.5; sample standard deviation = 5.7

Vì vậy, ước tính tốt nhất của chúng tôi cho giá trị trung bình thực (\ (\ Bar x \)) là 99,5 và đối với độ lệch chuẩn thực, nó là 5,7. Lưu ý rằng chúng tôi sử dụng độ lệch chuẩn mẫu (\ (s \)) của mẫu khi cố gắng ước tính độ lệch chuẩn dân số từ mẫu đó.true mean (\(\bar x\)) is 99.5 and for the true standard deviation it is 5.7. Note that we use the sample standard deviation (\(s\)) of a sample when trying to estimate the population standard deviation from that sample.

Bây giờ, có một ước tính về giá trị trung bình thực là tốt và tất cả nhưng chúng ta có thể làm tốt hơn: chúng ta có thể tính toán một khoảng tin cậy (CI) trong đó chúng ta biết giá trị thực sự sẽ nằm với một sự tự tin nhất định, \ (c \). Ví dụ: chúng ta có thể tính toán khoảng trong đó chúng ta chắc chắn 95% rằng trung bình thực sự nằm, trong trường hợp đó \ (c = 0,95 \). Nếu độ lệch chuẩn dân số không được biết đến (đó là trường hợp trong hầu hết các ví dụ trong thế giới thực) thì công thức cho khoảng tin cậy là:confidence interval (CI) in which we know the true mean will lie with a certain amount of confidence, \(C\). For example, we can calculate the interval within which we are 95% sure that the true mean lies, in which case \(C = 0.95\). If the population standard deviation is not known (which is the case in most real-world examples) then the formula for the confidence interval is:

\ (\ left (\ bar x + t^* \ Times \ frac {S} {\ sqrt {n}}, ) \)

Trong đó \ (\ bar x \) là trung bình mẫu, \ (s \) là độ lệch chuẩn mẫu, \ (n \) là kích thước mẫu và \ (t^*\) là giá trị quan trọng như được tính toán bằng cách sử dụng của học sinh Phân phối T:\(\bar x\) is the sample mean, \(s\) is the sample standard deviation, \(n\) is the sample size and \(t^*\) is the critical value as calculated using the Student’s t distribution:

\ (t^* = t _ {\ alpha} (df) \)

Trong đó \ (df \) là số mức độ tự do và \ (\ alpha \) là mức ý nghĩa:\(df\) is the number of degree of freedom and \(\alpha\) is the significance level:

\ (df = n - 1 \)

\ (\ alpha = \ frac {1-c} {2} \)

Trong đó \ (c \) là mức độ tin cậy, ví dụ: 0,95 cho khoảng tin cậy 95%.\(C\) is the confidence level, eg 0.95 for a 95% confidence interval.

Đây là cách tính toán CI cho ví dụ của chúng tôi:

from scipy.stats import t

# Descriptive statistics
n = len(x)  # Sample size
x_bar = np.mean(x)  # Mean
s = np.std(x, ddof=1)  # Sample standard deviation

# Desired confidence level
C = 0.95

# Calculate confidence interval
df = n - 1
alpha = (1 - C) / 2
t_star = t.ppf(alpha, df)
ci_lower = x_bar + t_star * s / np.sqrt(n)
ci_upper = x_bar - t_star * s / np.sqrt(n)

print(f'We are 95% sure that the true mean lies between {ci_lower:4.1f} and {ci_upper:5.1f}')
## We are 95% sure that the true mean lies between 96.8 and 102.1

Lưu ý 1: Lý tưởng nhất là cỡ mẫu sẽ lớn hơn 30 (là 20 trong ví dụ này)

Lưu ý 2: Giá trị của \ (t^* \) tương ứng với mức độ tin cậy 95% là ~ 2.093, tức là khoảng 2. Nếu bạn muốn sử dụng \ (t^* = 2 \) trong tính toán của bạn để giữ Nó đơn giản bạn sẽ nhận được gần như chính xác cùng một kết quả (\ (t^* = 2 \) tương ứng với mức độ tin cậy ~ 93,9997%).\(t^*\) that corresponds to a 95% confidence level is ~2.093, ie approximately 2. If you want to use \(t^* = 2\) in your calculation in order to keep it simple you will get almost exactly the same result (\(t^* = 2\) corresponds to a confidence level of ~93.9997%).

Nếu độ lệch chuẩn dân số được biết thì công thức cho khoảng tin cậy là:IS known then the formula for the confidence interval is:

\; \bên phải)\)

trong đó giá trị tới hạn, \ (z^*\), được tính toán bằng cách sử dụng phân phối bình thường tiêu chuẩn:critical value, \(z^*\), is calculated using the standard normal distribution:

\ (z^* = \ Phi^{ - 1} (1 - \ alpha) \)

Như chúng ta biết giá trị của độ lệch chuẩn dân số, chúng ta cũng có thể sử dụng công thức này trên dữ liệu ví dụ của mình:

# Descriptive statistics
n = len(x)  # Sample size
x_bar = np.mean(x)  # Mean
sigma = 5  # Population standard deviation

# Desired confidence level
C = 0.95

# Calculate confidence interval
alpha = (1 - C) / 2
z_star = norm.ppf(alpha)
ci_lower_2 = x_bar + z_star * sigma / np.sqrt(n)
ci_upper_2 = x_bar - z_star * sigma / np.sqrt(n)

print(f'We are 95% sure that the true mean lies between {ci_lower_2:4.1f} and {ci_upper_2:5.1f}')
## We are 95% sure that the true mean lies between 97.3 and 101.7

Như bạn có thể thấy, khoảng tin cậy như được tính toán bằng độ lệch chuẩn dân số (tức là sử dụng \ (\ sigma \)) hẹp hơn so với khi sử dụng độ lệch chuẩn mẫu (tức là sử dụng \ (s \)). Điều này có ý nghĩa: Nếu bạn biết thêm thông tin (tức là độ lệch chuẩn thực sự trái ngược với ước tính), bạn sẽ mong đợi ước tính tốt hơn về giá trị trung bình thực sự. Thật không may, trong hầu hết các tình huống trong thế giới thực, bạn không biết độ lệch chuẩn thực sự của dân số.\(\sigma\)) is narrower than when using the sample standard deviation (ie using \(s\)). This makes sense: if you know more information (ie the true standard deviation as opposed to an estimate) you would expect a better estimate of the true mean. Unfortunately, in most real-world situations you don’t know the true standard deviation of the population.

Lưu ý: Đối với khoảng tin cậy là 95% giá trị \ (z^*\) là ~ 1.960 có thể được làm tròn lên đến 2 nếu cần phải giữ cho tính toán đơn giản. Điều này sẽ cho kết quả cuối cùng tương tự vì giá trị A \ (Z^*\) tương ứng với ~ 95.4497% tin cậy.\(z^*\) value is ~1.960 which can be rounded up to 2 if there is a need to keep the calculation simple. This will give approximately the same end result because a \(z^*\) value of 2 corresponds to ~95.44997% confidence.

Dưới đây là kết quả của chúng tôi được thể hiện trên một biểu đồ phân tán:

## ['88.6', '89.9', '91.6', '94.4', '95.7', '97.4', '97.6', '98.1', '98.2', '99.4', '99.8', '100.0', '101.7', '101.8', '102.2', '104.3', '105.4', '106.7', '107.0', '109.5']
0

Trung bình thực sự (100) nằm trong cả hai khoảng tin cậy.

Tính toán kích thước mẫu

Nếu bạn muốn thiết lập một thử nghiệm, bạn nên bao gồm bao nhiêu mẫu?

Hãy để tưởng tượng bạn đang chạy một thử nghiệm với hai quần thể - một nhóm kiểm soát và một nhóm thử nghiệm - và lấy một phép đo từ mỗi người tham gia. Điều này sẽ cho phép bạn tính toán một giá trị trung bình và khoảng tin cậy cho giá trị trung bình đó, cho biến đó cho mỗi nhóm. Bây giờ, nếu hai khoảng tin cậy cho hai phương tiện lớn đến mức chúng chồng chéo lẫn nhau, chúng ta sẽ gặp vấn đề; Chúng tôi không thể chắc chắn rằng các phương tiện khác nhau hoặc thậm chí cái nào lớn hơn! Do đó, chúng tôi muốn có thể đảm bảo rằng, nếu phương tiện của các nhóm của chúng tôi thực sự khác nhau, khoảng tin cậy của chúng tôi sẽ nhỏ hơn sự khác biệt giữa chúng. Tất nhiên, chúng ta không thể kiểm soát độ lệch chuẩn mẫu (\ (s \))) hoặc sự khác biệt giữa các phương tiện của kết quả của chúng ta sẽ là trước, nhưng những gì chúng ta có thể làm là ước tính những gì chúng có thể là Sự khác biệt có ý nghĩa giữa các phương tiện (\ (\ delta \)) thực sự sẽ) và cắm chúng vào công thức cho chiều rộng của khoảng tin cậy:sample standard deviation (\(s\)) or the difference between the means of our results are going to be beforehand, but what we can do is estimate what they might be (and what a meaningful difference between the means (\(\delta\)) would actually be) and plug those into the formula for the width of a confidence interval:

\ (t^* \ Times \ frac {s} {\ sqrt {n}} <\ delta \)

Nói cách khác, chúng tôi muốn chiều rộng của khoảng tin cậy nhỏ hơn so với sự khác biệt có ý nghĩa nhỏ nhất giữa giá trị trung bình. Điều này có thể được sắp xếp lại để theo kích thước mẫu (\ (n \)):sample size (\(n\)):

\ (n> \ left (t^* \ Times \ frac {s} {\ delta} \ right)^2 \)

Công thức trên có thể được sử dụng làm hướng dẫn khi chọn cỡ mẫu cho một thí nghiệm.

⇦ Quay lại

Làm thế nào để bạn tìm thấy giá trị Z cho khoảng tin cậy 95 trong Python?

Lưu ý: Đối với khoảng tin cậy là 95%, giá trị Z là ~ 1.960 có thể được làm tròn lên đến 2 nếu cần phải giữ cho tính toán đơn giản. Điều này sẽ cho kết quả gần như cùng một kết quả vì giá trị Z ∗ tương ứng với ~ 95.4497% độ tin cậy. Trung bình thực sự (100) nằm trong cả hai khoảng tin cậy.~1.960 which can be rounded up to 2 if there is a need to keep the calculation simple. This will give approximately the same end result because a z∗ value of 2 corresponds to ~95.44997% confidence. The true mean (100) lies inside both of the confidence intervals.

Giá trị Z cho khoảng tin cậy 95% là bao nhiêu?

Giá trị của z* cho mức độ tin cậy là 95% là 1,96. Sau khi đặt giá trị của Z*, độ lệch chuẩn dân số và kích thước mẫu vào phương trình, một biên độ sai số 3,92 được tìm thấy. Các công thức cho khoảng tin cậy và biên độ lỗi có thể được kết hợp thành một công thức.1.96. After putting the value of z*, the population standard deviation, and the sample size into the equation, a margin of error of 3.92 is found. The formulas for the confidence interval and margin of error can be combined into one formula.

Chức năng Python nào sẽ cung cấp khoảng tin cậy 95%?

Hàm ppf.Các lập luận cho t.ppf () là q = tỷ lệ phần trăm, df = mức độ tự do, tỷ lệ = std dev, loc = mean.Vì phân phối T là đối xứng cho khoảng tin cậy 95% Q sẽ là 0,975.. The arguments for t. ppf() are q = percentage, df = degree of freedom, scale = std dev, loc = mean. As t-distribution is symmetric for a 95% confidence interval q will be 0.975.

Z 1.96 ở độ tin cậy 95 như thế nào?

Giá trị gần đúng của số này là 1,96, có nghĩa là 95% diện tích theo đường cong bình thường nằm trong khoảng 1,96 độ lệch chuẩn của giá trị trung bình.Do định lý giới hạn trung tâm, con số này được sử dụng trong việc xây dựng khoảng tin cậy xấp xỉ 95%.95% of the area under a normal curve lies within approximately 1.96 standard deviations of the mean. Because of the central limit theorem, this number is used in the construction of approximate 95% confidence intervals.