Che cosa succede se i miei dati di regressione lineare contengono diverse relazioni lineari combinate?


34

Diciamo che sto studiando come i narcisi rispondono alle varie condizioni del suolo. Ho raccolto dati sul pH del suolo rispetto all'altezza matura del narciso. Mi aspetto una relazione lineare, quindi eseguo una regressione lineare.

Tuttavia, non ho realizzato quando ho iniziato il mio studio che la popolazione in realtà contiene due varietà di narcisi, ognuna delle quali risponde in modo molto diverso al pH del suolo. Quindi il grafico contiene due distinte relazioni lineari:

pH del terreno vs altezza del fiore (cm)

Posso osservarlo e separarlo manualmente, ovviamente. Ma mi chiedo se esiste un approccio più rigoroso.

Domande:

  1. Esiste un test statistico per determinare se un set di dati sarebbe più adatto da una singola riga o da N righe?

  2. Come farei una regressione lineare per adattarsi alle linee N? In altre parole, come faccio a districare i dati combinati?

Posso pensare ad alcuni approcci combinatori, ma sembrano computazionalmente costosi.


chiarimenti:

  1. L'esistenza di due varietà era sconosciuta al momento della raccolta dei dati. La varietà di ciascun narciso non è stata osservata, non notata e non registrata.

  2. È impossibile recuperare queste informazioni. I narcisi sono morti dal momento della raccolta dei dati.

Ho l'impressione che questo problema sia simile all'applicazione degli algoritmi di clustering, in quanto è quasi necessario conoscere il numero di cluster prima di iniziare. Credo che con QUALSIASI set di dati, l'aumento del numero di righe ridurrà l'errore rms totale. In estrema misura, puoi dividere il tuo set di dati in coppie arbitrarie e semplicemente tracciare una linea attraverso ciascuna coppia. (Ad esempio, se avessi 1000 punti dati, potresti dividerli in 500 coppie arbitrarie e tracciare una linea attraverso ciascuna coppia.) L'adattamento sarebbe esatto e l'errore rms sarebbe esattamente zero. Ma non è quello che vogliamo. Vogliamo il numero "giusto" di righe.



3
sai quale dafodil è quale varietà? In tal caso, puoi semplicemente includere tali informazioni nel tuo modello
rep_ho,

1
Questo sembra un classico caso di interazione statistica, come nella risposta di @Demetri Pananos.
rolando2,

2
Ho la sensazione che non abbiano le informazioni su quale varietà fosse il fiore nei loro dati. Sono d'accordo che se lo avessero fatto, questo sarebbe solo un caso di costruzione di un modello di interazione o anche solo di eseguire regressioni separate per ogni varietà. Tuttavia, se non dispongono di tali informazioni, non tutte le speranze vanno perse. Si potrebbe costruire un modello che stima non solo le linee separate ma predice anche le probabilità che ciascuna osservazione appartenga a entrambi i gruppi.
Dason,

1
@DemetriPananos Ho fornito una risposta che si spera abbia un senso. A seconda di cosa vogliono fare è un po 'più di lavoro. Per fare una sorta di test, devi fare un test del rapporto di verosimiglianza o fare una sorta di test di randomizzazione o qualcosa del genere. Ma non ci hanno dato troppe informazioni e se l'obiettivo è solo quello di adattarsi alle linee e non hanno le etichette, non è poi così male farlo usando il pacchetto mixtools.
Dason,

Risposte:


31

Penso che la risposta di Demetri sia ottima se assumiamo che tu abbia le etichette per le diverse varietà. Quando ho letto la tua domanda, non mi sembrava il caso. Possiamo usare un approccio basato sull'algoritmo EM per adattarci sostanzialmente al modello che Demetri suggerisce ma senza conoscere le etichette per la varietà. Fortunatamente il pacchetto mixtools in R offre questa funzionalità per noi. Dato che i tuoi dati sono abbastanza separati e sembra che tu ne abbia un bel po ', dovrebbe avere abbastanza successo.

library(mixtools)

