Bivariate phân phối Poisson trăn

Dữ liệu dựa trên số lượng chứa các sự kiện xảy ra ở một tốc độ nhất định. Tỷ lệ xảy ra có thể thay đổi theo thời gian hoặc từ lần quan sát này sang lần quan sát tiếp theo. Dưới đây là một số ví dụ về dữ liệu dựa trên số lượng

Bivariate phân phối Poisson trăn
Nguồn dữ liệu. Wikipedia. các ngoại hành tinh có thể ở được (Hình ảnh của Tác giả)

  • Số lượng phương tiện qua giao lộ mỗi giờ,
  • Số người đến văn phòng bác sĩ mỗi tháng,
  • Số hành tinh giống trái đất được phát hiện mỗi tháng

Một tập dữ liệu đếm có các đặc điểm sau

  • Dữ liệu số nguyên. Dữ liệu gồm các số nguyên không âm. [0… ∞] Các kỹ thuật hồi quy như Hồi quy bình phương nhỏ nhất thông thường có thể không phù hợp để mô hình hóa dữ liệu đó vì OLSR hoạt động tốt nhất trên các số thực như -656. 0, -0. 00000345, 13786. 1 vv
  • Phân phối lệch. Dữ liệu có thể chứa một số lượng lớn các điểm dữ liệu chỉ cho một vài giá trị, do đó làm cho phân phối tần suất khá sai lệch. Xem ví dụ trên biểu đồ
  • thưa thớt. Dữ liệu có thể phản ánh sự xuất hiện của một sự kiện hiếm gặp như vụ nổ tia gamma, do đó làm cho dữ liệu thưa thớt
  • Tỷ lệ xảy ra. Để tạo ra một mô hình, có thể giả định rằng có một tỷ lệ xuất hiện nhất định của các sự kiện λ thúc đẩy việc tạo dữ liệu đó. Tỷ lệ sự kiện có thể trôi theo thời gian

Một bộ dữ liệu trong thế giới thực về số lượng

Bảng sau đây chứa số lượng người đi xe đạp đi qua các cây cầu khác nhau của NYC. Số lượng được đo hàng ngày từ ngày 01 tháng 4 năm 2017 đến ngày 31 tháng 10 năm 2017

Bivariate phân phối Poisson trăn
Nguồn. Đếm xe đạp cho các cây cầu sông Đông (Nguồn dữ liệu. NYC OpenData) (Hình ảnh của Tác giả)

Đây là một cốt truyện theo trình tự thời gian của người đi xe đạp đếm trên cầu Brooklyn

Bivariate phân phối Poisson trăn
Hình nền.


Các mô hình hồi quy cho số đếm

Mô hình hồi quy Poisson và mô hình hồi quy Nhị thức âm là hai kỹ thuật phổ biến để phát triển mô hình hồi quy cho số lượng. Các khả năng khác là các mô hình Ordered Logit, Ordered Probit và Nonlinear Least Squares

Chiến lược hồi quy

Bạn nên bắt đầu với mô hình hồi quy Poisson và sử dụng nó làm “điều khiển” cho các mô hình phức tạp hơn hoặc ít ràng buộc hơn. Trong cuốn sách Phân tích hồi quy của dữ liệu đếm, Cameron và Trivedi nói như sau

“Một phương pháp hay là ước tính cả mô hình nhị thức Poisson và âm. ”

Trong phần này, chúng ta sẽ sử dụng mô hình hồi quy Poisson để hồi quy số lượng người đi xe đạp quan sát được trên cầu Brooklyn và trong phần tiếp theo, chúng ta sẽ huấn luyện mô hình Nhị thức âm trên cùng một tập dữ liệu


Giới thiệu mô hình Poisson

Phân phối Poisson có Hàm khối lượng xác suất sau

Bivariate phân phối Poisson trăn
Xác suất nhìn thấy k sự kiện trong thời gian t, với λ sự kiện xảy ra trong mỗi đơn vị thời gian (Ảnh của Tác giả)

