-1

在 R 中使用 ecdf() (或 Ecdf )时,我得到的结数约为 500。但是,我需要一些结来反映我在原始数据集中的观察数量(在我的情况下为 300) .

如何调整 ecdf 中的结数?或者,有可能吗?

下面是R代码:

install.packages("Hmisc");
library(Hmisc)

nobs <- 300
g1_true <- 2
eps <- rnorm(nobs, 3.5,2.1)
Z <- rbinom(n=nobs, size=3, p=0.5) 

P <- g1_true*Z + eps 

# marginal density for P
h.p <- density(P,bw="nrd0", kernel="epanechnikov")$y

# get the marginal distribution H(p)
H.p <- ecdf(h.p)
length(knots(H.p))
4

1 回答 1

0

解决方案是在 ecdf() 函数之前调用的 density() 函数。density() 函数有一个参数 n,默认为 512。如果将 ecdf 应用于密度函数调用的结果,将其更改为适合问题的任何数字都会改变 ecdf 函数的结数。

例如

H <- density(P, n=length(P))$x
H.ecdf <- ecdf(H)
于 2015-05-18T17:00:23.000 回答