# Generate some fake data that looks kind of like yours
n1 <- 150
ph1 = runif(n1, 5.1, 7.8)
y1 <- 41.55 + 5.185*ph1 + rnorm(n1, 0, .25)

n2 <- 150
ph2 <- runif(n2, 5.3, 8)
y2 <- 65.14 + 1.48148*ph2 + rnorm(n2, 0, 0.25)

# There are definitely better ways to do all of this but oh well
dat <- data.frame(ph = c(ph1, ph2), 
                  y = c(y1, y2), 
                  group = rep(c(1,2), times = c(n1, n2)))

# Looks about right
plot(dat$ph, dat$y)

# Fit the regression. One line for each component. This defaults
# to assuming there are two underlying groups/components in the data
out <- regmixEM(y = dat$y, x = dat$ph, addintercept = T)

Possiamo esaminare i risultati

> summary(out)
summary of regmixEM object:
          comp 1    comp 2
lambda  0.497393  0.502607
sigma   0.248649  0.231388
beta1  64.655578 41.514342
beta2   1.557906  5.190076
loglik at estimate:  -182.4186 

Quindi si adattava a due regressioni e ha stimato che il 49,7% delle osservazioni è caduto nella regressione per il componente 1 e il 50,2% è caduto nella regressione per il componente 2. Il modo in cui ho simulato i dati era una divisione del 50-50, quindi questo è buono.

I valori "veri" che ho usato per la simulazione dovrebbero dare le righe:

y = 41,55 + 5,185 * ph e y = 65,14 + 1,48148 * ph

(che ho stimato "a mano" dalla tua trama in modo che i dati che creo siano simili ai tuoi) e le linee che l'algoritmo EM forniva in questo caso erano:

y = 41.514 + 5.19 * ph e y = 64.655 + 1.55 * ph

Abbastanza dannatamente vicino ai valori reali.

Possiamo tracciare le linee adattate insieme ai dati

plot(dat$ph, dat$y, xlab = "Soil Ph", ylab = "Flower Height (cm)")
abline(out$beta[,1], col = "blue") # plot the first fitted line
abline(out$beta[,2], col = "red") # plot the second fitted line

Linee adattate via EM


21

EDIT: inizialmente pensavo che OP sapesse quali osservazioni provenivano da quali specie. La modifica di OP chiarisce che il mio approccio originale non è fattibile. Lo lascerò per i posteri, ma l'altra risposta è molto meglio. Come consolazione, ho codificato un modello di miscela a Stan. Non sto dicendo che un approccio bayesiano sia particolarmente buono in questo caso, ma è solo qualcosa di pulito in cui posso contribuire.

Codice Stan

data{

  //Number of data points
  int N; 

  real y[N];
  real x[N];
}
parameters{
  //mixing parameter
  real<lower=0, upper =1>  theta;

  //Regression intercepts
  real beta_0[2];

  //Regression slopes.
  ordered[2] beta_1;

  //Regression noise
  real<lower=0> sigma[2];
}
model{

  //priors
  theta ~ beta(5,5);
  beta_0 ~ normal(0,1);
  beta_1 ~ normal(0,1);
  sigma ~ cauchy(0,2.5);

  //mixture likelihood
  for (n in 1:N){
    target+=log_mix(theta,
                     normal_lpdf(y[n] | beta_0[1] + beta_1[1]*x[n], sigma[1]),
                     normal_lpdf(y[n] | beta_0[2] + beta_1[2]*x[n], sigma[2]));
  }
}
generated quantities {
  //posterior predictive distribution
  //will allow us to see what points belong are assigned
  //to which mixture 
  matrix[N,2] p;
  matrix[N,2] ps;
  for (n in 1:N){
    p[n,1] = log_mix(theta,
                     normal_lpdf(y[n] | beta_0[1] + beta_1[1]*x[n], sigma[1]),
                     normal_lpdf(y[n] | beta_0[2] + beta_1[2]*x[n], sigma[2]));

    p[n,2]= log_mix(1-theta,
                     normal_lpdf(y[n] | beta_0[1] + beta_1[1]*x[n], sigma[1]),
                     normal_lpdf(y[n] | beta_0[2] + beta_1[2]*x[n], sigma[2]));

    ps[n,]= p[n,]/sum(p[n,]);
  }
}