Giá trị kỳ vọng (trung bình) cho phân phối Poisson là λ. Do đó, trong trường hợp không có thông tin khác, người ta sẽ thấy các sự kiện λ trong bất kỳ khoảng thời gian đơn vị nào, chẳng hạn như 1 giờ, 1 ngày, v.v. Đối với bất kỳ khoảng thời gian t nào, người ta sẽ mong đợi thấy các sự kiện λt


Mô hình hồi quy Poisson cho hằng số λ

Nếu tỷ lệ sự kiện λ không đổi, người ta chỉ cần sử dụng Mô hình trung bình đã sửa đổi để dự đoán số lượng sự kiện trong tương lai. Trong trường hợp này, người ta sẽ đặt tất cả các giá trị đếm được dự đoán thành giá trị không đổi này λ

Hình dưới đây minh họa kịch bản λ không đổi

Bivariate phân phối Poisson trăn
Số lượng thực tế và dự đoán cho một mô hình tỷ lệ không đổi (Hình ảnh của Tác giả)

Mã Python sau đây đã được sử dụng để tạo các chấm màu xanh lam (số lượng thực tế trong các bước thời gian trước) bằng quy trình Poisson với λ=5. Các chấm màu cam (dự đoán) đều được đặt thành cùng một giá trị 5

Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn. Tìm hiểu thêm về các ký tự Unicode hai chiều

Hiển thị ký tự ẩn

nhập ngẫu nhiênnhập toán học_lambda = 5_num_total_arrivals = 150_num_arrivals = 0_arrival_time = 0_num_arrivals_in_unit_time = []_time_tick = 1print('RANDOM_N,INTER_ARRIVAL_TIME,EVENT_ARRIVAL_TIME')for i in range(_num_total_arrivals):#Lấy giá trị xác suất tiếp theo từ Đồng nhất(0,1)p = random.ngẫu nhiên () #Plug nó vào nghịch đảo của CDF của Exponential(_lamnbda)_inter_arrival_time = math.log ( 1. 0 p ) / . #Add the inter-arrival time to the running sum_arrival_time = _arrival_time + _inter_arrival_time#Increment the number of arrival per unit time_num_arrivals = _num_arrivals + 1if _arrival_time > _time_tick:_num_arrivals_in_unit_time . append ( _num_arrivals ) _num_arrivals . ' = 0_time_tick = _time_tick + 1#print it all outprint(str(p)+','+str(_inter_arrival_time)+','+str(_arrival_time))print('\nNumber of arrivals in successive unit length intervals ===>')print(_num_arrivals_in_unit_time)print('Mean arrival rate for sample:' + str ( tổng(_num_arrivals_in_unit_time)/len(_num_arrivals_in_unit_time)))

xem raw được lưu trữ với ❤ ​​bởi GitHub

Một chương trình Python để tạo số lượng sự kiện bằng quy trình Poisson

Một mô hình hồi quy Poisson cho một hằng số λ

Bây giờ chúng ta đến phần thú vị. Hãy để chúng tôi kiểm tra một tình huống phổ biến hơn, một tình huống trong đó λ có thể thay đổi từ quan sát này sang quan sát tiếp theo. Trong trường hợp này, chúng tôi giả định rằng giá trị của λ bị ảnh hưởng bởi một vectơ của các biến giải thích, còn được gọi là biến dự đoán, biến hồi quy hoặc biến hồi quy. Chúng ta sẽ gọi ma trận biến hồi quy này là X

Công việc của mô hình hồi quy là điều chỉnh số lượng y quan sát được với ma trận của các giá trị hồi quy X

Trong tập dữ liệu đếm người đi xe đạp ở NYC, các biến hồi quy là Ngày, Ngày trong tuần, Nhiệt độ cao, Nhiệt độ thấp và Lượng mưa. Chúng tôi cũng có thể giới thiệu các biến hồi quy bổ sung như Tháng và Ngày trong Tháng bắt nguồn từ Ngày và chúng tôi có quyền loại bỏ các biến hồi quy hiện có như Ngày

Bivariate phân phối Poisson trăn
(Ảnh của Tác giả)

Việc khớp y với X xảy ra bằng cách cố định các giá trị của vectơ hệ số hồi quy β

