0

データフレームを 2 つのグループに分割しようとしています。データ フレームには、次のような構造があります。

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))

このために、特定の間隔内にある最適値を計算したいと考えています。この値は、データフレームを 2 つのグループに分割します。第1のグループG1は最適値より大きいx1のすべての値であり、第2のグループ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 の平均と標準偏差を計算します。

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:

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

x1次に、 と の平均と標準偏差を比較mean(G1)+mean(G2)sd(G1)+sd(G2)ます。次に、平均 (X$x1) および sd(X$x1) と同じかそれ以下ではない場合、関数は 11、12 などの間隔内の次の値で証明する必要がありますmean(G1)+mean(G2)sd(G1)+sd(G2)最適なメッセージがない場合は、メッセージを表示します。私はしばらく試していましたが、最適なものが得られません。ありがとう、私はこれが明確になるのを待ちます。

4

1 に答える 1

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 よりも少なく、同様に G の要素も少ないという事実によるものです。 G よりも G2 の要素なので |G1|/|G| < 1 および |G2|/|G| < 1. したがって、平均基準が満たされることはありません。

于 2013-03-20T00:51:47.947 に答える