找到最佳值的功能考虑基于平均值和标准差的标准,将数据帧分成两组

时间:2013-03-19 23:35:23

标签: r

我试图将数据帧分成两组。数据框的结构如下:

X=data.frame(x1=c(1,1,2,2,3,4,5,6,9,9,
    11,2,4,45,67,89,1,1,
    5,5,5,6,6,6,9,9,9,11,
    11,8,8,8,51,90,40,15,
    30,11,8,9,9,1,5,5,100,
    67,78,98,34,25,51,45))

为此,我想计算给定间隔内的最佳值。该值将数据帧分为两组。第一组G1大于最佳值的x1的所有值和第二组G2小于或等于最佳值的x1的所有值。我正在考虑的标准是下一个:

mean.G1+mean.G2<=mean(Data$X) 

sd.G1+sd.G2<=sd(Data$X)

我想在给定间隔的迭代中提取最优。例如,间隔是10到100然后我选择一个值10然后我正在寻找的函数必须使它

G1=data.frame(X[X$x1>10,]
G2=data.frame(X[X$x1<=10,]

在此之后,我计算G1和G2的均值和sd:

mean(G1$X.X.x1...10...)=48.45; sd(G1$X.X.x1...10...)=30.76306
mean(G2$X.X.x1....10...)=5.34375; sd(G2$X.X.x1....10...)=2.902828

我在x1中计算变量X的均值和sd:

mean(X$x1)=21.92308; sd(X$x1)=28.3921

然后我继续比较x1mean(G1)+mean(G2)sd(G1)+sd(G2)的平均值和sd。然后像mean(G1)+mean(G2)sd(G1)+sd(G2)不小于或等于mean(X $ x1)和sd(X $ x1),该函数必须证明其间隔中的下一个值,如11,12等。如果没有最佳显示任何消息。我一直在尝试,但我没有得到最佳。谢谢,我等待这很清楚。

1 个答案:

答案 0 :(得分:0)

设G为整个组,G1和G2为子组和| G |设为G的元素数。

mean(G) = sum(G)/|G| 
        = sum(G1)/|G| + sum(G2)/|G|
        = sum(G1)/|G1| * |G1|/|G| + sum(G2)/|G2| * |G2| / |G|
        = mean(G1) * |G1|/|G| + mean(G2) * |G2| / |G|
        < mean(G1) + mean(G2)

其中最后一行是由于(1)G的所有元素都是正的,因此平均值(G1)和平均值(G2)必然是正的,(2)G1中的元素少于G和类似的G2中的元素少于G,因此| G1 | / | G | &LT; 1和| G2 | / | G | &LT;因此,你的平均标准永远不会得到满足。