r: forma de cuantificar similitudes entre filas de un ggplot

CorePress2024-01-25  9

Tengo la siguiente tabla de datos:

test <-
    number variable     value
1        1       V1 0.2635911
2        2       V1 0.2650884
3        3       V1 0.2569116
4        4       V1 0.2616717
5        5       V1 0.2564727
6        6       V1 0.2538608
7        7       V1 0.2633396
8        8       V1 0.2655517
9        9       V1 0.2738706
10      10       V1 0.2689698
11      11       V1 0.2775924
12      12       V1 0.2570329
13      13       V1 0.2628771
14      14       V1 0.2605258
15      15       V1 0.2588198
16      16       V1 0.2706452
17      17       V1 0.2587265
18      18       V1 0.2587265
19      19       V1 0.2613579
20      20       V1 0.2700729
21      21       V1 0.2781541
22      22       V1 0.2908526
23      23       V1 0.2828866
24      24       V1 0.2829607
25      25       V1 0.2800748
26      26       V1 0.2864499
27      27       V1 0.2976331
28      28       V1 0.3076221
29      29       V1 0.3125783
30      30       V1 0.3029413
31      31       V1 0.2921926
32      32       V1 0.2952376
33      33       V1 0.2917149
34      34       V1 0.3095391
35      35       V1 0.3192369
36      36       V1 0.3205008
37      37       V1 0.3210821
38      38       V1 0.3225114
39      39       V1 0.3165967
40      40       V1 0.3311130
41      41       V1 0.3355732
42       1       V2 0.2275850
43       2       V2 0.2268247
44       3       V2 0.2235245
45       4       V2 0.2277341
46       5       V2 0.2224330
47       6       V2 0.2216663
48       7       V2 0.2295579
49       8       V2 0.2303818
50       9       V2 0.2362313
51      10       V2 0.2288778
52      11       V2 0.2415600
53      12       V2 0.2260683
54      13       V2 0.2243258
55      14       V2 0.2217801
56      15       V2 0.2198674
57      16       V2 0.2303736
58      17       V2 0.2222210
59      18       V2 0.2222210
60      19       V2 0.2308805
61      20       V2 0.2408891
62      21       V2 0.2612180
63      22       V2 0.2713836
64      23       V2 0.2680126
65      24       V2 0.2700159
66      25       V2 0.2669348
67      26       V2 0.2668953
68      27       V2 0.2765348
69      28       V2 0.2911455
70      29       V2 0.2959731
71      30       V2 0.2860626
72      31       V2 0.2619870
73      32       V2 0.2623899
74      33       V2 0.2595488
75      34       V2 0.2741101
76      35       V2 0.2826556
77      36       V2 0.2913895
78      37       V2 0.2934421
79      38       V2 0.2842480
80      39       V2 0.2754619
81      40       V2 0.2918188
82      41       V2 0.2943509
83       1       V3 0.2294325
84       2       V3 0.2207675
85       3       V3 0.2276309
86       4       V3 0.2311673
87       5       V3 0.2421844
88       6       V3 0.2393514
89       7       V3 0.2464961
90       8       V3 0.2672072
91       9       V3 0.2706891
92      10       V3 0.2716877
93      11       V3 0.2775320
94      12       V3 0.2882381
95      13       V3 0.2760345
96      14       V3 0.2761454
97      15       V3 0.2686366
98      16       V3 0.2633213
99      17       V3 0.2558415
100     18       V3 0.2558415
101     19       V3 0.2651125
102     20       V3 0.2802660
103     21       V3 0.3130162
104     22       V3 0.3291228
105     23       V3 0.3293683
106     24       V3 0.3309799
107     25       V3 0.3303767
108     26       V3 0.3330788
109     27       V3 0.3427585
110     28       V3 0.3565055
111     29       V3 0.3305404
112     30       V3 0.3437861
113     31       V3 0.3146519
114     32       V3 0.2952635
115     33       V3 0.2902571
116     34       V3 0.3056054
117     35       V3 0.3046384
118     36       V3 0.3240068
119     37       V3 0.3324652
120     38       V3 0.3310975
121     39       V3 0.3256083
122     40       V3 0.3421986
123     41       V3 0.3462222
124      1       V4 0.5916363
125      2       V4 0.5779034
126      3       V4 0.5632020
127      4       V4 0.5467954
128      5       V4 0.5570823
129      6       V4 0.5797311
130      7       V4 0.5811650
131      8       V4 0.5862114
132      9       V4 0.5336045
133     10       V4 0.4983209
134     11       V4 0.5013016
135     12       V4 0.5489596
136     13       V4 0.5328552
137     14       V4 0.5628441
138     15       V4 0.5305244
139     16       V4 0.5396499
140     17       V4 0.5382373
141     18       V4 0.5382373
142     19       V4 0.5657389
143     20       V4 0.6095523
144     21       V4 0.6352541
145     22       V4 0.5622340
146     23       V4 0.5807564
147     24       V4 0.5726391
148     25       V4 0.5724073
149     26       V4 0.6093937
150     27       V4 0.6206982
151     28       V4 0.5944146
152     29       V4 0.6073015
153     30       V4 0.5912288
154     31       V4 0.6116150
155     32       V4 0.5825401
156     33       V4 0.5545265
157     34       V4 0.5916220
158     35       V4 0.6104256
159     36       V4 0.6034211
160     37       V4 0.6224549
161     38       V4 0.6931982
162     39       V4 0.6583044
163     40       V4 0.7277546
164     41       V4 0.7316220
165      1       V5 1.6012750
166      2       V5 1.7232682
167      3       V5 1.6849498
168      4       V5 1.7372409
169      5       V5 1.6904975
170      6       V5 1.6782624
171      7       V5 1.6236781
172      8       V5 1.6440954
173      9       V5 1.6140033
174     10       V5 1.5470975
175     11       V5 1.5507709
176     12       V5 1.4282340
177     13       V5 1.4641920
178     14       V5 1.4392424
179     15       V5 1.3988920
180     16       V5 1.4240200
181     17       V5 1.5839329
182     18       V5 1.5839329
183     19       V5 1.6081716
184     20       V5 1.6432765
185     21       V5 1.7558676
186     22       V5 1.7517093
187     23       V5 1.8167877
188     24       V5 1.7802214
189     25       V5 1.8784713
190     26       V5 1.8622613
191     27       V5 1.7720034
192     28       V5 1.7473988
193     29       V5 1.8420391
194     30       V5 1.6780098
195     31       V5 1.6348314
196     32       V5 1.7805307
197     33       V5 1.8170188
198     34       V5 1.9236170
199     35       V5 1.8752950
200     36       V5 1.8992993
201     37       V5 1.8998148
202     38       V5 1.9408867
203     39       V5 2.0105196
204     40       V5 2.0240603
205     41       V5 1.9986509
206      1       V6 2.7604032
207      2       V6 2.7480095
208      3       V6 2.7097223
209      4       V6 2.6958125
210      5       V6 2.6105382
211      6       V6 2.5355928
212      7       V6 2.4388681
213      8       V6 2.4554528
214      9       V6 2.4891361
215     10       V6 2.5077328
216     11       V6 2.3548875
217     12       V6 2.3558327
218     13       V6 2.4124644
219     14       V6 2.4197325
220     15       V6 2.4519078
221     16       V6 2.4934020
222     17       V6 2.5933631
223     18       V6 2.5933631
224     19       V6 2.4932248
225     20       V6 2.4500380
226     21       V6 2.4430684
227     22       V6 2.5200887
228     23       V6 2.4832765
229     24       V6 2.3941817
230     25       V6 2.3722242
231     26       V6 2.3417260
232     27       V6 2.2805031
233     28       V6 2.4397671
234     29       V6 2.4170213
235     30       V6 2.4760861
236     31       V6 2.4125734
237     32       V6 2.3471103
238     33       V6 2.3429898
239     34       V6 2.4485148
240     35       V6 2.4445050
241     36       V6 2.4393607
242     37       V6 2.4495364
243     38       V6 2.4054107
244     39       V6 2.3577567
245     40       V6 2.3736440
246     41       V6 2.5253512
247      1       V7 2.0602262
248      2       V7 2.0483372
249      3       V7 2.0736990
250      4       V7 2.1315484
251      5       V7 2.1799397
252      6       V7 2.3301890
253      7       V7 2.2959696
254      8       V7 2.2277231
255      9       V7 2.2939646
256     10       V7 2.2176999
257     11       V7 2.2831897
258     12       V7 2.2608763
259     13       V7 2.2078089
260     14       V7 2.2595722
261     15       V7 2.2997794
262     16       V7 2.3210011
263     17       V7 2.3872763
264     18       V7 2.3872763
265     19       V7 2.3771928
266     20       V7 2.4252593
267     21       V7 2.3247052
268     22       V7 2.3791342
269     23       V7 2.3491022
270     24       V7 2.1439292
271     25       V7 2.0383627
272     26       V7 2.0420853
273     27       V7 2.0024845
274     28       V7 1.9494101
275     29       V7 1.8449354
276     30       V7 1.9016126
277     31       V7 1.8161338
278     32       V7 1.8675445
279     33       V7 1.8903949
280     34       V7 1.8955622
281     35       V7 1.9092626
282     36       V7 1.7788932
283     37       V7 1.7412800
284     38       V7 1.6707951
285     39       V7 1.6438755
286     40       V7 1.6607334
287     41       V7 1.7414011
288      1       V8 1.4733552
289      2       V8 1.4362031
290      3       V8 1.4544211
291      4       V8 1.4581861
292      5       V8 1.5091275
293      6       V8 1.5023336
294      7       V8 1.4620160
295      8       V8 1.5097568
296      9       V8 1.6221026
297     10       V8 1.6092364
298     11       V8 1.7314998
299     12       V8 1.6633172
300     13       V8 1.5910380
301     14       V8 1.5666842
302     15       V8 1.5349787
303     16       V8 1.4716783
304     17       V8 1.4832044
305     18       V8 1.4832044
306     19       V8 1.3647461
307     20       V8 1.3758541
308     21       V8 1.2527031
309     22       V8 1.2535631
310     23       V8 1.2545834
311     24       V8 1.2030473
312     25       V8 1.1877904
313     26       V8 1.1673314
314     27       V8 1.1565594
315     28       V8 1.1913879
316     29       V8 1.1988982
317     30       V8 1.1852045
318     31       V8 1.1457429
319     32       V8 1.1960458
320     33       V8 1.2051532
321     34       V8 1.2331221
322     35       V8 1.2498006
323     36       V8 1.2960149
324     37       V8 1.2848459
325     38       V8 1.2658382
326     39       V8 1.2527976
327     40       V8 1.2304775
328     41       V8 1.2845763
329      1       V9 1.0947622
330      2       V9 1.1116325
331      3       V9 1.1260759
332      4       V9 1.0792304
333      5       V9 1.1135927
334      6       V9 1.0783778
335      7       V9 1.1552650
336      8       V9 1.0407025
337      9       V9 0.9814739
338     10       V9 0.9697538
339     11       V9 0.9738711
340     12       V9 1.0792870
341     13       V9 1.1419961
342     14       V9 1.1458102
343     15       V9 1.1518585
344     16       V9 1.1662038
345     17       V9 1.0965814
346     18       V9 1.0965814
347     19       V9 1.0771700
348     20       V9 1.0742737
349     21       V9 1.0623728
350     22       V9 0.9907468
351     23       V9 0.9523756
352     24       V9 1.0974362
353     25       V9 1.1455644
354     26       V9 1.1711806
355     27       V9 1.1766447
356     28       V9 1.1978350
357     29       V9 1.2063833
358     30       V9 1.2443743
359     31       V9 1.2621440
360     32       V9 1.1956573
361     33       V9 1.1876951
362     34       V9 1.0287512
363     35       V9 0.9414609
364     36       V9 0.9350406
365     37       V9 0.9801132
366     38       V9 0.9911915
367     39       V9 1.0392639
368     40       V9 0.9748509
369     41       V9 0.9681107
370      1      V10 0.7815317
371      2      V10 0.7724668
372      3      V10 0.7829253
373      4      V10 0.7839446
374      5      V10 0.7818569
375      6      V10 0.7467977
376      7      V10 0.8198222
377      8      V10 0.8894059
378      9      V10 0.8871695
379     10      V10 1.0217488
380     11      V10 0.9600032
381     12      V10 1.0234174
382     13      V10 1.0319810
383     14      V10 1.0081507
384     15      V10 1.0491675
385     16      V10 0.9703085
386     17      V10 0.8140696
387     18      V10 0.8140696
388     19      V10 0.9623639
389     20      V10 0.8540813
390     21      V10 0.8742382
391     22      V10 0.8648647
392     23      V10 0.8784826
393     24      V10 1.0928856
394     25      V10 1.0538718
395     26      V10 1.0598224
396     27      V10 1.1073631
397     28      V10 0.9505738
398     29      V10 0.9407248
399     30      V10 1.0043767
400     31      V10 1.2117631
401     32      V10 1.1648705
402     33      V10 1.1723112
403     34      V10 0.9904135
404     35      V10 1.0110657
405     36      V10 1.0342188
406     37      V10 1.0444609
407     38      V10 1.0697553
408     39      V10 1.0667992
409     40      V10 1.0035008
410     41      V10 0.7673388
411      1      V11 0.5392548
412      2      V11 0.5456137
413      3      V11 0.5641490
414      4      V11 0.5203727
415      5      V11 0.5153977
416      6      V11 0.5169318
417      7      V11 0.5534998
418      8      V11 0.5506033
419      9      V11 0.4745199
420     10      V11 0.5158155
421     11      V11 0.5096405
422     12      V11 0.5282389
423     13      V11 0.5144864
424     14      V11 0.5052571
425     15      V11 0.5025770
426     16      V11 0.5151202
427     17      V11 0.4558532
428     18      V11 0.4558532
429     19      V11 0.4727876
430     20      V11 0.4582600
431     21      V11 0.4691741
432     22      V11 0.4545345
433     23      V11 0.4649992
434     24      V11 0.4860698
435     25      V11 0.5230827
436     26      V11 0.5100968
437     27      V11 0.5914813
438     28      V11 0.5995068
439     29      V11 0.6245559
440     30      V11 0.6116879
441     31      V11 0.6470981
442     32      V11 0.6347906
443     33      V11 0.6217647
444     34      V11 0.6192189
445     35      V11 0.6655109
446     36      V11 0.6793624
447     37      V11 0.6325885
448     38      V11 0.6239640
449     39      V11 0.6466125
450     40      V11 0.6343966
451     41      V11 0.6147446
452      1      V12 0.3769467
453      2      V12 0.3238852
454      3      V12 0.3327886
455      4      V12 0.3262958
456      5      V12 0.3208774
457      6      V12 0.3169054
458      7      V12 0.3303225
459      8      V12 0.3329080
460      9      V12 0.3232346
461     10      V12 0.3430590
462     11      V12 0.3381513
463     12      V12 0.3404976
464     13      V12 0.3399407
465     14      V12 0.3342554
466     15      V12 0.3329909
467     16      V12 0.3342761
468     17      V12 0.3106927
469     18      V12 0.3106927
470     19      V12 0.3212534
471     20      V12 0.3181768
472     21      V12 0.3302283
473     22      V12 0.3317657
474     23      V12 0.3393688
475     24      V12 0.3456329
476     25      V12 0.3508390
477     26      V12 0.3496786
478     27      V12 0.3753360
479     28      V12 0.3744328
480     29      V12 0.3790487
481     30      V12 0.3746292
482     31      V12 0.3892668
483     32      V12 0.3780193
484     33      V12 0.3666250
485     34      V12 0.3799238
486     35      V12 0.3861426
487     36      V12 0.3984918
488     37      V12 0.3979160
489     38      V12 0.4011035
490     39      V12 0.4064036
491     40      V12 0.4054515
492     41      V12 0.3920580

