R:対数スケールでの箱ひげ図対対数変換*次に*箱ひげ図の作成:同じ結果が得られない


8

boxplot()R の関数にlog =は、軸を対数スケールにするかどうかを指定する引数があります。

私にとって、このオプションを選択した場合(log = "y"引数として指定)、箱ひげ図の形状は、最初にログで手動でデータを変換し、次にそのログ変換されたデータをプロットした場合と同じように見えるはずです(ラベルを認識します)軸上では異なりますが、プロットの形状を参照しています)。ただし、これは当てはまりません。

簡単な例を以下に示します。

set.seed(923489)
data <- rlnorm(300, meanlog = 0, sdlog = 1)
boxplot(data) # Highly skewed right raw data
boxplot(data, log="y") # Data on log scale; less right-skewed
boxplot(log10(data)) # Log base 10-transform data; shape not the same as when specify log="y"
boxplot(log(data)) # Natural log and base 10 give same shape plot (just different axis labels)

これはなぜですか?


2
1つは元の単位で箱ひげ図を計算してから対数スケールで描画し、もう1つは対数スケールで箱ひげ図を計算して描画します。二つのことは、あなたが純粋に個々の分位数に基づいていない(フェンス、ひいてはウィスカーは、変位値の線形関数に基づいています)何かを得るいつでも異なっている
Glen_b -Reinstateモニカ

回答:


6

明らかに、中央値の「ベルト」のボックスは同じように見えます。違いはひげです。デフォルトの設定で?boxplotは、

「範囲」が正の場合、ひげは「範囲」にボックスからの四分位範囲を掛けたものにすぎない最も極端なデータポイントまで伸びます。

range正、つまりデフォルトでは1.5です。それで、ひげは箱の1.5倍に伸びますか?を呼び出すとboxplot(data, log="y")、スケーリングされていないデータでは1.5になります。したがって、下のひげが長くなります。あなたboxplot(log(data))がひげを呼ぶならば、ひげは必然的に対称です。


ありがとうございました。それでは、データを表現するための「最も正しい」方法は何なのか、はっきりしません。この投稿(これはRではなくStata向けですが、同じ問題について説明しています)は、最初にデータをログ変換し、次に元の単位で箱ひげ図を手動で再ラベル付けすることをお勧めします:stata .com / support / faqs / graphics /…このアプローチについての考えは?
メグ

2
@Megそれは、ひげ(範囲を表す)が対数空間で同じ長さであるか、スケーリングされていないかのどちらであるかによって異なると思います。データをログ変換する場合、前者の方がおそらく意味があります。
Hao Ye

4

から?boxplot、以下を読むことができます。

範囲

これにより、プロットのひげがボックスからどれだけ伸びるかが決まります。範囲が正の場合、ひげは、ボックスの四分位範囲の範囲を超えない最大のデータポイントまで拡張されます。値がゼロの場合、ひげはデータの極限まで拡張されます。

箱ひげ図をプロットするときのデフォルトは、ひげが第range=1.53四分位の上で第1四分位の下で四分位範囲の1.5倍に広がることを意味します。他のすべてのポイントは外れ値としてラベル付けされます。

表示されている違いは、データの対数変換では3番目または1番目の四分位数からのポイントの正規化された距離が維持されないという事実に基づいています。データで予想されるように、ログ変換後は、非常に高い値を持つ外れ値が少なくなり、低い値を持つ外れ値が多くなります。


上記と基本的に同等のコメントをありがとうございます。私は「正解」の回答として最も高い投票で選択しましたが、あなたの意見にも感謝します。
メグは2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.