Trong mô hình Hồi quy Poisson, số lượng sự kiện y được giả định là phân phối Poisson, có nghĩa là xác suất quan sát y là một hàm của vectơ tốc độ sự kiện λ

Công việc của mô hình Hồi quy Poisson là điều chỉnh số đếm y quan sát được với ma trận hồi quy X thông qua hàm liên kết biểu thị vectơ tốc độ λ dưới dạng hàm của, 1) hệ số hồi quy β và 2) ma trận hồi quy X

Hình dưới đây minh họa cấu trúc của mô hình hồi quy Poisson

Bivariate phân phối Poisson trăn
Quét từ trái sang phải. Cấu trúc của mô hình hồi quy Poisson (Ảnh của Tác giả)

Điều gì có thể là một chức năng liên kết tốt f(. ) nối λ với X?

Bivariate phân phối Poisson trăn
Hàm liên kết hàm mũ của mô hình hồi quy Poisson (Ảnh của Tác giả)

Hàm liên kết này giữ cho λ không âm ngay cả khi các biến hồi quy X hoặc hệ số hồi quy β có giá trị âm. Đây là một yêu cầu đối với dữ liệu dựa trên số lượng

Nói chung, chúng ta có

Bivariate phân phối Poisson trăn
Hàm liên kết hàm mũ của mô hình hồi quy Poisson (Ảnh của Tác giả)


Đặc điểm kỹ thuật chính thức của mô hình hồi quy Poisson

Thông số kỹ thuật đầy đủ của mô hình hồi quy Poisson cho dữ liệu dựa trên số lượng được đưa ra như sau

Đối với lần quan sát thứ i trong tập dữ liệu được ký hiệu là y_i tương ứng với hàng biến hồi quy x_i, xác suất quan sát số lượng y_i là phân phối Poisson theo PMF sau

Bivariate phân phối Poisson trăn
Xác suất quan sát số lượng y_i cho trước x_i (theo công thức Poisson PMF) (Hình ảnh của Tác giả)

Trong đó tốc độ trung bình λ_i cho mẫu thứ i được đưa ra bởi hàm liên kết hàm mũ được hiển thị trước đó. Chúng tôi sao chép nó ở đây

Bivariate phân phối Poisson trăn
Hàm liên kết hàm mũ của mô hình hồi quy Poisson (Ảnh của Tác giả)

Sau khi mô hình được đào tạo đầy đủ trên tập dữ liệu, các hệ số hồi quy β được biết và mô hình đã sẵn sàng để đưa ra dự đoán. Để dự đoán số lượng sự kiện y_p tương ứng với hàng đầu vào của các biến hồi quy x_p mà người ta đã quan sát, người ta sử dụng công thức này

Bivariate phân phối Poisson trăn
Phương trình dự đoán cho mô hình hồi quy Poisson (Ảnh của Tác giả)

Tất cả những điều này phụ thuộc vào khả năng huấn luyện mô hình thành công của chúng ta sao cho véc tơ hệ số hồi quy β được biết đến

Hãy xem quá trình đào tạo này diễn ra như thế nào


Đào tạo mô hình hồi quy Poisson

Đào tạo một mô hình hồi quy Poisson liên quan đến việc tìm các giá trị của các hệ số hồi quy β sẽ làm cho vectơ của số lượng y được quan sát có khả năng nhất

Kỹ thuật xác định các hệ số β được gọi là Ước tính khả năng tối đa (MLE)

Hãy làm quen với kỹ thuật của MLE

Hiểu ước tính khả năng tối đa (MLE)

Tôi sẽ minh họa kỹ thuật MLE bằng cách sử dụng bộ dữ liệu đếm người đi xe đạp. Hãy xem một vài hàng đầu tiên của tập dữ liệu này

Bivariate phân phối Poisson trăn
Số lượng người đi xe đạp hàng ngày trên cầu Brooklyn (Ảnh của Tác giả)

