问题描述
我有两个数值变量,我通过 density
中的命令 R
在下面绘制。代码如下:
d0<-density(T0,n=2^14)
df_density0<-data.frame(x=d0$x,y=d0$y,stringsAsFactors = FALSE)
d1<-density(T1,n=2^14)
df_density1<-data.frame(x=d1$x,y=d1$y,stringsAsFactors = FALSE)
最初,我将等距点的数量 n
保留为默认值 512,但后来我意识到密度图 d1
下的面积不等于 1(大约是13)。然后我选择了正确的数字 n
以获得接近于 1 的两个密度图的 AUC(曲线下面积)。这样:
library(zoo)
x <- df_density0$x
y <- df_density0$y
id <- order(x)
AUC0 <- sum(diff(x[id])*rollmean(y[id],2))
x <- df_density1$x
y <- df_density1$y
id <- order(x)
AUC1 <- sum(diff(x[id])*rollmean(y[id],2))
对于 n=2^14
,我获得了 AUC0
和 AUC1
等于 0.9999...我绘制了这些密度曲线并获得了下图(蓝色代表 T0
,红色代表用于 T1
):
由于这些图表无法区分,我为纵轴选择了对数刻度:
我有可能得到这样的结果吗?我应该更改 kernel
函数中的 density
字段吗?
附言。为了绘制这些图形,我将 d0
和 d1
导出到两个 csv 文件中,以便将它们导入 LaTeX。无论如何,我在 R
中获得了相同的图。此外,
> nrow(T0)
[1] 9760
> nrow(T1)
[1] 1963
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)