Esegui il modello Stan da R

library(tidyverse)
library(rstan)


#Simulate the data
N = 100
x = rnorm(N, 0, 3)
group = factor(sample(c('a','b'),size = N, replace = T))

y = model.matrix(~x*group)%*% c(0,1,0,2) 
y = as.numeric(y) + rnorm(N)

d = data_frame(x = x, y = y)

d %>% 
  ggplot(aes(x,y))+
  geom_point()

#Fit the model
N = length(x)
x = as.numeric(x)
y = y

fit = stan('mixmodel.stan', 
           data = list(N= N, x = x, y = y),
           chains = 8,
           iter = 4000)

risultati

inserisci qui la descrizione dell'immagine

Le linee tratteggiate sono verità di base, le linee continue sono stimate.


Risposta originale

Se sai quale campione proviene da quale varietà di narciso, puoi stimare un'interazione tra varietà e PH del suolo.

Il tuo modello sarà simile

y=β0+β1variety+β2PH+β3varietyPH

Ecco un esempio in R. Ho generato alcuni dati che assomigliano a questo:

inserisci qui la descrizione dell'immagine

Chiaramente due linee diverse e le linee corrispondono a due specie. Ecco come stimare le linee usando la regressione lineare.

library(tidyverse)

#Simulate the data
N = 1000
ph = runif(N,5,8)
species = rbinom(N,1,0.5)

y = model.matrix(~ph*species)%*% c(20,1,20,-3) + rnorm(N, 0, 0.5)
y = as.numeric(y)

d = data_frame(ph = ph, species = species, y = y)

#Estimate the model
model = lm(y~species*ph, data = d)
summary(model)

E il risultato è

> summary(model)

Call:
lm(formula = y ~ species * ph, data = d)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.61884 -0.31976 -0.00226  0.33521  1.46428 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 19.85850    0.17484  113.58   <2e-16 ***
species     20.31363    0.24626   82.49   <2e-16 ***
ph           1.01599    0.02671   38.04   <2e-16 ***
species:ph  -3.03174    0.03756  -80.72   <2e-16 ***
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4997 on 996 degrees of freedom
Multiple R-squared:  0.8844,    Adjusted R-squared:  0.8841 
F-statistic:  2541 on 3 and 996 DF,  p-value: < 2.2e-16

Per le specie etichettate con 0, la linea è approssimativamente

y=19+1PH

Per le specie etichettate 1, la linea è approssimativamente

y=402PH


Se OP conosce in anticipo la varietà di narcisi, perché non possono semplicemente dividere i dati in due parti ed eseguire due regressioni separate per ciascuna varietà?
Akavall,

Se OP non è interessato alle differenze tra le varietà di narcisi (ad es. La varietà 1 diventa più alta della varietà 2 condizionata sul PH del suolo), allora non c'è motivo di regredire tutti i dati insieme, tranne forse gli argomenti riguardanti la precisione.
Demetri Pananos,

@Akavail - Potrebbero dividere i dati ma eseguirli in questo modo rende più semplice fare qualsiasi tipo di confronto se fossero interessati a testare qualsiasi ipotesi sulle differenze tra le varietà. L'esecuzione combinata darebbe anche stime leggermente migliori se un'ipotesi di varianza uguale è valida.
Dason,

1
Prima di esaminare l'approccio EM ho considerato l'approccio bayesiano. Ma per quanto mi piaccia il modo bayesiano di fare le cose, sono diventato pigro ed è molto più semplice adottare l'approccio EM. Detto questo, preferisco di gran lunga un'analisi bayesiana e penso che renda molto più facile anche rispondere alle domande di follow-up: potresti avere più difficoltà a codificare il modello iniziale, ma una volta fatto è molto più facile rispondere alle domande che potresti avere usando il distribuzione posteriore.
Dason,

2

L'approccio statistico è molto simile a due delle risposte precedenti, ma si occupa un po 'di più di come scegliere il numero di classi latenti se non si ha una conoscenza precedente. È possibile utilizzare criteri di informazione o parsimonia come guida nella scelta del numero di classi latenti.

