Я хотел бы сравнить профиль (средний вид переменной) с заданной структурой (реальный вид переменной).
Набор данных выглядит так для профиля 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:
Хорошо, возможно, мое описание было немного неясным, и я не должен использовать термины, которые имеют конкретное значение. Поэтому я стараюсь уточнить, что я пытаюсь сделать.
Если мы посмотрим на первую матрицу, она будет выглядеть так:
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
Каждая строка представляет собой так называемый профиль переменных (от V1 до V14). Я называю синюю линию профилем переменных (Ausländer, Keine Umweltbelastung и т. Д.)
![enter image description here](https://i.stack.imgur.com/3KvtB.png)
Сумма каждой строки равна 1, поэтому число в каждой ячейке - это доля переменной всей строки.
Resp - это матрица 21000 x 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
Каждая строка теперь является респондентом, и запись в ячейке указывает, доступна ли для него переменная (от V1 до V14) (1) или нет (0). Принимая во внимание, что записи в переменных были средними данными по всем респондентам подгруппы, записи в соответсвии наблюдаются.
Переменные представляют структуру окрестности группы. Vars показывают 10 разных подгрупп. Я хотел бы знать, к какой подгруппе, возможно, принадлежит респондент из респ. Поэтому мне нужно сравнить каждый ряд от соответсвующего с каждым рядом с переменными. Я предполагаю, что респондент принадлежит к подгруппе, где общая разница минимальна.
Моей первой мыслью было разделить каждый ряд соотношения на сумму ряда, но результат на самом деле не применим. Затем я подумал взвесить каждую переменную по среднему профилю:
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)
Но я не знаю, работает ли это. Наконец, мне нужно сравнить наблюдаемые данные со средними данными (сравнить с профилями). И назначьте эту подгруппу респондентам, профиль которых меньше всего отличается от среднего значения в подгруппе.
Таким образом, вопрос в том, что является подходящим способом для создания сопоставимого профиля из соответственных и как сравнить оба профиля ...
Надеюсь, это было немного лучше понять.
Спасибо за помощь!