Giả định của chúng tôi là số lượng người đi xe đạp được hiển thị trong ô màu đỏ phát sinh từ quy trình Poisson. Do đó, chúng ta có thể nói rằng xác suất xảy ra của chúng được đưa ra bởi Poisson PMF. Đây là xác suất cho 4 lần xuất hiện đầu tiên

Bivariate phân phối Poisson trăn
Xác suất quan sát số lượng người đi xe đạp trong một vài lần xuất hiện đầu tiên dựa trên các vectơ hồi quy tương ứng (Hình ảnh của Tác giả)

Tương tự, chúng ta có thể tính xác suất cho tất cả n số được quan sát trong tập huấn luyện

Lưu ý rằng trong các công thức trên, λ_1, λ_2, λ_3,…,λ_n được tính bằng hàm liên kết như sau

Bivariate phân phối Poisson trăn
Tỷ lệ sự kiện tương ứng với số lượng trong vài ngày đầu tiên (Hình ảnh của Tác giả)

Trong đó x_1, x_2, x_3, x_4 là 4 hàng đầu tiên của ma trận hồi quy

Xác suất xuất hiện của toàn bộ n số đếm y_1, y_2,…,y_n trong tập huấn luyện là xác suất xuất hiện chung của các số đếm riêng lẻ

Các tổng số y có phân phối Poisson, y_1, y_2,…,y_n là các biến ngẫu nhiên độc lập, cho trước tương ứng x_1, x_2,…,x_n. Do đó, xác suất xuất hiện chung của y_1, y_2,…,y_n có thể được biểu thị dưới dạng phép nhân đơn giản của các xác suất riêng lẻ. Đây là cách xác suất chung trông như thế nào đối với toàn bộ tập huấn luyện

Bivariate phân phối Poisson trăn
Hàm khả năng L(β) được biểu thị dưới dạng hàm khối lượng xác suất chung (Hình ảnh của Tác giả)

Hãy nhớ lại rằng λ_1, λ_2, λ_3,…,λ_n được liên kết với các vectơ hồi quy x_1, x_2,x_3,…,x_n thông qua các hệ số hồi quy β

Giá trị nào của β sẽ làm cho tập hợp các số quan sát y đã cho có khả năng xảy ra nhất? . Nói cách khác, đó là giá trị của β mà tốc độ thay đổi của hàm xác suất chung w. r. t. là 0. Nói cách khác, đó là nghiệm của phương trình thu được từ vi phân phương trình xác suất chung w. r. t. và đặt phương trình vi phân này thành 0

Dễ dàng phân biệt logarit của phương trình xác suất chung hơn so với phương trình ban đầu. Giải pháp cho phương trình đã ghi mang lại cùng một giá trị tối ưu của β

Phương trình logarit này được gọi là hàm log-likelihood. Đối với hồi quy Poisson, hàm log-likelihood được cho bởi phương trình sau

Bivariate phân phối Poisson trăn
log-likelihood function cho mô hình hồi quy Poisson (Hình ảnh của Tác giả)

Phương trình trên thu được bằng cách lấy logarit tự nhiên của cả hai vế của hàm xác suất chung được hiển thị trước đó, sau khi thay thế λ_i bằng exp(x_i*β)

Như đã đề cập trước đó, chúng tôi vi phân phương trình log-likelihood này w. r. t. và đặt nó thành 0. Hoạt động này cho chúng ta phương trình sau

Bivariate phân phối Poisson trăn
Poisson MLE cho β là nghiệm của phương trình này (Ảnh của Tác giả)

Giải phương trình này cho các hệ số hồi quy β sẽ mang lại Ước tính khả năng xảy ra tối đa (MLE) cho β

Để giải phương trình trên, người ta sử dụng một phương pháp lặp như Iteratively Reweighted Least Squares (IRLS). Trong thực tế, người ta không giải phương trình này bằng tay. Thay vào đó, bạn sử dụng phần mềm thống kê chẳng hạn như gói mô hình thống kê Python sẽ thực hiện tất cả các phép tính cho bạn trong khi đào tạo mô hình hồi quy Poisson trên tập dữ liệu của bạn


Tóm tắt các bước thực hiện hồi quy Poisson

