QQプロットと


7

qqplotは線形ですが、勾配が45度の線と同じでない場合、これは何を示唆していますか?QQplot

私はラプラス分布のサンプルデータへの適合を調べようとしているので、ランダムにラプラス分布(サンプルから推定されたパラメーターを使用)の観測を生成し、それらをサンプルに対してプロットしました。

qqplot(rand, sample)
abline(0, 1, col = 'red')

プロットの見栄えの良いカットアウトを投稿してください。完全に表示されるタイトルを付けるか、まったく付けません。前もって感謝します。
ジム、

@ジム私はタイトルを取り除きました:)
SugarMarsh '27

さらに、いくつかの追加情報を追加codeします。たとえば、どのR を使用しましたか?目標は何ですか?特定の配布を拒否しますか?密度プロットとヒストグラムも確認してください。
ジム、

1
@byounessはうまく答えました。短い答え:分布は乗法的に異なるようです。
Nick Cox

2
qqplotが線形であるが、勾配が45度の線と同じでない場合、これは何を示唆しているのでしょうか?」に2つの答えがあります。データ... " データを投稿してください(コードモード)。
ジム、

回答:


5

あなたの質問にはデータが不足しているため、以下の私の回答では(ラプラス分布とサンプルデータではなく)ガウス分布とサンプルを使用しています。

最初の2つの瞬間に関する限り、qq-plotに表示される内容の解釈は次のとおりです。

  • 分布が同一である場合、次の行が期待されます x=y

    x <- rnorm(1000)
    qqnorm(x)
    abline(0, 1, col = 'red')

ここに画像の説明を入力してください

  • 平均が異なる場合は、切片を期待します a0、つまり、上または下になります x=y ライン:

    x <- rnorm(1000)
    qqnorm(x + 1)
    abline(0, 1, col = 'red')

ここに画像の説明を入力してください

  • 標準偏差が異なる場合、勾配が予想されます b1

    x <- rnorm(1000)
    qqnorm(x * 1.5)
    abline(0, 1, col = 'red')

ここに画像の説明を入力してください

これを直感的に理解するには、同じプロットにCDFをプロットするだけです。たとえば、最後のものをとります:

lines(seq(-7, 7, by = 0.01), pnorm(seq(-7, 7, by = 0.01)), col = 'red')

たとえば、y軸に3つの点があるとします。 CDF(q)=0.20.50.8 の価値を見て q (分位)は各CDF値を示します。

あなたはそれを見ることができます:

Fred1(0.2)>FX1(0.2) (quantile around -1)Fred1(0.5)=FX1(0.5) (quantile = 0)Fred1(0.8)<FX1(0.8) (quantile around 1)

これは、qq-plotによって示されるものです。

ここに画像の説明を入力してください


4

QQプロットの線形性は、サンプルが正規分布に従うことを示唆するだけです(より具体的には、その分位関数はプロビット関数です)。勾配は標準偏差によって決定されます(sd = 1の場合、一般的なx=y ライン)。

S字型のプロットは、180度回転に対して対称に見えるもので、対称的な分布を示しています。

したがって、形状の直感的な推論は次のとおりです。直線を得るには、平均の周りの分位点の間隔の同様のスケーリングが必要です。ということはxth 分位数とは、平均からの距離の割合です。 yth分位では、比率は保存されます。これは、正規分布の場合にのみ保存されます。傾きは、この比率の絶対的な大きさをより示しているため、sdに依存します。分布に沿ったさまざまな場所でこの比率を調べることにより、さまざまな形状を同様に推論できます。

ここにいくつかの視覚化があります。

注:規範と同様に、Y軸にサンプルをプロットしています。プロットした方法でサンプルをX軸に配置すると想定しています。

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

Rコード:

# Creating different distributions with mean 0
library(rmutil)
set.seed(12345)
normald<-rnorm(10000,sd=2)
normald<-(normald-mean(normald))/sd(normald)
sharperpeak<-rlaplace(10000) #using Laplace distribution
sharperpeak<-(sharperpeak-mean(sharperpeak))/sd(sharperpeak)
heavytail<-rt(10000,5) #using t-distribution
heavytail<-(heavytail-mean(heavytail))/sd(heavytail)
positiveskew<-rlnorm(10000) #using lognormal distribution
positiveskew<-(positiveskew-mean(positiveskew))/sd(positiveskew)
negativeskew<-positiveskew*(-1) #shortcut
negativeskew<-(negativeskew-mean(negativeskew))/sd(negativeskew)

library(ggplot2)
library(gridExtra)

#normal plot
p1<-ggplot(data.frame(dt=normald))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Normal Distribution')+geom_vline(xintercept=quantile(normald,c(0.25,0.75),color='red',alpha=0.3))
p2<-ggplot(data.frame(dt=normald))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#sharppeak plot
p1<-ggplot(data.frame(dt=sharperpeak))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Sharper-peaks')+geom_vline(xintercept=quantile(sharperpeak,c(0.25,0.75),color='red',alpha=0.3))
p2<-ggplot(data.frame(dt=sharperpeak))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#heaviertails plot
p1<-ggplot(data.frame(dt=heavytail))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Heavy Tails')+geom_vline(xintercept=quantile(heavytail,c(0.25,0.75),color='red',alpha=0.3))
p2<-ggplot(data.frame(dt=heavytail))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#positiveskew plot
p1<-ggplot(data.frame(dt=positiveskew))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Positively skewed Distribution')+geom_vline(xintercept=quantile(positiveskew,c(0.25,0.75),color='red',alpha=0.3))+xlim(-1.5,5)
p2<-ggplot(data.frame(dt=positiveskew))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

#negative skew plot
p1<-ggplot(data.frame(dt=negativeskew))+geom_density(aes(x=dt),fill='green',alpha=0.6)+xlab('Negatively skewed Distribution')+geom_vline(xintercept=quantile(negativeskew,c(0.25,0.75),color='red',alpha=0.3))+xlim(-5,1.5)
p2<-ggplot(data.frame(dt=negativeskew))+geom_qq(aes(sample=dt))+geom_abline(slope=1,intercept = 0)
grid.arrange(p1,p2,nrow=1)

# Normal distributions with different sds
normal1<-rnorm(3000,sd=2)
normal2<-rnorm(3000,sd=4)
normal3<-rnorm(3000,sd=0.5)
normal4<-rnorm(3000,sd=0.25)
final<-c(normal1,normal2,normal3,normal4)
ggplot(data.frame(dt=final,sds=factor(rep(c('2','4','0.5','0.25'),each=3000))),aes(sample=dt,color=sds))+geom_qq()+geom_abline(slope=1,intercept=0)

では、サンプルの標準偏差が推定したものよりも小さいということですか?
SugarMarsh、

投稿したプロットのx軸に理論的な変位値がある場合、そのように表示されます。しかし、QQプロットは、正規性を推定するための視覚的/近似的な方法にすぎません。おそらく、より良いアイデアを得るために、shapiro-wilkテストを実行できます。
stochastic13
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.