3

我在一个名为 ph 的图中有一个概率密度函数,它是在 stackoverflow 用户的帮助下从两个数据样本中得出的,以这种方式

 few <-read.table('outcome.dat',head=TRUE)
 many<-read.table('alldata.dat',head=TRUE)
 mh <- hist(many$G,breaks=seq(0,1.,by=0.03), plot=FALSE)
 fh <- hist(few$G, breaks=mh$breaks, plot=FALSE)
 ph <- fh
 ph$density <- fh$counts/(mh$counts+0.001)
 plot(ph,freq=FALSE,col="blue")

我想拟合 ph 曲线的最佳曲线,但我找不到工作方法。我怎样才能做到这一点?我必须从 ph 中提取值然后对它们进行处理?或者有相同的功能

 plot(ph,freq=FALSE,col="blue")

直接地?

4

2 回答 2

3

假设您的意思是要对 ph 中的数据执行曲线拟合,那么 nls(FUN, cbind(ph$counts, ph$mids),...) 可能会起作用。你需要知道你认为直方图数据应该适合什么样的函数'FUN',例如正态分布。阅读帮助文件nls()以了解如何为 FUN 中的系数设置起始“猜测”值。

如果您只是想在直方图上叠加一条曲线,那么smoo<-spline(ph$mids,ph$counts); lines(smoo$x,smoo$y)

将接近做到这一点。您可能需要调整 x 和/或 y 缩放。

于 2011-09-21T15:23:12.317 回答
2

你想要一个密度函数吗?

x = rnorm(1000)
hist(x, breaks = 30, freq = FALSE)
lines(density(x), col = "red")
于 2011-09-21T15:25:35.890 回答