2012-01-04 17 views
0

プロファイル(変数の平均的な外観)と構造(変数の実際の外観)を比較したいと思います。プロファイルと構造との比較R

データセットは、プロファイルPのためにそのようになっています

structure(list(V1 = c(0.047, 0.092, 0.065, 0.091, 0.076, 0.067, 
0.087, 0.065, 0.076, 0.052), V2 = c(0.086, 0.06, 0.056, 0.076, 
0.09, 0.071, 0.075, 0.063, 0.078, 0.038), V3 = c(0.065, 0.085, 
0.097, 0.082, 0.061, 0.053, 0.073, 0.083, 0.073, 0.081), V4 = c(0.071, 
0.083, 0.091, 0.07, 0.063, 0.067, 0.107, 0.071, 0.109, 0.094), 
    V5 = c(0.102, 0.104, 0.107, 0.101, 0.12, 0.116, 0.113, 0.112, 
    0.122, 0.1), V6 = c(0.086, 0.067, 0.091, 0.08, 0.07, 0.067, 
    0.073, 0.067, 0.083, 0.081), V7 = c(0.086, 0.079, 0.095, 
    0.082, 0.093, 0.114, 0.081, 0.079, 0.078, 0.083), V8 = c(0.053, 
    0.056, 0.046, 0.058, 0.067, 0.037, 0.043, 0.057, 0.034, 0.063 
    ), V9 = c(0.069, 0.065, 0.069, 0.042, 0.067, 0.069, 0.071, 
    0.075, 0.06, 0.096), V10 = c(0.067, 0.054, 0.048, 0.042, 
    0.063, 0.051, 0.045, 0.053, 0.058, 0.073), V11 = c(0.024, 
    0.044, 0.042, 0.066, 0.023, 0.051, 0.024, 0.024, 0.022, 0.044 
    ), V12 = c(0.047, 0.048, 0.048, 0.04, 0.044, 0.047, 0.045, 
    0.051, 0.042, 0.052), V13 = c(0.075, 0.075, 0.056, 0.072, 
    0.053, 0.079, 0.075, 0.079, 0.06, 0.046), V14 = c(0.122, 
    0.088, 0.089, 0.095, 0.11, 0.11, 0.087, 0.12, 0.105, 0.098 
    )), .Names = c("V1", "V2", "V3", "V4", "V5", "V6", "V7", 
"V8", "V9", "V10", "V11", "V12", "V13", "V14"), row.names = c(NA, 
10L), class = "data.frame") 

構造は次のようになります。

structure(c(1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 
1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 
1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 
0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 
1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 
0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 
0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), .Dim = c(20L, 14L), .Dimnames = list(
    NULL, c("UH6401", "UH6402", "UH6403", "UH6404", "UH6409", 
    "UH6410", "UH6411", "UH6412", "UH6503", "UH66", "UH68", "UH6501a", 
    "UH6405a", "UH6407a"))) 

だから、両方のケースでは、変数の量は同じです。また構造。違いは各セルの数です。プロファイルのどこに浮動小数点数があり、セルはバイナリです(変数は使用可能かどうか)。私は今、構造行列に最も近いプロファイル行列のこの行を見たいと思います。


UPDATE:

[OK]を、多分私の説明が少し不明瞭だったと私は特定の意味を持つ用語を使用しないでください。それゆえ、私は何をしようとするかをもっと指定しようとします。 我々は最初の行列を見れば、それは次のようになります。

 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 
1 0.047 0.086 0.065 0.071 0.102 0.086 0.086 0.053 0.069 0.067 0.024 0.047 0.075 0.122 
2 0.092 0.060 0.085 0.083 0.104 0.067 0.079 0.056 0.065 0.054 0.044 0.048 0.075 0.088 
3 0.065 0.056 0.097 0.091 0.107 0.091 0.095 0.046 0.069 0.048 0.042 0.048 0.056 0.089 
4 0.091 0.076 0.082 0.070 0.101 0.080 0.082 0.058 0.042 0.042 0.066 0.040 0.072 0.095 
5 0.076 0.090 0.061 0.063 0.120 0.070 0.093 0.067 0.067 0.063 0.023 0.044 0.053 0.110 
6 0.067 0.071 0.053 0.067 0.116 0.067 0.114 0.037 0.069 0.051 0.051 0.047 0.079 0.110 
7 0.087 0.075 0.073 0.107 0.113 0.073 0.081 0.043 0.071 0.045 0.024 0.045 0.075 0.087 
8 0.065 0.063 0.083 0.071 0.112 0.067 0.079 0.057 0.075 0.053 0.024 0.051 0.079 0.120 
9 0.076 0.078 0.073 0.109 0.122 0.083 0.078 0.034 0.060 0.058 0.022 0.042 0.060 0.105 
10 0.052 0.038 0.081 0.094 0.100 0.081 0.083 0.063 0.096 0.073 0.044 0.052 0.046 0.098 

各行は、変数(V14へV1)のいわゆるプロファイルを表します。私は、各行の合計が1であるため、各セルの数が可変の割合である

enter image description here

青い線を変数(Ausländer、慧音Umweltbelastung、等)のプロファイルを呼び出します行全体。

Respをこのようになり21000×14行列である:

 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 