Lo que me da este bonito ggplot:

ggplot(test, mapping = aes(x = variable, y = number, fill = value)) +
  geom_raster() +
  scale_fill_gradientn(colors = c("blue4", "dodgerblue1", "green3", "yellow", "red"), limits = c(0,3), name = "Value") +
  scale_x_discrete(labels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"), name = "", expand = c(0,0)) +
  scale_y_continuous(trans = "reverse", label = c(1:41), breaks = c(1:41), name = "", expand = c(0,0))

¿Hay alguna manera de cuantificar cuán diferentes son las 41 filas? Quiero decir, tengo un total de 260 parcelas de este tipo con datos diferentes y solo quiero aquella cuyas diferencias entre las filas sean mayores. Así que estoy tratando de darle a cada uno de estos 260 gráficos un cierto valor de "similitud" para distinguir cuál de ellos tiene las mayores diferencias internas.

Espero que esto haya quedado lo suficientemente claro;)

Reste la media mensual de los datos y¿Resumir las diferencias absolutas? O podría tomar la diferencia absoluta promedio si no cada parcela tiene 41 filas. Los valores más pequeños significan más similitud y los valores más grandes, más disimilitud.

-teunbrand

27/03/2021 a las 19:56

La media de cada fila es siempre 1, pero los valores de cada fila son diferentes. Básicamente, necesito encontrar una manera de determinar si estas 41 filas son menos diferentes entre sí que las otras 41 filas de otro gráfico.

