Cách tính giá trị trung bình, trung vị, chế độ, std dev từ phân phối


8

Làm thế nào để tính trung bình, phương sai, trung vị, độ lệch chuẩn và phương thức phân phối? Nếu tôi tạo ngẫu nhiên các số tạo thành phân phối bình thường, tôi đã chỉ định giá trị trung bình là m=24.2độ lệch chuẩn là sd=2.2:

> dist = rnorm(n=1000, m=24.2, sd=2.2)

Sau đó tôi có thể làm như sau:

Nghĩa là:

> mean(dist)
[1] 24.17485

Phương sai:

> var(dist)
[1] 4.863573

Trung bình:

> median(dist)
[1] 24.12578

Độ lệch chuẩn:

> sqrt(var(dist))
[1] 2.205351

Chế độ aka Modus (lấy từ đây ):

> names(sort(-table(dist)))[1]
[1] "17.5788181686221"
  1. Đây có phải là toàn bộ ma thuật, hay có điều gì khác mà tôi không nhận ra?
  2. Tôi có thể bằng cách nào đó hình dung phân phối bình thường hình chuông của mình với các đường thẳng đứng đại diện (trung bình, trung bình ...)?
  3. Những thuộc tính đó nói gì về phân phối?

PS: mã nằm trong R


Không rõ ý của bạn là gì bởi câu hỏi của bạn 1. Câu hỏi 3 dường như quá rộng vì nó có thể viết rất nhiều về mỗi câu hỏi. Bạn có thể xem lại các trang wikipedia về giá trị trung bình, trung bình, độ lệch chuẩn và chế độ, sau đó hỏi một cái gì đó cụ thể hơn không?
Glen_b -Reinstate Monica

Ngoài ra, tiêu đề của bạn nói về một "phân phối" nhưng văn bản cơ thể của bạn dường như đang đề cập đến một mẫu . Tiêu đề của bạn nên đề cập đến một mẫu?
Glen_b -Reinstate Monica

@Glen_b bởi 1st Tôi có nghĩa là nếu các phương pháp mà tôi đã đăng có thể tính toán các tham số (trung bình, phương sai ...) để phân phối hoặc một cái gì đó khác hoặc bằng cách nào đó nên sử dụng? Lần thứ 3 tôi không nhận ra rằng nó quá rộng, tôi đã mong đợi câu trả lời như: nếu trung bình lớn hơn trung bình thì dữ liệu của bạn .... Về việc kiểm tra lại có thể không ổn, thực sự tôi đã làm việc với phân phối bình thường hay tôi sai?
Wakan Tanka

Tôi xin lỗi nhưng tôi không thể theo dõi bình luận của bạn ở đó.
Glen_b -Reinstate Monica

Bạn không cần phải biến một biến liên tục trước khi bạn có thể ước tính chế độ của nó. Xem stats.stackexchange.com/questions/176112/ Google để thảo luận. (Bạn nên tránh việc đóng thùng vì bị phụ thuộc vào các lựa chọn tùy ý về chiều rộng và nguồn gốc của thùng.)
Nick Cox

Câu trả lời:


10

Đầu tiên một nhận xét chung về chế độ:

Bạn không nên sử dụng phương pháp đó để có được chế độ (ít nhất là thông thường) dữ liệu được phân phối liên tục; bạn không thể có bất kỳ giá trị lặp lại nào (trừ khi bạn có các mẫu thực sự lớn, đó sẽ là một phép lạ nhỏ, và thậm chí sau đó các vấn đề số khác nhau có thể khiến nó hoạt động theo những cách hơi bất ngờ), và nói chung bạn sẽ chỉ nhận được giá trị tối thiểu đó đường. Nó sẽ là một cách để tìm một trong các chế độ toàn cầu trong dữ liệu rời rạc hoặc phân loại, nhưng tôi có lẽ sẽ không làm theo cách đó ngay cả sau đó. Dưới đây là một số cách tiếp cận khác để có chế độ cho dữ liệu rời rạc hoặc phân loại:

x = rpois(30,12.3)

tail(sort(table(x)),1)   #1: category and count; if multimodal this only gives one

w=table(x); w[max(w)==w] #2: category and count; this can find more than one mode

which.max(table(x))      #3: category and *position in table*; only finds one mode

Nếu bạn chỉ muốn giá trị chứ không phải số lượng hoặc vị trí, names()sẽ lấy nó từ những

