Sto utilizzando il linguaggio di programmazione R. Supponiamo di avere i seguenti dati:
set.seed(123)
a = rnorm(100000,10,10)
b = rnorm(100000,10,10)
my_data = data.frame(a,b)
plot(my_data$a, my_data$b)
Quando si guarda a questi dati:
head(my_data)
a b
1 4.395244 12.649934
2 7.698225 28.307475
3 25.587083 9.406217
4 10.705084 9.467906
5 11.292877 14.379042
6 27.150650 23.374490
La mia Domanda: c'È un modo per scoprire se questo set di dati contiene un punto tale che
- tutti i valori di "a" sono più piccoli di una coordinata di questo punto E
- tutti i valori di "b" sono più piccoli rispetto alla b-coordinate di questo punto
C'è un modo per scoprire se questo set di dati contiene un "punto di massimo globale"?
Per esempio, come punto rosso sopra. So che nella maggior parte dei casi, è improbabile trovare un punto, visto che il punto con il più grande di una coordinata non necessariamente la più grande b-coordinare e viceversa:
#row with max value of "a"
which(my_data == max(my_data$a), arr.ind=TRUE)
row col
[1,] 23102 1
#row with max value of "b"
which(my_data == max(my_data$b), arr.ind=TRUE)
row col
[1,] 2071 2
#display row with max value of "a"
> my_data[23102,]
a b
23102 53.22815 4.500006
#display row with max value of "b"
> my_data[2071,]
a b
2071 15.85992 52.0609
Come possiamo vedere, la riga con il massimo valore di "a" non contiene il massimo valore di "b".
Grazie!
Nota: Nel mondo reale, spesso è impossibile trovare "globale il massimo dei punti", come big data i punti di "sovrapposizione" (righe diverse contenere un massimo di colonne diverse). Nel contesto di problemi di ottimizzazione, diversi punti spesso rispondono a questo criterio e sono tutti da considerarsi idonei - questi punti sono chiamati "non dominante" e ha detto di essere situato sulla "Frontiera di Pareto" (linea verde):