作者mili ()
看板Statistics
标题Re: 常态分配的部分平均值
时间Tue Jul 7 09:10:19 2009
感谢板友来信我今早花了一点时间读入门跟绘图
我想做的其实就是selection如何影响mean
以下是我的解决方案
qnorm(0.1, mean=40,sd=10)->up
qnorm(0.05, mean=40,sd=10)->low
求0.05跟0.01的临界值,在平均值为40标准差为10的情况下
x=seq(0,80, length=10000)
plot(x,y,type="l",lwd=2,col="black")
polygon(c(0,x1,low),c(0,y1,0),col="black")
polygon(c(low,x2,up),c(0,y2,0),col="gray")
绘制常态分布,将0.05到0涂成黑色,0.1到0.05涂成灰色
abline(v=40)
画上平均线
for (i in 1:length(x)){if (x[i]<low)x[i]<-NA}
mean(x, na.rm=TRUE)->m1
计算不包含0.05以下的平均值(应该可用微积分改良)
x=seq(0,80, length=10000)
for (i in 1:length(x)){if (x[i]<up)x[i]<-NA}
mean(x, na.rm=TRUE)->m2
计算不包含0.1以下的平均值
abline(v=m1)
abline(v=m2)
画上两个新的平均值
text(38,0.02,"M1")
text(m1-2,0.02,"M2")
text(m2+2,0.02,"M3")
text(up+2,0.01,"U3")
text(low-3,0.01,"U2")
※ 引述《andrew43 (Myrmarachne)》之铭言:
: 以下是以 R 来模拟。
: 我也还处於练习 R 的新手,写得笨或丑请多多指点。
: 取得左侧 5% 的关键值
: th <- qnorm(0.05,mean=40,sd=15)
: 取得模拟之常态分布
: sample <- rnorm(100000,mean=40,sd=15)
: 以回圈及判断式将小於关键值者设定为 NA 值
: for (i in 1:length(sample)) {
: if (sample[i] < th) sample[i] <- NA
: }
: 取得新的平均值
: mean(sample, na.rm=TRUE)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 24.128.184.148
※ 编辑: mili 来自: 24.128.184.148 (07/07 09:15)