我试图将数据帧分成两组。数据框的结构如下:
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
然后我继续比较x1
与mean(G1)+mean(G2)
和sd(G1)+sd(G2)
的平均值和sd。然后像mean(G1)+mean(G2)
和sd(G1)+sd(G2)
不小于或等于mean(X $ x1)和sd(X $ x1),该函数必须证明其间隔中的下一个值,如11,12等。如果没有最佳显示任何消息。我一直在尝试,但我没有得到最佳。谢谢,我等待这很清楚。
答案 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;因此,你的平均标准永远不会得到满足。