Tóm lại, đây là các bước để thực hiện Hồi quy Poisson trên tập dữ liệu dựa trên số lượng

  1. Trước tiên, hãy đảm bảo rằng tập dữ liệu của bạn chứa số lượng. Một cách để nói là nó chỉ chứa các giá trị nguyên không âm biểu thị số lần xuất hiện của một số sự kiện trong một khoảng thời gian nào đó. Trong bộ dữ liệu về số lượng người đi xe đạp, đây là số lượng người đi xe đạp qua cầu Brooklyn mỗi ngày
  2. Tìm hiểu (hoặc đoán) các biến hồi quy sẽ ảnh hưởng đến số lượng quan sát được. Trong bộ dữ liệu đếm người đi xe đạp, các biến hồi quy là Ngày trong tuần, Nhiệt độ tối thiểu, Nhiệt độ tối đa, Lượng mưa, v.v.
  3. Tạo ra một tập dữ liệu đào tạo mà mô hình hồi quy của bạn sẽ đào tạo và một tập dữ liệu thử nghiệm nên để sang một bên. Không đào tạo mô hình trên dữ liệu thử nghiệm
  4. Sử dụng một phần mềm thống kê phù hợp, chẳng hạn như gói mô hình thống kê Python để định cấu hình và khớp mô hình Hồi quy Poisson trên tập dữ liệu huấn luyện
  5. Kiểm tra hiệu suất của mô hình bằng cách chạy nó trên tập dữ liệu thử nghiệm để tạo số lượng dự đoán. So sánh chúng với số lượng thực tế trong tập dữ liệu thử nghiệm
  6. Sử dụng thước đo mức độ phù hợp để xác định mức độ đào tạo của mô hình trên tập dữ liệu đào tạo

Cách đào tạo Mô hình hồi quy Poisson trong Python

Hãy thực hành những gì chúng ta đã học. Gói mô hình thống kê Python có hỗ trợ tuyệt vời để thực hiện hồi quy Poisson

Hãy sử dụng bộ dữ liệu đếm người đi xe đạp trên cầu Brooklyn. Bạn có thể lấy tập dữ liệu từ đây

Mục tiêu của chúng tôi là xây dựng mô hình hồi quy Poisson cho số lượng người đi xe đạp được quan sát y. Chúng tôi sẽ sử dụng mô hình được đào tạo để dự đoán số lượng người đi xe đạp hàng ngày trên cầu Brooklyn mà mô hình không thấy trong quá trình đào tạo

Bivariate phân phối Poisson trăn
Số lượng người đi xe đạp hàng ngày trên cầu Brooklyn (Ảnh của Tác giả)

Chúng tôi sẽ bắt đầu bằng cách nhập tất cả các gói cần thiết

import pandas as pd
from patsy import dmatrices
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

Tạo một DataFrame gấu trúc cho tập dữ liệu đếm

df = pd.read_csv('nyc_bb_bicyclist_counts.csv', header=0, infer_datetime_format=True, parse_dates=[0], index_col=[0])

Chúng tôi sẽ thêm một vài biến hồi quy dẫn xuất vào ma trận X

ds = df.index.to_series()
df['MONTH'] = ds.dt.month
df['DAY_OF_WEEK'] = ds.dt.dayofweek
df['DAY'] = ds.dt.day

Chúng tôi sẽ không sử dụng biến Ngày làm biến hồi quy vì nó chứa giá trị ngày tuyệt đối nhưng chúng tôi không cần thực hiện bất kỳ điều gì đặc biệt để loại bỏ Ngày vì nó đã được sử dụng làm chỉ mục của Khung dữ liệu gấu trúc. Vì vậy, nó sẽ không có sẵn cho chúng tôi trong ma trận X

Hãy tạo tập dữ liệu huấn luyện và thử nghiệm

mask = np.random.rand(len(df)) < 0.8
df_train = df[mask]
df_test = df[~mask]
print('Training data set length='+str(len(df_train)))
print('Testing data set length='+str(len(df_test)))

