Thuật toán "trực tuyến" (trình lặp) để ước tính giá trị trung bình thống kê, chế độ, độ lệch, kurtosis?


86

Có một thuật toán để ước tính giá trị trung bình, chế độ, độ lệch và / hoặc kurtosis của bộ giá trị, nhưng điều đó KHÔNG yêu cầu lưu trữ tất cả các giá trị trong bộ nhớ cùng một lúc?

Tôi muốn tính toán các thống kê cơ bản:

  • nghĩa là: trung bình số học
  • phương sai: trung bình của độ lệch bình phương so với giá trị trung bình
  • độ lệch chuẩn: căn bậc hai của phương sai
  • trung vị: giá trị phân tách nửa số lớn hơn với nửa số nhỏ hơn
  • chế độ: giá trị thường xuyên nhất được tìm thấy trong tập hợp
  • độ lệch: tl; dr
  • kurtosis: tl; dr

Các công thức cơ bản để tính bất kỳ công thức nào trong số này là số học cấp trường, và tôi biết chúng. Cũng có nhiều thư viện thống kê triển khai chúng.

Vấn đề của tôi là số lượng lớn (hàng tỷ) giá trị trong các tập hợp mà tôi đang xử lý: Làm việc bằng Python, tôi không thể chỉ tạo danh sách hoặc băm với hàng tỷ phần tử. Ngay cả khi tôi đã viết điều này bằng C, mảng tỷ phần tử không quá thực tế.

Dữ liệu không được sắp xếp. Nó được sản xuất ngẫu nhiên, nhanh chóng, bằng các quy trình khác. Kích thước của mỗi bộ rất thay đổi và sẽ không được biết trước về kích thước.

Tôi đã tìm ra cách xử lý giá trị trung bình và phương sai khá tốt, lặp lại qua từng giá trị trong tập hợp theo bất kỳ thứ tự nào. (Thực ra, trong trường hợp của tôi, tôi sắp xếp chúng theo thứ tự mà chúng được tạo.) Đây là thuật toán tôi đang sử dụng, xin phép http://en.wikipedia.org/wiki/Algorithm_for_calculating_variance#On-line_algorithm :

  • Khởi tạo ba biến: count, sum và sum_of_squares
  • Đối với mỗi giá trị:
    • Số lượng tăng dần.
    • Thêm giá trị vào tổng.
    • Thêm bình phương của giá trị vào sum_of_squares.
  • Chia tổng cho số đếm, lưu trữ dưới dạng giá trị trung bình của biến.
  • Chia sum_of_squares cho số đếm, lưu trữ dưới dạng biến mean_of_squares.
  • Square nghĩa, lưu trữ dưới dạng square_of_mean.
  • Trừ square_of_mean khỏi mean_of_squares, lưu trữ dưới dạng phương sai.
  • Giá trị trung bình đầu ra và phương sai.

Thuật toán "trực tuyến" này có điểm yếu (ví dụ: các vấn đề về độ chính xác như sum_of_squares nhanh chóng lớn hơn phạm vi số nguyên hoặc độ chính xác float), nhưng về cơ bản nó cung cấp cho tôi những gì tôi cần mà không phải lưu trữ mọi giá trị trong mỗi tập hợp.

Nhưng tôi không biết liệu các kỹ thuật tương tự có tồn tại để ước tính số liệu thống kê bổ sung hay không (trung vị, chế độ, độ lệch, kurtosis). Tôi có thể sống với một công cụ ước tính thiên vị, hoặc thậm chí một phương pháp làm ảnh hưởng đến độ chính xác ở một mức độ nhất định, miễn là bộ nhớ cần thiết để xử lý các giá trị N về cơ bản nhỏ hơn O (N).

Việc trỏ tôi đến thư viện thống kê hiện có cũng sẽ hữu ích nếu thư viện có các hàm tính toán một hoặc nhiều phép toán này "trực tuyến".


dữ liệu sẽ được sắp xếp và bạn có biết trước số lượng đầu vào không?
chillysapien

Liên kết hữu ích hiện có trên StackOverflow: stackoverflow.com/questions/895929/…
dmckee --- người kiểm duyệt cũ mèo con

Đó là dữ liệu số nguyên hay dữ liệu thực? Bạn có giá trị tối đa hay tối thiểu?
stephan