Ecco un esempio di Stata che utilizza una sequenza di modelli di miscele finite (FMM) con 2-4 classi / componenti latenti. La prima tabella è i coefficienti per l'appartenenza alla classe latente. Questi sono un po 'difficili da interpretare, ma possono essere convertiti in probabilità in seguito con estat lcprob. Per ogni classe, ottieni anche un parametro di intercettazione e un valore di pendenza ph, seguito da probabilità marginali di classe latente e due circuiti integrati nel campione. Queste stime dei coefficienti sono interpretate esattamente come i coefficienti di un modello di regressione lineare. Qui il più piccolo BIC nel campione ti dice di scegliere il modello a due componenti come il migliore. AIC seleziona stranamente il modello a 3 componenti. È inoltre possibile utilizzare circuiti integrati fuori campione per selezionare o utilizzare la convalida incrociata.

.01433133004

L'approccio FMM non funzionerà sempre così bene in pratica se le classi sono meno rigide. Potresti incontrare difficoltà computazionali con troppe classi latenti, specialmente se non hai abbastanza dati o se la funzione di probabilità ha più massimi locali.

. clear

. /* Fake Data */
. set seed 10011979

. set obs 300
number of observations (_N) was 0, now 300

. gen     ph = runiform(5.1, 7.8) in 1/150
(150 missing values generated)

. replace ph = runiform(5.3, 8)   in 151/300
(150 real changes made)

. gen y      = 41.55 + 5.185*ph   + rnormal(0, .25)  in 1/150
(150 missing values generated)

. replace y  = 65.14 + 1.48148*ph + rnormal(0, 0.25) in 151/300
(150 real changes made)

. 
. /* 2 Component FMM */
. fmm 2, nolog: regress y ph

Finite mixture model                            Number of obs     =        300
Log likelihood =  -194.5215

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.Class      |  (base outcome)
-------------+----------------------------------------------------------------
2.Class      |
       _cons |   .0034359   .1220066     0.03   0.978    -.2356927    .2425645
------------------------------------------------------------------------------

Class          : 1
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   5.173137   .0251922   205.35   0.000     5.123761    5.222513
       _cons |     41.654   .1622011   256.80   0.000      41.3361    41.97191
-------------+----------------------------------------------------------------
     var(e.y)|   .0619599   .0076322                      .0486698     .078879
------------------------------------------------------------------------------

Class          : 2
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.486062    .026488    56.10   0.000     1.434147    1.537978
       _cons |   65.10664   .1789922   363.74   0.000     64.75582    65.45746
-------------+----------------------------------------------------------------
     var(e.y)|   .0630583   .0075271                      .0499042    .0796797
------------------------------------------------------------------------------

. estat lcprob

Latent class marginal probabilities             Number of obs     =        300

--------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
       Class |
          1  |    .499141   .0305016      .4396545    .5586519
          2  |    .500859   .0305016      .4413481    .5603455
--------------------------------------------------------------

. estat ic

Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |        Obs  ll(null)  ll(model)      df         AIC        BIC
-------------+---------------------------------------------------------------
           . |        300         .  -194.5215       7     403.043   428.9695
-----------------------------------------------------------------------------
               Note: N=Obs used in calculating BIC; see [R] BIC note.

. 
. /* 3 Component FMM */
. fmm 3, nolog: regress y ph

Finite mixture model                            Number of obs     =        300
Log likelihood =  -187.4824

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.Class      |  (base outcome)
-------------+----------------------------------------------------------------
2.Class      |
       _cons |  -.0312504    .123099    -0.25   0.800    -.2725199    .2100192
-------------+----------------------------------------------------------------
3.Class      |
       _cons |  -3.553227   .5246159    -6.77   0.000    -4.581456   -2.524999
------------------------------------------------------------------------------

Class          : 1
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   5.173077   .0252246   205.08   0.000     5.123637    5.222516
       _cons |   41.65412     .16241   256.48   0.000      41.3358    41.97243
-------------+----------------------------------------------------------------
     var(e.y)|   .0621157   .0076595                      .0487797    .0790975