Thiết lập biểu thức hồi quy trong ký hiệu patsy. Chúng tôi đang nói với patsy rằng BB_COUNT là biến phụ thuộc của chúng tôi và nó phụ thuộc vào các biến hồi quy. NGÀY, NGÀY_OF_TUẦN, THÁNG, CAO_T, THẤP_T và CHÍNH XÁC

expr = """BB_COUNT ~ DAY  + DAY_OF_WEEK + MONTH + HIGH_T + LOW_T + PRECIP"""

Thiết lập ma trận X và y cho tập dữ liệu huấn luyện và kiểm tra. patsy làm điều này thực sự đơn giản

y_train, X_train = dmatrices(expr, df_train, return_type='dataframe')
y_test, X_test = dmatrices(expr, df_test, return_type='dataframe')

Sử dụng lớp GLM của statsmodels, huấn luyện mô hình hồi quy Poisson trên tập dữ liệu huấn luyện

poisson_training_results = sm.GLM(y_train, X_train, family=sm.families.Poisson()).fit()

In tóm tắt đào tạo

print(poisson_training_results.summary())

Điều này in ra như sau

Bivariate phân phối Poisson trăn
Tóm tắt đào tạo cho mô hình hồi quy Poisson (Hình ảnh của Tác giả)

Vậy mô hình của chúng ta đã làm tốt như thế nào?

________số 8_______

Đây là một vài hàng đầu tiên của đầu ra

Bivariate phân phối Poisson trăn
Một vài hàng đầu ra đầu tiên từ poisson_predictions. summary_frame() (Hình ảnh của Tác giả)

Hãy vẽ sơ đồ số lượng dự đoán so với số lượng thực tế cho dữ liệu thử nghiệm

predicted_counts=predictions_summary_frame['mean']
actual_counts = y_test['BB_COUNT']
fig = plt.figure()
fig.suptitle('Predicted versus actual bicyclist counts on the Brooklyn bridge')
predicted, = plt.plot(X_test.index, predicted_counts, 'go-', label='Predicted counts')
actual, = plt.plot(X_test.index, actual_counts, 'ro-', label='Actual counts')
plt.legend(handles=[predicted, actual])
plt.show()

Đây là đầu ra

Bivariate phân phối Poisson trăn
Số lượng người đi xe đạp dự đoán so với thực tế trên cầu Brooklyn (Ảnh của Tác giả)

Mô hình dường như ít nhiều theo dõi xu hướng trong số lượng thực tế mặc dù trong nhiều trường hợp, dự đoán của nó khác xa với giá trị thực tế

Hãy vẽ sơ đồ số lượng thực tế so với dự đoán

df = pd.read_csv('nyc_bb_bicyclist_counts.csv', header=0, infer_datetime_format=True, parse_dates=[0], index_col=[0])
0

Đây là cốt truyện

Bivariate phân phối Poisson trăn
Biểu đồ phân tán của số lượng Thực tế so với Dự đoán (Hình ảnh của Tác giả)


Đây là mã nguồn hoàn chỉnh để thực hiện hồi quy Poisson bằng Python

Tệp này chứa văn bản Unicode hai chiều có thể được diễn giải hoặc biên dịch khác với nội dung hiển thị bên dưới. Để xem lại, hãy mở tệp trong trình chỉnh sửa hiển thị các ký tự Unicode bị ẩn. Tìm hiểu thêm về các ký tự Unicode hai chiều

Hiển thị ký tự ẩn