dmckee: Tôi thực sự đang sử dụng Phương pháp của Welford cho độ lệch chuẩn. Nhưng tôi không thấy bất cứ điều gì trong liên kết đó về chế độ, trung vị, kurtosis, hoặc độ lệch ... Tôi có thiếu thứ gì đó không?
Ryan B. Lynch

stephan: Một số tập dữ liệu là số nguyên, những tập khác là số thực. Phân bố dân số khá gần với chuẩn (Gaussian), vì vậy chúng ta có thể thiết lập khoảng tin cậy, nhưng không có ranh giới phạm vi cứng (ngoại trừ x> 0, trong một số trường hợp).
Ryan B. Lynch

Câu trả lời:


53

Độ nghiêng và kurtosis

Đối với các thuật toán trực tuyến cho Skewness và Kurtosis (dọc theo các đường của phương sai), hãy xem trong cùng một trang wiki ở đây các thuật toán song song cho thống kê thời điểm cao hơn.

Trung bình

Trung bình là khó khăn nếu không có dữ liệu được sắp xếp. Nếu bạn biết, bạn có bao nhiêu điểm dữ liệu, về lý thuyết bạn chỉ phải sắp xếp một phần, ví dụ bằng cách sử dụng một thuật toán lựa chọn . Tuy nhiên, điều đó không giúp ích quá nhiều cho hàng tỷ giá trị. Tôi sẽ đề xuất sử dụng số lượng tần suất, hãy xem phần tiếp theo.

Trung vị và Chế độ có Đếm tần số

Nếu đó là số nguyên, tôi sẽ đếm tần số , có thể cắt các giá trị cao nhất và thấp nhất vượt quá giá trị nào đó mà tôi chắc chắn rằng nó không còn phù hợp nữa. Đối với float (hoặc quá nhiều số nguyên), tôi có thể sẽ tạo các nhóm / khoảng thời gian và sau đó sử dụng phương pháp tương tự như đối với số nguyên. Chế độ (gần đúng) và tính toán trung vị trở nên dễ dàng hơn, dựa trên bảng tần số.

Các biến ngẫu nhiên được phân phối thông thường

