私はこの仕事を与えられて困惑しました。同僚から、次のグラフのとx l o w e rを推定するように依頼されました。
曲線は実際には累積分布であり、xはある種の測定値です。彼は、累積関数が直線になり始め、直線から逸脱したときのxの対応する値を知りたいと思っています。
微分を使用してポイントの勾配を見つけることができることは理解していますが、直線をいつ呼び出すことができるかを判断する方法がわかりません。いくつかの既存のアプローチ/文学への少しのナッジは非常に高く評価されます。
この種の調査で関連するパッケージや例を知っていたら、Rも知っています。
どうもありがとう。
更新
Floundererのおかげで、作業をさらに拡張し、フレームワークを設定し、あちこちでパラメーターをいじくり回すことができました。学習目的のために、ここに私の現在のコードとグラフィック出力があります。
library(ESPRESSO)
x <- skew.rnorm(800, 150, 5, 3)
x <- sort(x)
meanX <- mean(x)
sdX <- sd(x)
stdX <- (x-meanX)/sdX
y <- pnorm(stdX)
par(mfrow=c(2,2), mai=c(1,1,0.3,0.3))
hist(x, col="#03718750", border="white", main="")
nq <- diff(y)/diff(x)
plot.ts(nq, col="#6dc03480")
log.nq <- log(nq)
low <- lowess(log.nq)
cutoff <- .7
q <- quantile(low$y, cutoff)
plot.ts(log.nq, col="#6dc03480")
abline(h=q, col="#348d9e")
x.lower <- x[min(which(low$y > q))]
x.upper <- x[max(which(low$y > q))]
plot(x,y,pch=16,col="#03718750", axes=F)
axis(side=1)
axis(side=2)
abline(v=c(x.lower, x.upper),col="red")
text(x.lower, 1.0, round(x.lower,0))
text(x.upper, 1.0, round(x.upper,0))
2
2次導関数が0または0に近い場合を判断できますか?
—
アレックス、2013年
公式化の問題は、おそらく「まっすぐな」カットが存在しないことです。強いレンズを手に取り、その領域を調べると、まだ滑らかなS字形であることに気付くでしょう。
—
ttnphns 2013年
@alexこのヒントをありがとう、私は私の袖をまくり上げて、いくつかの考えと試してみます。
—
Penguin_Knight 2013年
(カーネル密度推定、対数スプライン密度推定、またはいくつかのパラメトリックモデルによってさえ)ある密度に当てはまる場合、そのピークでの密度の高さはCDFの最大勾配の推定です。ピークの「幅」は、X値の範囲がどれほど広いかについて、その傾斜について一定であるかのように話すのが理にかなっていることを示しています。
—
Glen_b-2013
@Glen_bのコメントをフォローアップするための要点は、あなたが求めているものが十分な厳密さで定義されていないということです。「ショルダー」のx_lowerとx_upperは、PDFの最大値からどれだけ下に配置する必要がありますか?いくつかの定量的基準が必要です。
—
whuber