-evian_bottle

27/03/2021 a las 20:03



------------------------------------

Podrías comparar la correlación entre filas:

library(dplyr)

# put the rows in columns to allow correlation calculation
test <- test %>% pivot_wider(id_cols = variable, names_from = number, values_from = value)

# calculate correlation 
test.cor <- cor(test[-1])

min(test.cor)
[1] 0.9231686

which(test.cor == min(test.cor),arr.ind = TRUE)
   row col
40  40  12
12  12  40

# remove self correlation (1) before mean calculation
diag(test.cor) <- NA

mean(test.cor, na.rm = T)
[1] 0.9792281

La correlación mínima indica cuán diferentes son las dos filas más diferentes. La correlación media indica qué tan diferentes son todas las filas entre sí en promedio.



------------------------------------

Como mencionaste en tu pregunta que estás usando data.table, yo también usaré esto. Probablemente desee cuantificar el error cuadrático medio de un conjunto de datos. Esto es ligeramente diferente a la sugerencia que le di.n los comentarios, pero para fines de clasificación deberían ser similares.

En el siguiente ejemplo, supongamos que question_data es una copia y pega entre comillas de los datos de su pregunta.

library(data.table)

# Reading in data from question
test <- read.table(text = question_data)
setDT(test)

# Calculating metric
test[, diff := value - mean(value), by = "variable"]
sqrt(sum(test$diff^2))
#> [1] 2.509714

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare