14

、 で散布図 (複数グループ GRP) を作成しましIV=timeDV=concentration(0.025,0.05,0.5,0.95,0.975)分位点回帰曲線をプロットに追加したかったのです。

ちなみに、これは私が散布図を作成するために行ったことです。

attach(E)  ## E is the name I gave to my data
## Change Group to factor so that may work with levels in the legend
Group<-as.character(Group)
Group<-as.factor(Group)

## Make the colored scatter-plot
mycolors = c('red','orange','green','cornflowerblue')
plot(Time,Concentration,main="Template",xlab="Time",ylab="Concentration",pch=18,col=mycolors[Group])

## This also works identically
## with(E,plot(Time,Concentration,col=mycolors[Group],main="Template",xlab="Time",ylab="Concentration",pch=18))

## Use identify to identify each point by group number (to check)
## identify(Time,Concentration,col=mycolors[Group],labels=Group)
## Press Esc or press Stop to stop identify function

## Create legend
## Use locator(n=1,type="o") to find the point to align top left of legend box
legend('topright',legend=levels(Group),col=mycolors,pch=18,title='Group')

ここで作成したデータは、より大きなデータの小さなサブセットであるため、長方形の双曲線として近似できるように見える場合があります。しかし、独立変数と従属変数の間の数学的関係をまだ呼び出したくありません。

nlrqパッケージからが答えかもしれないと思いますquantregが、変数間の関係がわからないと関数の使い方がわかりません。

科学記事からこのグラフを見つけましたが、まったく同じ種類のグラフを作成したいと考えています。 ゴール

繰り返しますが、あなたの助けに感謝します!

アップデート

Test.csv サンプル データが再現できないと指摘されました。これが私のデータのサンプルです。

library(evd)
qcbvnonpar(p=c(0.025,0.05,0.5,0.95,0.975),cbind(TAD,DV),epmar=T,plot=F,add=T)

qcbvnonpar::evd も試してみましたが、曲線があまり滑らかに見えません。

4

3 に答える 3

8

スプラインの平滑化と分位点回帰については、quantreg:::rqss をご覧ください。あまり良くないサンプルデータで申し訳ありません:

set.seed(1234)
period <- 100
x <- 1:100
y <- sin(2*pi*x/period) + runif(length(x),-1,1)


require(quantreg)
mod <- rqss(y ~ qss(x))
mod2 <- rqss(y ~ qss(x), tau=0.75)
mod3 <- rqss(y ~ qss(x), tau=0.25)
plot(x, y)
lines(x[-1], mod$coef[1] + mod$coef[-1], col = 'red')
lines(x[-1], mod2$coef[1] + mod2$coef[-1], col = 'green')
lines(x[-1], mod3$coef[1] + mod3$coef[-1], col = 'green')

ここに画像の説明を入力

于 2013-02-22T15:54:08.083 に答える
5

私は過去に頻繁に苦労してきましたrqssが、ほとんどの場合、問題はポイントの順序に関連していました.

さまざまな時点で複数の測定値があるため、異なる長さが得られます。これは私のために働く:

dat <- read.csv("~/Downloads/Test.csv")

library(quantreg)
dat <- plyr::arrange(dat,Time)
fit<-rqss(Concentration~qss(Time,constraint="N"),tau=0.5,data = dat)
with(dat,plot(Time,Concentration))
lines(unique(dat$Time)[-1],fit$coef[1] + fit$coef[-1])

ここに画像の説明を入力

モデルをフィッティングする前にデータ フレームをソートする必要があるようです。

于 2013-02-28T15:45:35.480 に答える
2

ggplot2グラフィックが必要な場合...

この例は @EDi の例に基づいています。分位線の揺れが少なくなるようにxandを増やしました。yこの増加のため、一部の呼び出しでは unique(x)代わりに使用する必要があります。x

変更されたセットアップは次のとおりです。

set.seed(1234)
period <- 100
x <- rep(1:100,each=100)
y <- 1*sin(2*pi*x/period) + runif(length(x),-1,1)


require(quantreg)
mod <- rqss(y ~ qss(x))
mod2 <- rqss(y ~ qss(x), tau=0.75)
mod3 <- rqss(y ~ qss(x), tau=0.25)

2 つのプロットを次に示します。

# @EDi's base graphics example
plot(x, y)
lines(unique(x)[-1], mod$coef[1] + mod$coef[-1], col = 'red')
lines(unique(x)[-1], mod2$coef[1] + mod2$coef[-1], col = 'green')
lines(unique(x)[-1], mod3$coef[1] + mod3$coef[-1], col = 'green')

ここに画像の説明を入力

# @swihart's ggplot2 example:
## get into dataset so that ggplot2 can have some fun:
qrdf <- data.table(x       = unique(x)[-1],
                   median =  mod$coef[1] +  mod$coef[-1],
                   qupp   = mod2$coef[1] + mod2$coef[-1],
                   qlow   = mod3$coef[1] + mod3$coef[-1]
)

line_size = 2
ggplot() +
  geom_point(aes(x=x, y=y),
             color="black", alpha=0.5) +
  ## quantiles:
  geom_line(data=qrdf,aes(x=x, y=median),
            color="red", alpha=0.7, size=line_size) +
  geom_line(data=qrdf,aes(x=x, y=qupp),
            color="blue", alpha=0.7, size=line_size, lty=1) +
  geom_line(data=qrdf,aes(x=x, y=qlow),
            color="blue", alpha=0.7, size=line_size, lty=1) 

ここに画像の説明を入力

于 2015-10-06T16:30:53.720 に答える