------------------------------------------------------------------------------

Class          : 2
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.476049   .0257958    57.22   0.000      1.42549    1.526608
       _cons |   65.18698   .1745018   373.56   0.000     64.84496    65.52899
-------------+----------------------------------------------------------------
     var(e.y)|   .0578413   .0070774                      .0455078    .0735173
------------------------------------------------------------------------------

Class          : 3
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.776746   .0020074   885.09   0.000     1.772811     1.78068
       _cons |   62.76633   .0134072  4681.54   0.000     62.74005    62.79261
-------------+----------------------------------------------------------------
     var(e.y)|   9.36e-06   6.85e-06                      2.23e-06    .0000392
------------------------------------------------------------------------------

. estat lcprob

Latent class marginal probabilities             Number of obs     =        300

--------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
       Class |
          1  |   .5005343   .0304855      .4410591    .5599944
          2  |   .4851343   .0306119      .4256343    .5450587
          3  |   .0143313   .0073775      .0051968     .038894
--------------------------------------------------------------

. estat ic

Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |        Obs  ll(null)  ll(model)      df         AIC        BIC
-------------+---------------------------------------------------------------
           . |        300         .  -187.4824      11    396.9648   437.7064
-----------------------------------------------------------------------------
               Note: N=Obs used in calculating BIC; see [R] BIC note.

. 
. /* 4 Component FMM */
. fmm 4, nolog: regress y ph

Finite mixture model                            Number of obs     =        300
Log likelihood = -188.06042

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
1.Class      |  (base outcome)
-------------+----------------------------------------------------------------
2.Class      |
       _cons |  -.6450345   .5853396    -1.10   0.270    -1.792279      .50221
-------------+----------------------------------------------------------------
3.Class      |
       _cons |  -.8026907   .6794755    -1.18   0.237    -2.134438    .5290568
-------------+----------------------------------------------------------------
4.Class      |
       _cons |  -3.484714   .5548643    -6.28   0.000    -4.572229     -2.3972
------------------------------------------------------------------------------

Class          : 1
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   5.173031   .0251474   205.71   0.000     5.123743    5.222319
       _cons |   41.65574    .161938   257.23   0.000     41.33835    41.97313
-------------+----------------------------------------------------------------
     var(e.y)|   .0617238   .0076596                      .0483975    .0787195
------------------------------------------------------------------------------

Class          : 2
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.503764   .0371216    40.51   0.000     1.431007    1.576521
       _cons |   65.13498   .2666049   244.31   0.000     64.61244    65.65751
-------------+----------------------------------------------------------------
     var(e.y)|   .0387473   .0188853                      .0149062    .1007195
------------------------------------------------------------------------------

Class          : 3
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.441334   .0443892    32.47   0.000     1.354333    1.528335
       _cons |   65.26791   .2765801   235.98   0.000     64.72582       65.81
-------------+----------------------------------------------------------------
     var(e.y)|   .0307352    .010982                      .0152578    .0619127
------------------------------------------------------------------------------

Class          : 4
Response       : y
Model          : regress

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
y            |
          ph |   1.665207   .0079194   210.27   0.000     1.649685    1.680728
       _cons |   63.42577   .0510052  1243.52   0.000      63.3258    63.52573
-------------+----------------------------------------------------------------
     var(e.y)|    .000096   .0000769                        .00002    .0004611
------------------------------------------------------------------------------

. estat lcprob

Latent class marginal probabilities             Number of obs     =        300

--------------------------------------------------------------
             |            Delta-method
             |     Margin   Std. Err.     [95% Conf. Interval]
-------------+------------------------------------------------
       Class |
          1  |   .4991443   .0304808      .4396979     .558615
          2  |   .2618733   .1506066      .0715338    .6203076
          3  |   .2236773    .150279      .0501835    .6110804
          4  |    .015305    .008329       .005234    .0438994
--------------------------------------------------------------

. estat ic

Akaike's information criterion and Bayesian information criterion

-----------------------------------------------------------------------------
       Model |        Obs  ll(null)  ll(model)      df         AIC        BIC