nhập gấu trúc dưới dạng pdtừ patsy import dmatricesimport numpy as npimport statsmodels.api as smnhập matplotlib . .pyplot as plt#Create a pandas DataFrame cho tập dữ liệu đếm. df = pd . read_csv ( 'nyc_bb_bicyclist_counts. csv' , tiêu đề=0, infer_datetime_format=True, parse_dates=[0], index_col=[0])#Add a few derived regression variables.ds = df . chỉ mục . to_series () df [ . ] = ds.dt . thángdf [ 'DAY_OF_WEEK'] = ds.dt . ngày trong tuầndf [ 'DAY'] = ds.dt . day#Tạo tập dữ liệu huấn luyện và thử nghiệm. mặt nạ = np . ngẫu nhiên . rand ( len ( df . 8)) < 0.8df_train = df [ . Chúng tôi đang nói với patsy rằng BB_COUNT là biến phụ thuộc của chúng tôi và]df_test = df[~mask]print('Training data set length='+str(len(df_train)))print('Testing data set length='+str(len(df_test)))#Setup the regression expression in patsy notation. We are telling patsy that BB_COUNT is our dependent variable and# nó phụ thuộc vào các biến hồi quy. NGÀY, NGÀY_OF_TUẦN, THÁNG, CAO_T, THẤP_T và CHÍNH XÁC. expr = """BB_COUNT ~ DAY + DAY_OF_WEEK + MONTH + CAO_T + LOW_T + CHÍNH XÁC"""#Set up the X and y matricesy_train, X_train = dmatrices(expr, df_train, return_type='dataframe')y_test, X_test = dmatrices(expr, df_test, return_type='dataframe')#Using the statsmodels GLM class, train the Poisson regression model on the training data set.poisson_training_results = sm . GLM ( y_train , X_train . , family=sm.gia đình . Poisson ()). fit () #In bản tóm tắt đào tạo. in ( poisson_training_results . tóm tắt ()) #Đưa ra một số dự đoán về tập dữ liệu thử nghiệm. poisson_predictions = poisson_training_results . get_prediction ( X_test ) #. summary_frame() trả về DataFrame gấu trúcpredictions_summary_frame = poisson_predictions . summary_frame () print ( . )predicted_counts=predictions_summary_frame['mean']actual_counts = y_test['BB_COUNT']#Mlot the predicted counts versus the actual counts for the test data.fig = plt . hình () hình . suptitle ( 'Số lượng người đi xe đạp dự đoán so với thực tế trên cầu Brooklyn' ) . predicted, = plt.biểu đồ ( X_test . index , predicted_counts , ' . , label='Predicted counts')actual, = plt.biểu đồ ( X_test . chỉ mục , actual_counts , ' . , label='Actual counts')plt.chú giải ( xử lý= [ . predicted, actual])plt.hiển thị () #Hiển thị biểu đồ phân tán của số lượng Thực tế so với Dự đoánplt< . .clf () fig = . .hình () hình . suptitle ( 'Biểu đồ phân tán của số lượng thực tế so với dự đoán' ) plt.phân tán ( x=predicted_counts . ', y=actual_counts, marker='.' ) plt . xlabel ( 'Số lượng dự đoán' ) plt.ylabel ( 'Số lượng thực tế' ) plt.hiển thị ()

xem raw được lưu trữ với ❤ ​​bởi GitHub

Mô hình hồi quy Poisson

Mức độ phù hợp của mô hình hồi quy Poisson

Nhớ lại rằng cả giá trị mong đợi (i. e. trung bình) và phương sai của phân bố Poisson là λ. Điều kiện khá nghiêm ngặt này bị vi phạm bởi hầu hết các dữ liệu trong thế giới thực

Một nguyên nhân thất bại phổ biến của mô hình hồi quy Poisson là dữ liệu không thỏa mãn tiêu chí trung bình = phương sai do phân phối Poisson áp đặt

Phương thức summary() trên lớp GLMResults của statsmodels hiển thị một vài số liệu thống kê về mức độ phù hợp hữu ích để giúp bạn đánh giá xem mô hình hồi quy Poisson của bạn có thể phù hợp thành công với dữ liệu huấn luyện hay không. Hãy nhìn vào giá trị của chúng

Bivariate phân phối Poisson trăn
Tóm tắt đào tạo cho mô hình hồi quy Poisson (Hình ảnh của Tác giả)