Nếu nó được phân phối bình thường, tôi sẽ sử dụng trung bình của mẫu tổng thể , phương sai , độ lệchkurtosis làm các công cụ ước tính khả năng xảy ra tối đa cho một tập hợp con nhỏ. Các thuật toán (trực tuyến) để tính toán chúng, bạn đã có ngay bây giờ. Ví dụ: đọc trong vài trăm nghìn hoặc hàng triệu điểm dữ liệu, cho đến khi lỗi ước tính của bạn đủ nhỏ. Chỉ cần đảm bảo rằng bạn chọn ngẫu nhiên từ tập hợp của mình (ví dụ: bạn không tạo ra sự thiên vị bằng cách chọn 100'000 giá trị đầu tiên). Cách tiếp cận tương tự cũng có thể được sử dụng cho chế độ ước lượng và trung vị cho trường hợp bình thường (đối với cả giá trị trung bình mẫu là một công cụ ước lượng).

Nhận xét thêm

Tất cả các thuật toán trên có thể được chạy song song (bao gồm nhiều thuật toán sắp xếp và lựa chọn, ví dụ như QuickSort và QuickSelect), nếu điều này hữu ích.

Tôi đã luôn giả định (ngoại trừ phần về phân phối chuẩn) rằng chúng ta nói về mô men mẫu, trung vị và chế độ, chứ không phải công cụ ước lượng cho các mô men lý thuyết cho một phân phối đã biết.

Nói chung, việc lấy mẫu dữ liệu (tức là chỉ xem xét một tập hợp con) sẽ khá thành công với số lượng dữ liệu, miễn là tất cả các quan sát đều là thực tế của cùng một biến ngẫu nhiên (có cùng phân phối) và các khoảnh khắc, chế độ và trung bình thực sự tồn tại cho phân phối này. Lời cảnh báo cuối cùng không phải là vô thưởng vô phạt. Ví dụ, giá trị trung bình (và tất cả các thời điểm cao hơn) cho Phân phối Cauchy không tồn tại. Trong trường hợp này, giá trị trung bình mẫu của một tập hợp con "nhỏ" có thể khác hàng loạt với giá trị trung bình mẫu của toàn bộ mẫu.


57

Tôi sử dụng các công cụ ước tính trung bình và trung bình gia tăng / đệ quy này, cả hai đều sử dụng lưu trữ không đổi:

mean += eta * (sample - mean)
median += eta * sgn(sample - median)

trong đó eta là một tham số tốc độ học tập nhỏ (ví dụ: 0,001) và sgn () là hàm signum trả về một trong {-1, 0, 1}. (Sử dụng một hằng số eta nếu dữ liệu không cố định và bạn muốn theo dõi các thay đổi theo thời gian; nếu không, đối với các nguồn tĩnh, bạn có thể sử dụng một cái gì đó như eta = 1 / n cho công cụ ước tính trung bình, trong đó n là số lượng mẫu được thấy như vậy xa ... thật không may, điều này dường như không hoạt động đối với công cụ ước tính trung bình.)

Loại công cụ ước tính trung bình gia tăng này dường như được sử dụng khắp nơi, ví dụ như trong các quy tắc học tập mạng nơ-ron không được giám sát, nhưng phiên bản trung bình dường như ít phổ biến hơn nhiều, mặc dù lợi ích của nó (tính mạnh mẽ đối với các trường hợp ngoại lệ). Có vẻ như phiên bản trung bình có thể được sử dụng để thay thế cho công cụ ước tính trung bình trong nhiều ứng dụng.

Tôi rất thích thấy một công cụ ước tính chế độ tăng dần có dạng tương tự ...

CẬP NHẬT

Tôi vừa sửa đổi công cụ ước tính trung vị gia tăng để ước tính các lượng tử tùy ý. Nói chung, một hàm lượng tử ( http://en.wikipedia.org/wiki/Quantile_ Chức năng ) cho bạn biết giá trị chia dữ liệu thành hai phân số: p và 1-p. Sau đây ước tính giá trị này tăng dần:

quantile += eta * (sgn(sample - quantile) + 2.0 * p - 1.0)

Giá trị p phải nằm trong [0,1]. Về cơ bản, điều này làm dịch chuyển đầu ra đối xứng của hàm sgn () {-1,0,1} sang một bên, phân chia các mẫu dữ liệu thành hai thùng có kích thước không bằng nhau (phân số p và 1-p của dữ liệu nhỏ hơn / lớn hơn ước lượng lượng tử, tương ứng). Lưu ý rằng đối với p = 0,5, điều này giảm xuống ước lượng trung vị.


3
Công cụ ước tính trung bình này rất tuyệt. Bạn có biết nếu có các công cụ ước lượng tương tự cho 0,25 / 0,75 lượng tử?
Gacek

1
@Gacek, chắc chắn: chia luồng đầu vào thành Lohalf <median và Hihalf> median và sử dụng running-median trên mỗi nửa.
denis

2
@Gacek: Tôi vừa cập nhật câu trả lời của mình bằng một phương pháp gia tăng để ước tính bất kỳ lượng tử nào, trong đó bạn có thể đặt p thành 0,25, 0,75 hoặc bất kỳ giá trị nào trong [0,1].
Tyler Streeter

10
Điều này hoạt động tốt ở mức trung bình, nhưng tôi không thấy cách nó tạo ra bất kỳ thứ gì từ xa gần với trung bình. Ví dụ: lấy một chuỗi các dấu thời gian mili giây: [1328083200000, 981014400000, -628444800000, 318240000000, 949392000000]có giá trị trung bình là 318240000000. Phương trình này thay đổi giá trị trung bình trước đó bằng +/- etacủa giá trị được đề xuất 0.001. Điều đó sẽ không hiệu quả đối với những con số lớn như thế này, và nó có thể quá lớn đối với những con số thực sự nhỏ. Làm thế nào bạn chọn một etacâu trả lời thực sự đã cho bạn câu trả lời đúng mà không cần biết câu trả lời trước?
mckamey

9
Hãy tưởng tượng rằng các con số có đơn vị, ví dụ, milimét. Sau đó, rõ ràng eta (để ước tính giá trị trung bình) phải có cùng đơn vị với các phép đo, và vì vậy một giá trị chung chung như 0,001 đơn giản là không có ý nghĩa gì. Một cách tiếp cận có vẻ tốt hơn là đặt eta từ một ước tính đang chạy về độ lệch tuyệt đối: đối với mỗi giá trị mới sample, hãy cập nhật cumadev += abs(sample-median). Sau đó, thiết lập eta = 1.5*cumadev/(k*k), đâu klà số lượng mẫu được nhìn thấy cho đến nay.
tholy

12

Tôi đã triển khai Thuật toán P-Square để tính toán động các lượng tử và biểu đồ mà không cần lưu trữ các quan sát trong một mô-đun Python gọn gàng mà tôi đã viết có tên là LiveStats . Nó sẽ giải quyết vấn đề của bạn khá hiệu quả. Thư viện hỗ trợ mọi thống kê mà bạn đề cập ngoại trừ chế độ. Tôi vẫn chưa tìm ra một giải pháp thỏa đáng để ước tính chế độ.


FYI: thuật toán p-square nằm trong C ++ boost : <boost/accumulators/statistics/weighted_p_square_cumul_dist.hpp>.
Neil G

7

Ryan, tôi e rằng bạn không làm đúng và sai ... Điều này xuất hiện vài tuần trước ở đây . Và một trong những điểm mạnh của phiên bản trực tuyến (thực sự được đặt theo tên của phương pháp Welford) là nó đặc biệt chính xác và ổn định, xem thảo luận tại đây . Một trong những điểm mạnh là bạn không cần phải lưu trữ tổng tổng hoặc tổng bình phương ...

Tôi không thể nghĩ ra bất kỳ cách tiếp cận trực tuyến nào đối với chế độ và trung vị, dường như yêu cầu xem xét toàn bộ danh sách cùng một lúc. Nhưng rất có thể là một cách tiếp cận tương tự hơn là một cách tiếp cận cho phương sai và giá trị trung bình cũng sẽ hoạt động đối với độ lệch và độ lệch ...


lại: skewness and kurtosisCó. Xem bài viết này: johndcook.com/blog/skewness_kurtosis
Jesse Chisholm

3

Bài báo Wikipedia được trích dẫn trong câu hỏi chứa các công thức tính độ xiên và kurtosis trực tuyến.

Đối với chế độ - tôi tin rằng - không có cách nào thực hiện điều này trực tuyến. Tại sao? Giả sử rằng tất cả các giá trị đầu vào của bạn khác với giá trị cuối cùng trùng lặp với giá trị trước đó. Trong trường hợp này, bạn phải nhớ tất cả các giá trị đã thấy trong đầu vào để phát hiện rằng giá trị cuối cùng trùng lặp với một giá trị đã thấy và làm cho nó trở thành giá trị thường xuyên nhất.

Đối với giá trị trung bình thì gần như giống nhau - cho đến đầu vào cuối cùng, bạn không biết giá trị nào sẽ trở thành giá trị trung bình nếu tất cả các giá trị đầu vào khác nhau vì nó có thể trước hoặc sau giá trị trung bình hiện tại. Nếu bạn biết độ dài của dữ liệu đầu vào, bạn có thể tìm thấy giá trị trung bình mà không cần lưu trữ tất cả các giá trị trong bộ nhớ, nhưng bạn vẫn sẽ phải lưu trữ nhiều giá trị trong số đó (tôi đoán là khoảng một nửa) bởi vì trình tự nhập sai có thể làm thay đổi giá trị trung bình trong nửa sau có thể làm cho bất kỳ giá trị nào từ nửa đầu thành trung bình.

(Lưu ý rằng tôi chỉ đề cập đến tính toán chính xác.)


2

Nếu bạn có hàng tỷ điểm dữ liệu, thì không có khả năng bạn cần câu trả lời chính xác, trái ngược với câu trả lời gần đúng. Nói chung, nếu bạn có hàng tỷ điểm dữ liệu, quá trình cơ bản tạo ra chúng có thể sẽ tuân theo một số loại thuộc tính thống kê / tính ổn định / trộn lẫn. Ngoài ra, bạn có thể mong đợi các phân phối liên tục một cách hợp lý hay không.

Trong những trường hợp này, tồn tại các thuật toán cho trực tuyến, bộ nhớ thấp, ước tính lượng tử (trung vị là trường hợp đặc biệt của 0,5 lượng tử), cũng như các chế độ, nếu bạn không cần câu trả lời chính xác. Đây là một lĩnh vực thống kê đang hoạt động.

ví dụ ước tính lượng tử: http://www.computer.org/portal/web/csdl/doi/10.1109/WSC.2006.323014

ví dụ ước tính chế độ: Bickel DR. Các công cụ ước tính mạnh mẽ về chế độ và độ lệch của dữ liệu liên tục. Thống kê tính toán và phân tích dữ liệu. 2002; 39: 153–163. doi: 10.1016 / S0167-9473 (01) 00057-3.

Đây là những trường hoạt động của thống kê tính toán. Bạn đang tham gia vào các lĩnh vực mà không có bất kỳ thuật toán chính xác tốt nhất nào, mà là sự đa dạng của chúng (thực tế là các công cụ ước tính thống kê), có các thuộc tính, giả định và hiệu suất khác nhau. Đó là toán học thực nghiệm. Có lẽ có hàng trăm đến hàng nghìn bài báo về chủ đề này.

Câu hỏi cuối cùng là liệu bạn có thực sự cần độ lệch và kurtosis của chính chúng, hay nhiều khả năng là một số tham số khác có thể đáng tin cậy hơn để mô tả phân phối xác suất (giả sử bạn có phân phối xác suất!). Bạn đang mong đợi một Gaussian?

Bạn có cách nào để làm sạch / xử lý trước dữ liệu để biến nó chủ yếu là tiếng Gaussianish không? (ví dụ, số tiền giao dịch tài chính thường hơi Gaussian sau khi lấy logarit). Bạn có mong đợi độ lệch chuẩn hữu hạn không? Bạn có mong đợi cái đuôi béo? Số lượng bạn quan tâm là theo đuôi hay số lượng lớn?


2

Mọi người đều nói rằng bạn không thể thực hiện chế độ theo cách trực tuyến nhưng điều đó đơn giản là không đúng. Đây là một bài báo mô tả một thuật toán để giải quyết vấn đề này được phát minh vào năm 1982 bởi Michael E. Fischer và Steven L. Salzberg của Đại học Yale. Từ bài báo:

Thuật toán tìm phần lớn sử dụng một trong các thanh ghi của nó để lưu trữ tạm thời một mục từ luồng; mục này là ứng cử viên hiện tại cho phần tử đa số. Thanh ghi thứ hai là một bộ đếm được khởi tạo bằng 0. Đối với mỗi phần tử của luồng, chúng tôi yêu cầu thuật toán thực hiện quy trình sau. Nếu bộ đếm đọc 0, hãy cài đặt phần tử luồng hiện tại làm ứng cử viên đa số mới (thay thế bất kỳ phần tử nào khác có thể đã có trong thanh ghi). Sau đó, nếu phần tử hiện tại khớp với ứng cử viên đa số, hãy tăng bộ đếm; nếu không, giảm bộ đếm. Tại thời điểm này trong chu kỳ, nếu phần của luồng được xem cho đến nay có phần tử đa số, phần tử đó nằm trong sổ đăng ký ứng viên và bộ đếm giữ giá trị lớn hơn 0. Nếu không có yếu tố đa số thì sao? Không thực hiện lần thứ hai chuyển qua dữ liệu — điều không thể thực hiện được trong môi trường luồng — thuật toán không thể luôn đưa ra câu trả lời rõ ràng trong trường hợp này. Nó chỉ hứa hẹn xác định chính xác phần tử đa số nếu có.

Nó cũng có thể được mở rộng để tìm N trên cùng với nhiều bộ nhớ hơn nhưng điều này sẽ giải quyết nó cho chế độ.


4
Đó là một thuật toán thú vị, nhưng trừ khi tôi thiếu thứ gì đó, trong khi tất cả các giá trị đa số sẽ là chế độ, không phải tất cả các chế độ sẽ là giá trị đa số.
jkebinger

Liên kết đã chết, vì vậy tôi rất vui vì mô tả được bao gồm. NHƯNG, như được mô tả, bộ đếm chỉ tăng lên nếu lần xuất hiện thứ 2 của ứng cử viên đa số liền kề với lần xuất hiện đầu tiên. IMPLIES đã sắp xếp dữ liệu nào. Điều này KHÔNG được đảm bảo trong trường hợp dữ liệu trực tuyến (phát trực tuyến). Với dữ liệu được sắp xếp ngẫu nhiên, điều này khó có thể tìm thấy bất kỳ chế độ nào.
Jesse Chisholm

1

Cuối cùng, nếu bạn không có kiến ​​thức tham số tiên nghiệm về phân phối, tôi nghĩ bạn phải lưu trữ tất cả các giá trị.

Điều đó nói rằng trừ khi bạn đang đối mặt với một số loại tình huống bệnh lý, thì người khắc phục hậu quả (Rousseuw và Bassett 1990) có thể đủ tốt cho mục đích của bạn.

Rất đơn giản, nó liên quan đến việc tính giá trị trung bình của các lô trung bình.


0

trung bình và chế độ không thể được tính toán trực tuyến chỉ sử dụng không gian cố định có sẵn. Tuy nhiên, vì giá trị trung bình và chế độ dù sao cũng mang tính "mô tả" hơn là "định lượng", bạn có thể ước tính chúng, ví dụ bằng cách lấy mẫu tập dữ liệu.

Nếu dữ liệu được phân phối bình thường trong thời gian dài, thì bạn chỉ có thể sử dụng giá trị trung bình của mình để ước tính giá trị trung bình.

Bạn cũng có thể ước tính giá trị trung bình bằng cách sử dụng kỹ thuật sau: thiết lập ước tính trung bình M [i] cho mỗi 1.000.000 mục nhập trong luồng dữ liệu sao cho M [0] là giá trị trung bình của một triệu mục nhập đầu tiên, M [1] trung vị của một triệu mục thứ hai, v.v. Sau đó, sử dụng trung vị của M [0] ... M [k] làm ước lượng trung vị. Tất nhiên, điều này giúp tiết kiệm dung lượng và bạn có thể kiểm soát dung lượng bạn muốn sử dụng bằng cách "điều chỉnh" tham số 1.000.000. Điều này cũng có thể được tổng quát hóa một cách đệ quy.


0

Được rồi bạn hãy thử những điều này:

đối với c ++:

double skew(double* v, unsigned long n){
    double sigma = pow(svar(v, n), 0.5);
    double mu = avg(v, n);

    double* t;
    t = new double[n];

    for(unsigned long i = 0; i < n; ++i){
        t[i] = pow((v[i] - mu)/sigma, 3);
    }

    double ret = avg(t, n);

    delete [] t;
    return ret;
}

double kurt(double* v, double n){
    double sigma = pow(svar(v, n), 0.5);
    double mu = avg(v, n);

    double* t;
    t = new double[n];

    for(unsigned long i = 0; i < n; ++i){
        t[i] = pow( ((v[i] - mu[i]) / sigma) , 4) - 3;
    }

    double ret = avg(t, n);

    delete [] t;
    return ret;
}

nơi bạn nói rằng bạn đã có thể tính toán phương sai mẫu (svar) và trung bình (trung bình), bạn trỏ chúng vào các hàm của mình để thực hiện điều đó.

Ngoài ra, hãy xem điều gần đúng của Pearson. trên một tập dữ liệu lớn như vậy, nó sẽ khá giống nhau. 3 (trung bình - trung vị) / độ lệch chuẩn mà bạn có trung vị là tối đa - tối thiểu / 2

đối với chế độ phao không có ý nghĩa. người ta thường dán chúng vào các thùng có kích thước đáng kể (như 1/100 * (max - min)).



-1

Tôi sẽ có xu hướng sử dụng xô, có thể thích ứng. Kích thước thùng phải là độ chính xác bạn cần. Sau đó, khi mỗi điểm dữ liệu đến, bạn thêm một điểm vào số lượng của nhóm có liên quan. Các giá trị này sẽ cung cấp cho bạn các giá trị gần đúng đơn giản đối với giá trị trung bình và kurtosis, bằng cách đếm từng nhóm như giá trị của nó có trọng số bằng số của nó.

Một vấn đề có thể là mất độ phân giải trong dấu phẩy động sau hàng tỷ thao tác, tức là thêm một thao tác không làm thay đổi giá trị nữa! Để làm tròn điều này, nếu kích thước nhóm tối đa vượt quá một số giới hạn, bạn có thể loại bỏ một số lượng lớn tất cả các số lượng.


-1
for j in range (1,M):
    y=np.zeros(M) # build the vector y
    y[0]=y0

    #generate the white noise
    eps=npr.randn(M-1)*np.sqrt(var)

    #increment the y vector
    for k in range(1,T):
        y[k]=corr*y[k-1]+eps[k-1]

    yy[j]=y

list.append(y)

Có thể sử dụng một số giải thích để gắn điều này với câu hỏi ban đầu tốt hơn.
Erica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.