分布から平均、中央値、モード、標準偏差を計算する方法


8

分布から平均、分散、中央値、標準偏差、およびモードを計算する方法は?正規分布を形成する数値をランダムに生成する場合、m=24.2標準偏差として平均を次のように指定しましたsd=2.2

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

その後、私は以下を行うことができます:

平均:

> mean(dist)
[1] 24.17485

分散:

> var(dist)
[1] 4.863573

中央値:

> median(dist)
[1] 24.12578

標準偏差:

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

モードaka Modus(ここから取得):

> names(sort(-table(dist)))[1]
[1] "17.5788181686221"
  1. これは魔法の全体なのか、それとも私が気づかなかった他の何かがあるのでしょうか?
  2. 垂直線が(平均、中央値...)を表す私のベル形の正規分布をどうにかして視覚化できますか?
  3. これらの属性は分布について何を言っていますか?

PS:コードはRにあります


質問1の意味が明確ではありません。質問3は、それぞれについてたくさん書くことができるため、現状では広すぎるようです。ウィキペディアのページで平均、中央値、標準偏差、モードを確認してから、もっと具体的な質問をしていただけませんか。
Glen_b-2015

また、タイトルは「分布」について語っていますが、本文はサンプルを参照しているようです。タイトルはサンプルを指すべきですか?
Glen_b-2015

@Glen_b by 1st私が投稿したメソッドが分布のパラメータ(平均、分散...)の計算に問題がない場合、何か他の方法を使用する必要があるということですか?3つ目は、広すぎることに気づかなかったため、次のような答えを期待していました。中央値が平均よりも大きい場合、データは...です。
和漢短歌

申し訳ありませんが、そこでコメントをフォローすることはできません。
Glen_b-2015

モードを推定する前に、連続変数をビンに入れる必要はありません。議論については、stats.stackexchange.com / questions / 176112 /…を参照してください。(ビンの幅と原点の任意の選択に依存しているため、ビニングを回避する必要があります。)
Nick Cox

回答:


10

最初にモードに関する一般的なコメント:

(少なくとも概念的には)継続的に分散されたデータのモードを取得するためにそのアプローチを使用しないでください。値が繰り返される可能性は低く(本当に巨大なサンプルがない限り、それは小さな奇跡であり、それでもさまざまな数値の問題により、多少予期しない方法で動作する可能性があります)、通常は最小値を取得します仕方。これは、離散データまたはカテゴリカルデータでグローバルモードの1つを見つける1つの方法ですが、おそらくそれでもその方法ではそうしません。離散データまたはカテゴリカルデータのモードを取得する他のいくつかのアプローチを次に示します。

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

カウントや位置でnames()はなく値だけが必要な場合は、それらから取得します

基本的な方法で連続データのモード(複数のローカルモードが存在する可能性があります)を特定するには、データを(ヒストグラムのように)ビン化するか、(densityたとえば使用して)平滑化し、1つ以上のモードを見つけようとしますそのように。

ヒストグラムのビンが少ないと、モードの推定によるノイズの影響が少なくなりますが、場所はビンの幅よりも適切に固定されません(つまり、間隔のみが取得されます)。ビンを増やすと、ビン内の精度が向上しますが、ノイズによって、そのような多くのビンを飛び越えてしまう場合があります。bin-originまたはbin幅の小さな変更は、モードで比較的大きな変更を生成する可能性があります。(統計全体で同じバイアス分散のトレードオフがあります。)

summaryいくつかの基本的な統計が表示されることに注意してください。

【あなたが使うのsd(x)ではなくsqrt(var(x))、1つの点でより明確です]

-

q.2に関してはい。ヒストグラムやボックスプロットなどのディスプレイにデータの平均値と中央値を表示することもできます。必要な場合に一般化できるいくつかの例とコードについては、ここを参照してください。


ありがとうございます。バインドとスムージングの違いについて説明していただけますか?
和漢短歌

@和漢拘束力とは?
Glen_b-2015

1
非常に便利です。驚くべきことに、Rプロジェクトはこれをベース関数にしませんでした。
Hack-R

7

いくつかの追加の、あまり知られていない記述統計。

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

これらの無料で入手できるRマニュアルの1つで、他の多くのドキュメントを見つけることができると思います。


それらを使用したときにいくつかの状況を投稿できますか(fivenum、IQR、変位値...)、それらは有用でしたか?
和漢短歌

0

@Glen_bが説明したように、連続分布のモードは、整数のベクトルの場合ほど簡単ではありません。

このRコードはhist()、ベースRの信じられないほど有用な関数を使用して、連続分布のモードを取得します。@ Glen_bが説明するように、これは観測をビンに入れることを含みます-観測がビン間隔内にある場合、観測がそのビンは、連続分布でまったく同じ値を2回観測する可能性が非常に低いという問題を回避します。

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

ここで、最大カウントを持つビン間隔の中間点をモードとして扱います

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

# [1] 23.75

出来上がり!モード。

PSあなたはまた、間隔の開始をモードとして扱うことができますh$breaks[which.max(h$counts)]。説明したように、連続分布のモードは単純ではなく、決定を行う必要がmean()あります。median()


つまり、これは、モードを見つけるために、最も頻繁に発生するビンを見つけるということです。つながりがあるときはどうしますか?どのように体系的にビンを選択しますか?
Nick Cox

これらは、@ Nick Coxの非常に良い質問ですか?答えを知りたいです。ネクタイがあるときのルールが必要になると思います。
llewmills
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.