[1,] 1 1 0 1 0 1 0 1 1 1 0 1 1 0 
[2,] 1 1 1 0 1 1 0 1 1 1 0 1 1 1 
[3,] 0 0 0 0 0 1 0 1 1 1 0 0 1 0 
[4,] 1 1 0 0 0 0 0 1 1 1 0 1 0 0 
[5,] 1 1 1 1 0 1 1 1 1 1 1 1 0 0 
[6,] 0 0 0 0 0 0 1 1 1 1 0 1 0 0 
[7,] 1 1 1 0 0 1 0 1 0 0 1 0 0 0 
[8,] 0 0 0 0 0 0 0 0 1 1 0 1 0 0 
[9,] 1 1 1 1 1 0 0 1 1 1 1 1 0 0 
[10,] 1 1 1 1 0 0 0 1 1 1 1 1 1 0 
[11,] 0 0 0 0 0 1 1 1 1 1 0 1 0 0 
[12,] 1 1 0 0 0 0 0 1 1 1 1 1 1 0 
[13,] 0 1 0 1 0 1 0 1 1 1 0 1 0 0 
[14,] 0 0 0 0 0 1 1 1 1 1 0 1 0 0 
[15,] 1 0 1 1 0 0 0 1 1 1 1 1 0 0 
[16,] 1 1 1 1 0 0 0 1 1 1 0 1 0 0 
[17,] 1 1 1 0 0 1 1 1 1 1 0 1 1 1 
[18,] 1 1 1 0 0 1 0 1 1 1 0 1 0 0 
[19,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
[20,] 1 1 1 1 0 0 0 1 1 1 0 1 0 0 

各行は、現在のセルエントリが変数(V14にV1)は、彼のために利用可能であるかどうかを示す回答(1)そうでないか(0)。 varsのエントリはサブグループのすべての回答者の平均データでしたが、respのエントリが観察されます。 変数はグループの近傍構造を表します。 Varsは10の異なるサブグループを示しています。私は、respの回答者がどのサブグループに属しているのかを知りたいと思います。したがって、私はrespの各行とvarsの各行を比較する必要があります。回答者は全体的な違いが最小限のサブグループに属していると思います。 私の最初の考えは、respの各行を行の合計で除算することでしたが、結果は実際には適用されません。

aver <- c(0.0718023287061849, 0.0693420423225302, 0.0753384763664876, 
0.0827043835101492, 0.109631516692048, 0.0765927537218141, 0.0870322381232645, 
0.0515014684350035, 0.0683398169561522, 0.0554744519820495, 0.0363337127130046, 
0.0463575341160886, 0.0671060291182815, 0.102443247236942) 

しかし、これが動作するかどうか私は知らない:次の私は、平均プロファイルによって各変数を加重すると思いました。最後に、観測されたデータと平均データ(プロファイルとの比較)を比較する必要があります。また、このサブグループを、サブグループ平均と少なくとも異なるプロファイルを持つ回答者に割り当てます。

そこで問題は、RESP、どのように両方のプロファイルを比較することから、同等のプロファイルを生成するために適用可能な方法は何です...

私はそれを理解して少し良くなった願っています。 y'allヘルプありがとう!

+0

どのようにクローズを定義しますか?プロファイル行を構造行に近づけるには? –

+0

@PLapointe:説明を更新しました。 – Dominik

答えて

0

2番目のケースでは、実際に折り畳みが.Dim属性で管理されている長さがprod(dim(mtx))の折り畳まれたベクトルである行列があります。最初のケースでは、リストのような長さ== 14という特殊な形式のデータフレームと呼ばれるデータフレームがありますが、マトリックスとは異なり、論理モード、整数モード、文字モード、数字モード、または因子。それは実際に等しい長さでテストされた名前付きリストのコレクションです。あなたは細胞とプロファイルについて話していますが、どちらも実際にはR項なので、最後の2つの質問が本当に求めていることは少し不明です。

あなたは、データ・オブジェクトを見て簡単な方法をしたい場合は、試してみてください。

str(object-name) 

は応答:私が正しくあなたの更新を理解していた場合は、どのI第一の目的で行の間の距離尺度を開発したいです「プロファイル」と呼ぶつもりで、2番目のオブジェクトは「セル」と呼んでいます。すべてのプロファイルの行の合計が1であるため、平均は1/14です。 "Profiles"内の各行/ col項目が平均より上か下かによって、要素が1または0の行列を作成できます。これを「プロセル」と呼んでください。

discrProfTF <- 0+ (profiles >1/14) 

あなたがネクタイを破る方法は、あなたが提供していない科学的ドメインに適した、さらに入力するための話題かもしれません。

あり、「バイナリ」対策を持っているdist関数であり、あなたはそれを適用することができます:

cbind(discrProfTF, Cells) # a 30 x 14 matrix 

dist(cbind(discrProfTF, Cells), "binary") # a 30 x 30 lower-triangular "distance matrix" 

そして、あなたは別のprocellsの行とセルの行を比較する距離を無視し、ちょうど間の距離に焦点を当てますプロセルおよび細胞。私はあなたが他の戦略を適用できると思うでしょう。Cluster Task View.

+0

説明を更新しました。私が探しているものを理解することがより良いことを願っています。 – Dominik

関連する問題