Dữ liệu tuân theo phân phối Gauss khi phân tán được gây ra bởi tổng của nhiều yếu tố độc lập và có trọng số bằng nhau
Phân phối tần số [biểu đồ] được tạo từ dữ liệu Gaussian sẽ trông giống như phân phối Gaussian hình chuông
Từng bước một
Dữ liệu phù hợp với bạn phải ở dạng phân bố tần suất trên bảng XY. Các giá trị X là trung tâm bin và các giá trị Y là số lượng quan sát
Nếu bạn bắt đầu với một cột dữ liệu và sử dụng Prism để tạo phân phối tần suất, hãy đảm bảo rằng bạn đặt loại biểu đồ thành "biểu đồ XY", với điểm hoặc biểu đồ tăng đột biến. Điều này đảm bảo rằng Prism tạo bảng kết quả XY với các trung tâm bin được nhập dưới dạng giá trị X. Thay vào đó, nếu bạn chọn biểu đồ thanh, Prism sẽ tạo bảng kết quả cột, tạo nhãn hàng từ tâm thùng. Loại bảng này không thể phù hợp với hồi quy phi tuyến tính, vì nó không có giá trị X
Bắt đầu từ bảng phân phối tần số, nhấp vào Phân tích, chọn Hồi quy phi tuyến tính từ danh sách phân tích XY, sau đó chọn phương trình "Gaussian" từ họ phương trình "Gaussian"
Mô hình [phân phối Gaussian]
Y=Biên độ*exp[-0. 5*[[X-Mean]/SD]^2]
Biên độ là chiều cao của tâm phân bố tính bằng đơn vị Y
Giá trị trung bình là giá trị X ở trung tâm của phân phối
SD là thước đo độ rộng của phân phối, theo cùng đơn vị với X
Giá trị trung bình và SD sẽ không giống với giá trị trung bình và SD được tính trực tiếp từ dữ liệu thô. Có hai lý do cho sự khác biệt. Đầu tiên là việc tạo phân phối tần suất yêu cầu một quyết định khá tùy ý về độ rộng của thùng và điều đó sẽ ảnh hưởng đến các giá trị phù hợp nhất của Giá trị trung bình và SD. Lý do thứ hai là hồi quy phi tuyến tính giả định rằng phần dư [khoảng cách của các điểm từ đường cong] tuân theo phân phối Gaussian. Giả định này sẽ không hoàn toàn đúng trong phân phối tần số
Mô hình [tổng của hai bản phân phối Gaussian]
Nếu dữ liệu của bạn là hỗn hợp các giá trị được lấy mẫu từ hai phân phối Gaussian, hãy điều chỉnh phân phối tần số cho một mô hình tổng của hai phân phối Gaussian
Một=Biên độ1*exp[-0. 5*[[X-Mean1]/SD1]^2]
Hai=Biên độ2*exp[-0. 5*[[X-Mean2]/SD2]^2]
Y= Một + Hai
Biên độ và Biên độ là độ cao của tâm phân bố theo đơn vị Y
Mean1 và Mean2 là các giá trị X ở trung tâm của hai bản phân phối
SD1 và SD2 là thước đo độ rộng của các bản phân phối, trong cùng đơn vị với X
Prism không thông minh lắm trong việc gán các giá trị ban đầu cho các tham số. Nếu bạn gặp khó khăn trong việc làm cho mô hình này vừa vặn, hãy thử loay hoay với các giá trị tham số ban đầu
Khu vực dưới một phân phối Gaussian
Khu vực dưới phân phối Gaussian bằng Biên độ*SD/0. 3989. Hằng số đó bằng nghịch đảo của căn bậc hai của hai số pi
Khi chúng tôi vẽ một tập dữ liệu chẳng hạn như biểu đồ, hình dạng của biểu đồ được biểu đồ đó là cái mà chúng tôi gọi là phân phối của nó. Hình dạng phổ biến nhất được quan sát thấy của các giá trị liên tục là đường cong hình chuông, còn được gọi là phân phối Gaussian hoặc chuẩn
Nó được đặt tên theo nhà toán học người Đức Carl Friedrich Gauss. Một số bộ dữ liệu ví dụ phổ biến tuân theo phân phối Gaussian là Nhiệt độ cơ thể, Chiều cao của mọi người, Số dặm ô tô, điểm IQ.
Hãy thử tạo phân phối chuẩn lý tưởng và vẽ đồ thị bằng Python
Cách vẽ sơ đồ phân phối Gaussian trong Python
Chúng tôi có các thư viện như Numpy, scipy và matplotlib để giúp chúng tôi vẽ một đường cong bình thường lý tưởng
Python3
import
numpy as np
import
scipy as sp
from
scipy
import
stats
import
matplotlib.pyplot as plt
numpy as np
0
numpy as np
1
numpy as np
0
numpy as np
3
numpy as np
4numpy as np
5 numpy as np
6numpy as np
7numpy as np
8numpy as np
9numpy as np
8numpy as np
9import
2import
3
numpy as np
0
import
5
import
6numpy as np
5 import
8import
9numpy as np
9scipy as sp
1import
3
numpy as np
0
scipy as sp
4
scipy as sp
5
đầu ra
Các điểm trên trục x là các quan sát và trục y là khả năng của mỗi quan sát
Chúng tôi đã tạo các quan sát cách đều nhau trong phạm vi [-5, 5] bằng cách sử dụng np. sắp xếp[]. Sau đó, chúng tôi chạy nó thông qua định mức. pdf[] với giá trị trung bình là 0. 0 và độ lệch chuẩn là 1, trả về khả năng quan sát đó. Các quan sát xung quanh 0 là phổ biến nhất và các quan sát xung quanh -5. 0 và 5. 0 rất hiếm. Thuật ngữ kỹ thuật cho hàm pdf[] là hàm mật độ xác suất
Hàm Gaussian
Đầu tiên, hãy khớp dữ liệu với hàm Gaussian. Mục tiêu của chúng tôi là tìm các giá trị của A và B phù hợp nhất với dữ liệu của chúng tôi. Đầu tiên, chúng ta cần viết một hàm python cho phương trình hàm Gaussian. Hàm phải chấp nhận biến độc lập [giá trị x] và tất cả các tham số sẽ làm cho nó
Python3
scipy as sp
6
scipy as sp
7 scipy as sp
8
scipy as sp
9from
0 from
1from
2 from
3from
4 from
5numpy as np
7from
7numpy as np
7 from
9from
4from
4 scipy
2 scipy
3 scipy
4scipy
2 from
4 scipy
7from
4from
4 scipy
2import
1
Chúng tôi sẽ sử dụng hàm curve_fit từ mô-đun python scipy. tối ưu hóa để phù hợp với dữ liệu của chúng tôi. Nó sử dụng bình phương nhỏ nhất phi tuyến tính để khớp dữ liệu với dạng chức năng. Bạn có thể tìm hiểu thêm về curve_fit bằng cách sử dụng chức năng trợ giúp trong sổ ghi chép Jupyter hoặc tài liệu trực tuyến scipy
Hàm curve_fit có ba đầu vào bắt buộc. chức năng bạn muốn khớp, dữ liệu x và dữ liệu y bạn khớp. Có hai đầu ra. Đầu tiên là một mảng các giá trị tối ưu của các tham số. Thứ hai là ma trận hiệp phương sai ước tính của các tham số mà từ đó bạn có thể tính toán sai số chuẩn cho các tham số
ví dụ 1
Python3
from
import
3import
import
5
import
numpy as np
import
import
9
from
stats
1import
stats
3
stats
4numpy as np
5 stats
6numpy as np
7stats
8numpy as np
9numpy as np
7import
1numpy as np
9numpy as np
7import
4numpy as np
9numpy as np
7import
7numpy as np
9numpy as np
7matplotlib.pyplot as plt
0numpy as np
9numpy as np
7matplotlib.pyplot as plt
3numpy as np
9numpy as np
7matplotlib.pyplot as plt
6numpy as np
9numpy as np
7matplotlib.pyplot as plt
9numpy as np
9numpy as np
7numpy as np
02numpy as np
9numpy as np
7numpy as np
05numpy as np
9numpy as np
07numpy as np
9numpy as np
05numpy as np
9numpy as np
02numpy as np
9matplotlib.pyplot as plt
9numpy as np
9matplotlib.pyplot as plt
6numpy as np
9matplotlib.pyplot as plt
3numpy as np
9matplotlib.pyplot as plt
0numpy as np
9import
7numpy as np
9import
4numpy as np
9import
1numpy as np
9stats
8numpy as np
28
numpy as np
29numpy as np
5 stats
6numpy as np
32numpy as np
9numpy as np
34numpy as np
9numpy as np
36numpy as np
9numpy as np
38numpy as np
9numpy as np
40numpy as np
9numpy as np
42numpy as np
9numpy as np
44numpy as np
9numpy as np
46numpy as np
9numpy as np
48numpy as np
9numpy as np
50numpy as np
9numpy as np
52numpy as np
9numpy as np
54numpy as np
9numpy as np
56numpy as np
9numpy as np
58numpy as np
9numpy as np
60numpy as np
9numpy as np
62numpy as np
9numpy as np
64numpy as np
9numpy as np
66numpy as np
9numpy as np
68numpy as np
9numpy as np
70numpy as np
9numpy as np
72numpy as np
28
numpy as np
0
numpy as np
75
stats
4numpy as np
5 numpy as np
78
numpy as np
29numpy as np
5 numpy as np
81
numpy as np
82numpy as np
83import
3
numpy as np
0
numpy as np
86
scipy as sp
7 numpy as np
88
scipy as sp
9numpy as np
90numpy as np
5 from
3from
4from
5numpy as np
7scipy as sp
1from
4numpy as np
98from
4import
00from
4from
4scipy
2import
3
scipy as sp
9from
0 numpy as np
90
import
08numpy as np
5 import
10
numpy as np
0
import
12numpy as np
5 import
14import
9numpy as np
28
import
17numpy as np
5 import
14scipy as sp
1numpy as np
28
numpy as np
0
import
23numpy as np
5 import
25
numpy as np
82numpy as np
83____028numpy as np
5import
30import
3
import
32import
33____028numpy as np
5import
36import
3
import
38
ví dụ 2
Python3
import
numpy as np
from
stats
1import
stats
3
import
import
46
numpy as np
0
import
48
scipy as sp
7 import
50
scipy as sp
9from
0 import
53_______44from
5numpy as np
7from
7______17from
9from
4from
4scipy
2scipy
3scipy
4scipy
2from
4scipy
7from
4from
4scipy
2import
1
numpy as np
0
import
73
import
00numpy as np
5 import
76import
9numpy as np
9import
79numpy as np
9import
81import
3
numpy as np
90numpy as np
5 import
85scipy as sp
1numpy as np
9numpy as np
8numpy as np
9scipy
2import
3
numpy as np
0
import
93
import
94numpy as np
5 numpy as np
90from
2 import
98 from
4 scipy as sp
00numpy as np
5scipy as sp
02scipy as sp
03