Hướng dẫn welchs t-test confidence interval python - trăn khoảng tin cậy t-test của Welch
Không chắc chắn về Scripy. Có thể có một trang web trợ giúp kinh điển sẽ hiển thị mã. [Có lẽ điều này.] Show Trong R, CI 95% là một phần của đầu ra 7, trong đó phiên bản Welch của thử nghiệm T 2 mẫu là mặc định (và đối số 8 giúp bạn kiểm tra gộp).
Bởi vì CI 95% bao gồm $ 0 $, thử nghiệm 2 mặt không từ chối $ h_0: \ mu_1 = \ mu_2 $ ở mức 5%.$0$ the 2-sided test does not reject $H_0: \mu_1=\mu_2$ at the 5% level. Biên độ lỗi 95% là $ t^*\ sqrt {\ frac {s_1^2} {n_1}+\ frac {s_2^2} {n_2}}, $ trong đó $ t^*$ %$ từ đuôi trên của phân phối t của sinh viên với mức độ tự do $ \ nu^\ Prime $ như được tìm thấy từ công thức Welch liên quan đến các phương sai mẫu và cỡ mẫu. [Ở đây, $ \ nu^\ Prime = 17.9, $ trong một số phần mềm được làm tròn xuống một số nguyên. Một luôn luôn có $ \ min (n_1-1, n_2-1) \ le \ nu^\ Prime \ le n_1+n_2-2.] $$t^*\sqrt{\frac{S_1^2}{n_1}+\frac{S_2^2}{n_2}},$ where $t^*$ cuts probability $0.025=2.5\%$ from the upper tail of Student's t distribution with degrees of freedom $\nu^\prime$ as found from the Welch formula involving sample variances and sample sizes. [Here, $\nu^\prime = 17.9,$ in some software rounded down to an integer. One always has $\min(n_1-1,n_2-1) \le \nu^\prime \le n_1+n_2-2.]$
Luôn luôn là một ý tưởng tốt để ghi nhớ các công thức thực tế, ngay cả khi người ta hy vọng sẽ chỉ sử dụng chúng. Giả sử rằng chúng ta đang ở trong nhóm khoa học dữ liệu cho một công ty nước cam. Trong cuộc họp, nhóm tiếp thị tuyên bố rằng chiến lược tiếp thị mới của họ dẫn đến tăng doanh số. Đội ngũ quản lý yêu cầu chúng tôi xác định xem điều này có thực sự đúng không. Đây là dữ liệu từ tháng 1 và tháng hai.
Làm thế nào để chúng ta biết rằng sự gia tăng doanh số bán nước cam hàng ngày không phải do sự thay đổi ngẫu nhiên trong dữ liệu? NULL và giả thuyết thay thếSố tiền bán hàng mỗi ngày không nhất quán trong suốt tháng. Dữ liệu tháng 1 có phương sai 10.000.000 và độ lệch chuẩn là ~ 3162. Vào những ngày tồi tệ, chúng tôi sẽ bán \ 8.000 đô la nước cam. Vào những ngày tốt, chúng tôi sẽ bán 14.000 đô la nước cam. Chúng tôi phải chứng minh rằng sự gia tăng doanh số trung bình hàng ngày trong tháng Hai đã không hoàn toàn xảy ra. Giả thuyết khống sẽ là: $ H_0: \ mu_0 - \ mu_1 = 0 $ Có ba giả thuyết thay thế có thể:
Trong đó $ \ mu_0 $ là doanh số trung bình hàng ngày trong tháng 1 và $ \ mu_1 $ là doanh số trung bình hàng ngày trong tháng Hai. Giả thuyết khống của chúng tôi chỉ đơn giản là nói rằng không có thay đổi về doanh số trung bình hàng ngày. Nếu chúng tôi quan tâm đến việc kết luận rằng doanh số trung bình hàng ngày đã tăng thì chúng tôi sẽ đi với giả thuyết thay thế đầu tiên. Nếu chúng tôi quan tâm đến việc kết luận rằng doanh số trung bình hàng ngày đã giảm, thì chúng tôi sẽ đi với giả thuyết thay thế thứ hai. Nếu chúng tôi quan tâm đến việc kết luận rằng doanh số trung bình hàng ngày đã thay đổi, thì chúng tôi sẽ đi với giả thuyết thay thế thứ ba. Trong trường hợp của chúng tôi, bộ phận tiếp thị tuyên bố rằng doanh số đã tăng lên. Vì vậy, chúng tôi sẽ sử dụng giả thuyết thay thế đầu tiên. Lỗi loại I và IIChúng tôi phải xác định xem chúng tôi chấp nhận hoặc từ chối giả thuyết null. Điều này có thể dẫn đến bốn kết quả khác nhau.
Kiểm tra giả thuyết sử dụng logic tương tự như một phiên tòa xét xử. Giả thuyết khống (bảo vệ) là vô tội cho đến khi được chứng minh là có tội. Chúng tôi sử dụng dữ liệu làm bằng chứng để xác định xem các khiếu nại có đưa ra giả thuyết null là đúng hay không. Mức độ đáng kể¶Để đưa ra quyết định, chúng ta cần biết liệu dữ liệu tháng hai có ý nghĩa thống kê hay không. Chúng ta sẽ phải tính toán xác suất tìm thấy dữ liệu được quan sát hoặc dữ liệu cực đoan hơn giả định rằng giả thuyết null, $ h_0 $ là đúng. Xác suất này được gọi là giá trị p.p-value. Nếu xác suất này cao, chúng tôi sẽ giữ lại giả thuyết null. Nếu xác suất này thấp, chúng tôi sẽ từ chối giả thuyết null. Ngưỡng xác suất này được gọi là mức ý nghĩa, hoặc $ \ alpha $. Nhiều nhà thống kê thường sử dụng $ \ alpha $ = 0,05.significance level, or $\alpha$. Many statisticians typically use $\alpha$ = 0.05. Để trực quan hóa điều này bằng cách sử dụng phân phối Sababiliy, hãy nhớ rằng chúng tôi đã chọn để chứng minh rằng $ \ mu_0 <\ mu_1 $. Đây được gọi là một bài kiểm tra đuôi phải.right-tailed test. In [1]: import matplotlib.pyplot as plt import numpy as np import math import seaborn as sns from scipy.integrate import simps %matplotlib inline #The Gaussian Function def g(x): return 1/(math.sqrt(1**math.pi))*np.exp(-1*np.power((x - 0)/1, 2)/2) fig = plt.figure(figsize=(10,3)) x = np.linspace(-300, 300, 10000) sns.set(font_scale=2) #Draws the gaussian curve ax = fig.add_subplot(1, 1, 1) ax.plot(x, g(x)) ax.set_ylim(bottom = 0, top = 1.1) ax.set_xlim(left = -4, right = 4) ax.set_yticks([]) plt.xticks([0, 1.645], [0, r'$t_\alpha$'] ) #Fills the area under the curve section = np.arange(1.645, 300, 1/2000) ax.fill_between(section, g(section)) #Calculates the area under the curve using Simpson's Rule x_range = np.linspace(1.645, 300, 2000) y_range = g(x_range) area_total = simps(g(x), x) area_part = simps(y_range , x_range) percent_data = np.round((area_part/area_total), 2) ax.annotate(r'$\alpha$ < {}'.format(percent_data), xy=(3, 0.45), ha='center') ax.annotate('Rejection '.format(1-percent_data), xy=(3, 0.26), ha='center') ax.annotate('Region '.format(1-percent_data), xy=(3, 0.1), ha='center') ax.annotate('Retain $H_0$', xy=(0, 0.26), ha='center') plt.show() Chúng tôi không biết dữ liệu từ tháng Hai ở đâu trong phân phối này. Chúng tôi vẫn sẽ tính toán giá trị p để xác định xem chúng tôi có ở vùng từ chối hay không. Giá trị p chỉ có thể trả lời câu hỏi này: dữ liệu tháng hai có khả năng như thế nào, giả sử rằng giả thuyết null là đúng? Nếu chúng ta kết thúc với giá trị p nhỏ hơn 0,05, thì chúng ta sẽ từ chối giả thuyết null. Các trường hợp khác: ¶Nếu giả thuyết thay thế của chúng tôi là $ \ MU_0> \ MU_1 $, thì chúng tôi sẽ phải sử dụng một bài kiểm tra đuôi trái, chỉ đơn giản là sự xác minh của bài kiểm tra đuôi phải.left-tailed test, which is simply the flipped veresion of the right-tailed test. Nếu giả thuyết thay thế của chúng tôi là $ \ mu_0 \ ne \ mu_1 $, thì chúng tôi sẽ phải sử dụng thử nghiệm hai đuôi, cả hai thử nghiệm đuôi trái và phải kết hợp với $ \ alpha $ = 0,025 ở mỗi bên.two-tailed test, which is both the left and right tailed test combined with $\alpha$ = 0.025 on each side. T-Test¶ The WelchMột cách để giải quyết vấn đề này là tính toán xác suất tìm dữ liệu tháng hai trong khu vực từ chối bằng cách sử dụng thử nghiệm t của Welch. Phiên bản này của thử nghiệm t có thể được sử dụng cho các cỡ mẫu bằng hoặc không đều nhau. Ngoài ra, thử nghiệm t này có thể được sử dụng cho hai mẫu với các phương sai khác nhau. Đây thường được ca ngợi là hình thức mạnh mẽ nhất của bài kiểm tra t. Tuy nhiên, bài kiểm tra t của Welch giả định rằng hai mẫu dữ liệu độc lập và phân phối giống hệt nhau. Điểm T có thể được tính toán bằng công thức sau: $$ T_ {SCORE} = \ frac {\ Bar {x} _1 - \ Bar {x} _2} {S_ {Welch}} $$ $$ S_ {Welch} = \ sqrt {\ frac {s^2_1} {n_1}+\ frac {s^2_2} {n_2}} $$ Mức độ tự do có thể được tính bằng cách sử dụng công thức sau: $$ DOF = \ frac {\ bigg ({\ frac {s^2_1} {n_1}+\ frac {s^2_2} {n_2}} \ bigg)^2} {n_1})^2} {n_1-1} + \ frac {({s^2_2}/{n_2})^2} {n_2-1}} $$ Trong đó $ \ Bar {x} $ là trung bình mẫu, $ s $ là phương sai và $ n $ là cỡ mẫu. Với mức độ tự do và điểm T, chúng ta có thể sử dụng máy tính Table T hoặc máy tính phân phối T để xác định giá trị p. Nếu giá trị p nhỏ hơn mức ý nghĩa, thì chúng ta có thể kết luận rằng dữ liệu của chúng ta có ý nghĩa thống kê và giả thuyết null sẽ bị từ chối. Chúng tôi có thể cắm từng số vào Python, và sau đó tìm kiếm một bảng T. Nhưng việc sử dụng mô -đun scipy.stats dễ dàng hơn. Nhấn vào đây để liên kết đến tài liệu. In [2]: from scipy import stats t_score = stats.ttest_ind_from_stats(mean1=12000, std1=np.sqrt(10000000), nobs1=31, \ mean2=10000, std2=np.sqrt(20000000), nobs2=28, \ equal_var=False) t_score Out[2]: Ttest_indResult(statistic=1.9641226483541647, pvalue=0.055312326250267031) Từ bài kiểm tra t của người xứ Wales, chúng tôi đã kết thúc với giá trị p là 0,055. SCIPY tính toán giá trị này dựa trên hai trường hợp đuôi. Nếu chúng ta chỉ muốn giá trị p của đuôi phải, chúng ta có thể chia giá trị này cho 2. Điều này có nghĩa là xác suất có ~ 2,57% cơ hội tìm kiếm các giá trị được quan sát từ tháng 2 được đưa ra từ tháng 1. Chúng ta nên từ chối giả thuyết null. Bài kiểm tra t của Welch với dữ liệu FacebookHãy thử sử dụng dữ liệu thực lần này. Tôi đã lấy dữ liệu từ kho lưu trữ máy học của UCI. Nhấn vào đây để liên kết đến tài liệu và trích dẫn. Tóm lại, dữ liệu có liên quan đến 'Bài đăng' được xuất bản trong năm 2014 trên trang Facebook của một thương hiệu mỹ phẩm nổi tiếng. Giả sử công ty mỹ phẩm của chúng tôi muốn có nhiều làn da hơn trong trò chơi tiếp thị kỹ thuật số. Chúng tôi quan tâm đến việc sử dụng Facebook như một nền tảng để quảng cáo công ty của chúng tôi. Hãy bắt đầu với một số khám phá dữ liệu đơn giản. In [3]: import pandas as pd data = pd.read_csv('dataset_Facebook.csv', delimiter=';') data.head() Out[3]:
Trạng tháiKhám phá các bài đăng trên Facebook 'trả tiền' và 'không trả tiền' In [4]: Chúng tôi quan tâm đến việc biết số lượng lượt thích 'đã trả tiền' được nhận so với một bài đăng "không trả tiền". Hãy bắt đầu với một số biểu đồ và thống kê mô tả. sample_size: 359 sample_mean: 155.84679665738162 sample_variance: 48403.23623970993 In [5]: paid_likes = data[data['Paid']==1]['like'] fig = plt.figure(figsize=(10,3)) ax=paid_likes.hist(range=(0, 1500),bins=30) ax.set_xlim(0,1500) plt.xlabel('Likes (Unpaid)') plt.ylabel('Frequency') plt.show() print('sample_size: {}'.format(paid_likes.shape[0])) print('sample_mean: {}'.format(paid_likes.mean())) print('sample_variance: {}'.format(paid_likes.var())) sample_size: 139 sample_mean: 235.6474820143885 sample_variance: 247175.07048274425
|