Các giá trị được báo cáo của Deviance và Pearson chi bình phương là rất lớn. Một sự phù hợp tốt là hầu như không thể với những giá trị này. Để đưa ra quyết định định lượng về mức độ phù hợp ở một mức độ tin cậy nào đó, giả sử 95% (p=0. 05), chúng tôi tra cứu giá trị trong bảng χ2 cho p=0. 05 và Bậc tự do của phần dư=163. (Dư lượng DF = Không. Các quan sát trừ mô hình DF]). Chúng tôi so sánh giá trị Chi-Squared này với thống kê quan sát được, trong trường hợp này là giá trị Chi-squared của Deviance hoặc Pearson được báo cáo trong GLMResults. Chúng tôi thấy rằng tại p = 0. 05 và DF Dư = 163, giá trị chi bình phương từ bảng Chi bình phương tiêu chuẩn là 193. 791 nhỏ hơn nhiều so với thống kê được báo cáo của 23030 và 23300. Do đó, theo thử nghiệm này, mô hình hồi quy Poisson, mặc dù thể hiện sự phù hợp trực quan 'ổn' đối với tập dữ liệu thử nghiệm, lại phù hợp với dữ liệu huấn luyện khá kém


Kết luận và các bước tiếp theo

Đối với dữ liệu dựa trên số lượng, điểm khởi đầu hữu ích là mô hình hồi quy Poisson. Sau đó, người ta có thể so sánh hiệu suất của nó với các mô hình dựa trên số lượng phổ biến khác, chẳng hạn như

  1. Mô hình hồi quy nhị thức âm không đưa ra giả định trung bình = phương sai về dữ liệu
  2. Các mô hình hồi quy Poisson tổng quát cũng hoạt động tốt với các tập dữ liệu phân tán quá mức hoặc phân tán dưới mức
  3. Mô hình Poisson thổi phồng bằng không nếu bạn nghi ngờ rằng dữ liệu của mình chứa các số 0 dư thừa. e. nhiều số không hơn những gì mô hình Poisson thông thường có thể giải thích

Chúc mừng người mẫu


Có liên quan

Làm quen với quá trình Poisson và phân phối xác suất Poisson


Trích dẫn và bản quyền

tập dữ liệu

Đếm xe đạp cho cầu sông Đông. Tổng số lượng xe đạp hàng ngày được thực hiện hàng tháng trên Cầu Brooklyn, Cầu Manhattan, Cầu Williamsburg và Cầu Queensboro. Từ Dữ liệu Mở NYC theo Điều khoản Sử dụng. Tập dữ liệu được tuyển chọn để tải xuống .

Sách

Cameron A. C. và Trivedi P. K. , Regression Analysis of Count Data, Second Edition, Econometric Society Monograph No. 53, Nhà xuất bản Đại học Cambridge, Cambridge, tháng 5 năm 2013

Hình ảnh

Tất cả các hình ảnh đều thuộc bản quyền của Sachin Date theo CC-BY-NC-SA, trừ khi một nguồn và bản quyền khác được đề cập bên dưới hình ảnh

Phân phối Poisson hai biến là gì?

Một phân phối hai biến, có biên là Poisson được được phát triển dưới dạng tích của các biên Poisson với hệ số nhân . Mối tương quan giữa hai biến có thể là dương hoặc âm, tùy thuộc vào giá trị được chọn cho tham số trong hệ số nhân ở trên.

Mô hình Poisson hai biến là gì?

Poisson hai biến số là mô hình được sử dụng rộng rãi nhất cho số lượng hai biến số . Nó được đề xuất bởi Holgate (1964) và được trình bày bởi Johnson và Kotz (1969). Định nghĩa của phân phối Poisson hai biến không phải là duy nhất. Một số cách tiếp cận đã được thảo luận bởi Kocherlakota và Kocherlakota (1992).

Phân phối Poisson trong Python là gì?

Phân phối Poisson là Phân phối rời rạc . Nó ước tính số lần một sự kiện có thể xảy ra trong một thời gian xác định.

Làm cách nào để kiểm tra xem dữ liệu có tuân theo phân phối Poisson trong Python không?

2 câu trả lời .
Chỉ ra phân phối nào bạn muốn so sánh với
Đối với phân phối đó, hãy xác định các tham số có liên quan mô tả đầy đủ phân phối đó là gì. .
Sử dụng dữ liệu của riêng bạn để ước tính thông số đó. .
So sánh các giá trị được tạo của phân phối Poisson với các giá trị của dữ liệu thực tế của bạn