Tôi đang thử nghiệm việc lắp đặt một luật năng lượng vào dữ liệu thực nghiệm bằng cách sử dụng mô-đun powerlaw. Tôi đã tạo ra các dữ liệu sau đó tuân theo phân phối định luật hàm mũ của số mũ 2:Phù hợp với pháp luật về quyền lực đối với dữ liệu thực nghiệm trong Python
x = range(1,1000)
y = []
for i in x:
y.append(i**(-2))
tôi hy vọng các định luật hàm mũ được trang bị để có một số mũ của 2. Tuy nhiên số mũ kết quả lệch khỏi giá trị lý thuyết rất nhiều:
fitted_pl = powerlaw.Fit(y)
fitted_pl.alpha
Out[115]: 1.4017584065981563
Bạn có thể vui lòng giải thích lý do điều này xảy ra hay chỉ ra những gì tôi đã làm sai ở đây?
Cảm ơn bạn đã trả lời tốt bụng!
Khi bạn viết 'y.append (x ** (- 2))', tôi nghĩ bạn có nghĩa là 'y. nối thêm (i ** (- 2)) ' – Brionius
@Brionius Cảm ơn bạn đã chỉ ra điều đó, sửa chữa. –
Bạn có thể nhầm lẫn hồi quy của dòng 'y (x) = kx^(- a)' với một số mũ phù hợp với các giá trị được vẽ từ phân bố xác suất * * 'p (x) ~ (a-1) x^(- a) '? [K-> thay đổi là cố ý.] Mô-đun 'powerlaw' giải quyết câu hỏi thứ hai. – DSM