2016-07-20 8 views
0

으로 표시합니다. 95 % 신뢰 구간으로 S 자 모양의 분포 (y = 0~1)를 맞추고 y=5% (hc5으로 지정)의 값을 얻으십시오. ZnOLC50.txt이라는 원래의 입력 데이터 파일 :부트 스트랩 된 값의 분포를 R

LC50 Proportion 
0.089 0.071428571 
0.16 0.214285714 
1.155 0.357142857 
1.51 0.5 
3.97 0.642857143 
573.8 0.785714286 
789 0.928571429 


# Load data 

>require(MASS) 

>require(ggplot2) 

>SSDZnOLC50<-read.delim("ZnOLC50.txt", header = TRUE) 

>fitSSDZnOLC50<-fitdistr(SSDZnOLC50$LC50, 'lognormal') 


# Extract hc5 
>(hc5 <- qlnorm(0.05, meanlog = fitSSDZnOLC50$estimate[1], sdlog = fitSSDZnOLC50$estimate[2])) 
[1] 0.01789181 


>myboot <- function(fitSSDZnOLC50, p){ 

# resample from fitted distribution 

>xr <- rlnorm(fitSSDZnOLC50$n, meanlog = fitSSDZnOLC50$estimate[1], sdlog = fitSSDZnOLC50$estimate[2]) 

# fit distribition to new data 

>fitr <- fitdistr(xr, 'lognormal') 
# return HCp 

>hc5r <- qlnorm(p, meanlog = fitr$estimate[1], sdlog = fitr$estimate[2]) 
return(hc5r) 
} 


# Get 95% confidence interval 
>set.seed(1234) 
>hc5_boot <- replicate(1000, myboot(fitSSDZnOLC50, p = 0.05)) 

>quantile(hc5_boot, probs = c(0.025, 0.5, 0.975)) 

    2.5%   50%  97.5% 
0.0007278486 0.0370062459 1.4272168899 

그러면 I은 생성 행렬에 기초 hc5_boothc5 분포 그리려.

enter image description here

에 도시 한 바와 같이 나는 또한

> df <- as.data.frame(hc5_boot) 

> ggplot(df, aes(x=hc5_boot)) + geom_density() + scale_x_continuous(limits=c(0,4)) 

을 시도하고

같이 곡선을 얻을

curve(dnorm(x,mean(hc5_boot),sd(hc5_boot)),xlim=c(-1,10),col="Red",lwd=1) 

곡선을 ​​얻을 : 우선이 시도 enter image description here

그러나 관측에 따르면 일 때 농도 값이 0에 가까워지지 않으므로이 곡선 중 2.5% 분위수가 0.0007278486 인 것처럼 보이지는 않습니다.

그래서 나는 무엇이 잘못되었으며 어떻게해야하는지 궁금합니다.

답변

0

밀도 함수가 아닌 누적 분포를 그래프로 표시하려는 것 같습니다. 이렇게하려면 dnorm이 아닌 PDF 형식의 pnorm 함수를 사용하십시오.

set.seed(1234) 
mySample <- rnorm(100, 1, 5) 
curve(pnorm(x,mean(mySample),sd(mySample)),xlim=c(-10,10),col="Red",lwd=1) 

enter image description here

예를 들면 다음과 같습니다