Để xác định các chế độ (có thể có nhiều hơn một chế độ cục bộ) cho dữ liệu liên tục theo kiểu cơ bản, bạn có thể bin dữ liệu (như với biểu đồ) hoặc bạn có thể làm mịn nó ( densityví dụ sử dụng ) và cố gắng tìm một hoặc nhiều chế độ theo cách đó

Ít thùng biểu đồ sẽ làm cho ước tính của bạn về chế độ ít bị nhiễu hơn, nhưng vị trí sẽ không được ghim xuống tốt hơn chiều rộng thùng (tức là bạn chỉ nhận được một khoảng). Nhiều thùng hơn có thể cho phép độ chính xác cao hơn trong thùng, nhưng tiếng ồn có thể khiến nó nhảy xung quanh nhiều thùng như vậy; một thay đổi nhỏ về nguồn gốc bin hoặc chiều rộng thùng có thể tạo ra những thay đổi tương đối lớn trong chế độ. (Có sự đánh đổi sai lệch thiên vị giống nhau trên tất cả các số liệu thống kê.)

Lưu ý rằng summarysẽ cung cấp cho bạn một số thống kê cơ bản.

[Bạn nên sử dụng sd(x)hơn là sqrt(var(x)); rõ ràng hơn cho một điều]

-

Đối với q.2 có; bạn chắc chắn có thể hiển thị trung bình và trung bình của dữ liệu trên màn hình như biểu đồ hoặc biểu đồ hình hộp. Xem ở đây để biết một số ví dụ và mã mà bạn sẽ có thể khái quát cho bất kỳ trường hợp nào bạn cần.


Cảm ơn bạn, bạn có thể vui lòng giải thích sự khác biệt giữa ràng buộc và làm mịn?
Wakan Tanka

@Wakan Có gì ràng buộc?
Glen_b -Reinstate Monica

1
Vô cùng hữu ích. Rất ngạc nhiên khi Dự án R không biến điều này thành một chức năng cơ bản.
Hack-R

7

Một số thống kê mô tả bổ sung và không nổi tiếng.

x<-rnorm(10)

sd(x) #Standard deviation

fivenum(x) #Tukey's five number summary, usefull for boxplots

IQR(x) #Interquartile range

quantile(x) #Compute sample quantiles

range(x) # Get minimum and maximum

Tôi chắc chắn bạn có thể tìm thấy nhiều người khác trong một trong những Rhướng dẫn sử dụng miễn phí .


Bạn có thể đăng một số tình huống khi bạn đã sử dụng chúng (fivenum, IQR, quantile ...) và chúng có hữu ích không?
Wakan Tanka

0

Như @Glen_b đã mô tả chế độ phân phối liên tục không đơn giản như đối với một vectơ số nguyên.

Mã R này sẽ có chế độ phân phối liên tục, sử dụng hàm cực kỳ hữu ích hist()từ cơ sở R. Như @Glen_b đã mô tả điều này liên quan đến việc đưa các quan sát vào các thùng - các danh mục riêng biệt trong đó nếu quan sát nằm trong khoảng bin thì nó được tính là một ví dụ của cái thùng đó, xung quanh vấn đề của nó rất khó xảy ra trong một bản phân phối liên tục để quan sát chính xác cùng một giá trị hai lần.

set.seed(123)
dist <- rnorm(n=1000, m=24.2, sd=2.2)
h <- hist(dist, # vector
          plot = F, # stops hist() from automatically plotting histogram
          breaks = 40) # number of bins

Bây giờ chúng ta coi trung điểm của khoảng thời gian bin có số lượng tối đa trong đó là chế độ

h$mids[which.max(h$counts)] 

# [1] 23.75

Voila! Chế độ.

ps bạn cũng có thể coi bắt đầu của khoảng là chế độ thông qua h$breaks[which.max(h$counts)]. Vì các chế độ được thảo luận cho các bản phân phối liên tục không đơn giản và đòi hỏi phải đưa ra quyết định, do đó tại sao không có chức năng đơn giản nào cho chúng như có mean()median()


Vì vậy, điều này có nghĩa là để tìm chế độ bạn tìm thấy thùng thường xuyên nhất. Bạn làm gì khi có quan hệ? Làm thế nào để bạn chọn thùng một cách có hệ thống?
Nick Cox

Đây là những câu hỏi rất hay @Nick Cox? Rất muốn biết câu trả lời. Tôi đoán bạn sẽ cần một quy tắc khi có quan hệ.
llewmills
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.