-------------+---------------------------------------------------------------
           . |        300         .  -188.0604      15    406.1208   461.6776
-----------------------------------------------------------------------------
               Note: N=Obs used in calculating BIC; see [R] BIC note.

Grazie per questa risposta molto interessante. Mi hai dato alcuni nuovi concetti da ricercare!
SlowMagic

0

Mi concentrerò sulla questione del significato statistico poiché Dason ha già trattato la parte relativa alla modellazione.

Non ho familiarità con alcun test formale per questo (che sono sicuro che esista), quindi lancerò alcune idee là fuori (e probabilmente aggiungerò il codice R e i dettagli tecnici in seguito).

Innanzitutto, è conveniente dedurre le classi. Supponendo che abbiate due linee adatte ai dati, potete ricostruire approssimativamente le due classi assegnando ciascun punto alla classe della linea più vicina ad essa. Per i punti vicino all'intersezione, ti imbatterai in problemi, ma per ora basta ignorarli (potrebbe esserci un modo per aggirare questo, ma per ora spero solo che questo non cambierà molto).

xlxrxlxrxlxr

Poi ci sono due modi naturali che vedo per fare questo.

Il modo meno divertente è semplicemente eseguire il set di dati originale combinato con le etichette di classe inferite attraverso una regressione lineare come nella risposta di Demetri.

Un modo più interessante per farlo sarebbe attraverso una versione modificata di ANOVA. Il punto è creare un set di dati artificiale che rappresenti le due linee (con una diffusione simile tra loro) e quindi applicare ANOVA. Tecnicamente, devi farlo una volta per il lato sinistro e una per il lato destro (cioè avrai due set di dati artificiali).

y1(i)=β1,1x1(i)+β1,0+e1(i)
β1,1x1(i)+β1,0
β1,1xavg+β1,0
xlavgxy1(i)
y~1(i)=β1,1xavg+β1,0+e1(i),
y~1(i)y~2(i)

N


-2

È possibile che includere entrambi nella stessa tabella sia un errore? Dato che le varietà si comportano in modo completamente diverso, c'è qualche valore nel sovrapporre i dati? Mi sembra che tu stia cercando impatti su una specie di narciso, non gli impatti di ambienti simili su narcisi diversi. Se hai perso i dati che aiutano a determinare la specie "A" dalla specie "B", puoi semplicemente raggruppare il comportamento "A" e il comportamento "B" e includere la scoperta di due specie nella tua narrativa. Oppure, se vuoi davvero un grafico, usa semplicemente due set di dati sullo stesso asse. Non ho nessuna esperienza vicino alle competenze che vedo nelle altre risposte fornite, quindi devo trovare metodi meno "qualificati". Vorrei eseguire un'analisi dei dati in un ambiente di foglio di lavoro in cui le equazioni sono più facili da sviluppare. Poi, una volta che i raggruppamenti diventano evidenti, creare le due tabelle di dati separate seguite da convertirle in diagrammi / grafici. Lavoro con una grande quantità di dati e trovo spesso che le mie ipotesi di correlazioni diverse risultino errate; questo è ciò che i dati dovrebbero aiutarci a scoprire. Una volta appreso che i miei presupposti sono sbagliati, visualizzo i dati in base ai comportamenti scoperti e discuto quei comportamenti e le risultanti analisi statistiche come parte della narrazione.


1
Immagino che tu sia stato sottoposto a downgrade perché la tua risposta non fornisce chiarezza o intuizione in risposta alla domanda. Devi strutturare la tua risposta in modo più utile e chiarire quali sotto-domande affronti in ogni punto. La domanda è stata aggiornata tra le risposte e prima della risposta per indicare chiaramente che le informazioni sulla varietà non erano disponibili non recuperabili.
Rinnova il

2
Benvenuto in Cross Validated! Per favore, non essere scoraggiato dal fatto che la tua prima risposta non sia stata ben accolta - e le soluzioni più semplici possono essere molto utili - ma poiché l'interrogante afferma già "Posso osservarlo e separarlo manualmente, ovviamente", non sembra aggiungere molto.
Scortchi - Ripristina Monica
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.