Verwendung von Teilmessungen der Ausgangsvariablen bei der Modellierung

7

Meine Frage ist: Wie können wir teilweise gemessene Ausgabedaten in einem Trainingssatz verwenden? Das ist vage, also konkretisiere ich es in einer skurrilen Geschichte.

Eichhörnchen haben Nüsse, aber wie viele?

Installieren

Es gibt eine Reihe von Eichhörnchen und eine Reihe von Bäumen im Wald. Eichhörnchen hat Muttern. Eichhörnchen lagern ihre Nüsse in einem Baum oder in vielen verschiedenen Bäumen im Wald. Wir möchten vorhersagen, wie viele Nüsse ein bestimmtes Eichhörnchen aus Eingabemerkmalen gesammelt hat: Eichhörnchengewicht und Wangenkapazität.STsiSniN

Forschungsphase 1:

Wir haben eine Untergruppe von Eichhörnchen überwacht. Nahm ihre Messungen (Gewicht und Wangenkapazität) und zählte

  1. wie viele Nüsse sie gesammelt haben und
  2. in wie vielen Bäumen haben sie sie gelagert

(zB Eichhörnchen Nr. 55 lagerte 5 Nüsse in einem Baum, 10 Nüsse in einem anderen und 500 Nüsse in einem anderen [welche 3 Bäume unbekannt sind])

Forschungsphase 2:

Wir haben eine Untergruppe von Bäumen überwacht. Als ein Eichhörnchen an einem unserer Bäume ankam, identifizierten wir sie (um zu wissen, ob sie später zu einem anderen Baum in unserer Studienuntergruppe gingen), maßen sie (Gewicht und Wangenkapazität) und zählten, wie viele Nüsse sie abfielen. Dies gab uns eine Teilmessung der Nusssammlung für eine Untergruppe von Eichhörnchen.

(zB in Baum Nr. 23 haben wir 10 Nüsse von Eichhörnchen Nr. 99 und 50 von Eichhörnchen Nr. 88 gesammelt, in Baum Nr. 24 haben wir gesammelt ...)

(Wichtiger Hinweis: Eichhörnchen-IDs bleiben nicht über Phasen hinweg bestehen.)

Frage

Angenommen, wir möchten die Anzahl der Gesamtmuttern eines Eichhörnchens aus Phase 2 modellieren. Wie können wir ihre Teilmutternmessungen verwenden, um die Modellierungsergebnisse zu verbessern?

Wie können wir außerdem teilweise gemessene Ergebnisse in das Trainingsset einbringen?

colorlace
quelle
Kennen Sie die Anzahl der Bäume, bei denen sie in Phase 2 gefangen wurden?
Tomka
2
Und in Phase 1: Kennen Sie nur die Gesamtzahl der gesammelten Nüsse oder kennen Sie diese pro Baum? (ZB Eichhörnchen 1 hat 5 Nüsse von Baum 1, 3 Nüsse von Baum 2 und 10 Nüsse von Baum 3 gesammelt; Squurrel 2 hat 7 Nüsse von (einem anderen) Baum 1 usw. gesammelt.
Tomka
Welcher Bruchteil der Gesamtmenge ist die Teilmenge der Bäume aus Phase 2? (Wenn dieser Bruchteil groß ist, können Sie die Gesamtzahl der von einem Eichhörnchen gesammelten Nüsse auf der Grundlage der Teilmenge der Nüsse geteilt durch diesen Bruchteil vernünftigerweise schätzen.)
Sextus Empiricus
Bitte seien Sie genauer, wissen Sie, wie viele Nüsse sie in Phase 1 oder 2 oder in beiden Bäumen gespeichert haben?
Tomka
1
Interessante Frage. Zufälligerweise kam in dem Moment, als ich auf diesen Link klickte, ein Eichhörnchen, um ein paar Nüsse zu essen, die für ihn in meinem Garten verstreut waren! Phase 1 ist im Gange ...
user20160

Antworten:

3

Lustige Frage. Das von @MartijnWeterings festgestellte Hauptproblem besteht darin, dass die Anzahl der Bäume in Phase 2 nur eine Teilmessung der Gesamtzahl der Bäume ist. Wenn wir jedoch die Gesamtzahl der Bäume kennen würden, könnten wir das Problem lösen, indem wir ein Modell der Anzahl der in Stufe 1 beobachteten Nüsse unter Berücksichtigung der Anzahl der Bäume in Stufe 1 erstellen und dann die Anzahl der Nüsse in Stufe 2 unter Verwendung der vorhersagen Anzahl der Bäume in Stufe 2. Unsere Strategie in dieser Antwort besteht daher darin, zuerst die Anzahl der Bäume in Stufe 2 zu schätzen und dann ein Modell der Nüsse zu erstellen, denen Bäume in Stufe 1 gegeben wurden.

Notation und Annahme

Im Folgenden gehe ich davon aus, dass die Stichprobe von Bäumen und Eichhörnchen in allen Phasen zufällig ist. Lassen bezeichnet die Summe aller Nüsse von Eichhörnchen gesammelt in Phase 1. Sei die Gesamtzahl der Bäume bezeichnen Eichhörnchen an in Phase 1. Es sei Nuss gespeichert bezeichnet die unbeobachtete Summe von Nüssen gesammelt durch Eichhörnchen in Phase 2 und sei die Anzahl der Bäume, in denen Eichhörnchen Nüsse in Phase 2 gespeichert hat. Schließlich sei die teilweise Anzahl der beobachteten Bäume, wobei ,n1iit1iin2jjt2jjk2jk2jt2j

Anzahl der Bäume in Stufe 2

Wie von @MartijnWeterings festgestellt, ist immer kleiner oder gleich der Gesamtzahl der Bäume in Phase 2, was unbekannt ist. Unser Ziel ist es daher, so genau wie möglich zu schätzen . Glücklicherweise haben wir einige Informationen zu . Abhängig von Ihrem Stichprobenentwurf in Phase 2 besteht eine Wahrscheinlichkeit dass ein Eichhörnchen an einem der insgesamt von ihm besuchten gefangen wird . Die Wahrscheinlichkeit von ist somit mit den Parametern und binomisch . Wir beobachten jedoch das Binomial ; die Anzahl der Bäumek2jt2jt2jt2jpt2jk2jt2jpk2jt2jist jedoch bei nicht binomial verteilt . Ich war mir über die genaue Verteilung nicht sicher und stellte daher auf Mathematics-StackExchange eine Frage dazu . Ich erhielt die nützliche Antwort, dass die Wahrscheinlichkeitsmassenfunktion von mit und gegeben ist durch für alle die die Erwartung . Wenn wir also und , könnten wir schätzen . Wie gesagt, Wahrscheinlichkeitk2jt=t2jk=k2jp

P(t;k,p)=(t1k)pt(1p)(tk),t{k,...,}.
jE(t)=k/pk2jpt^2j=k2j/pphängt von Ihrem Stichprobendesign ab, aber zum Glück können wir es aus den Daten als so dass .
p^=jk2jit1i
t^2j=k2j/p^

Schätzung unter Proportionalitätsannahme

Lassen

π=1#S1in1it1i

ist der durchschnittliche Anteil der Nüsse, die ein Eichhörnchen an einem Baum hinterlassen hat. Eine erste Schätzung der Gesamtzahl der Nüsse des Eichhörnchens istj

n^2j=πt^2j.

Schätzung anhand der Beziehung zwischen Nüssen und Bäumen in Phase 1

Dies mag unbefriedigend erscheinen, da nicht berücksichtigt wird, dass zwischen und andere Beziehung als eine einfache proportionale besteht. Zum Beispiel können wir uns Eichhörnchen vorstellen, die das seltsame Verhalten haben, weniger Nüsse pro Baum zu hinterlassen, je mehr Nüsse ihnen zur Verfügung stehen. Dann würde die Gesamtzahl der Nüsse mit nicht proportional zunehmen und stattdessen abflachen. Daher könnten wir uns für ein Modell entscheidenntnt

n1i=f(t1i,θ)+ϵi

Dabei ist eine nichtlineare Funktion mit den Parametern Theta und ein Messfehlerterm. Eine naheliegende Wahl könnte seinfϵi

n1i=θ0+θ1log(t1i)+ϵi

mit iid normal mit 0 Erwartung. Das Modell könnte durch nichtlineare kleinste Quadrate oder maximale Wahrscheinlichkeit angepasst werden. Ein Schätzer wäre dannϵi

n^2j=θ0^+θ1^log(t^2j)

Natürlich können auch andere funktionale Formen verwendet werden oder Sie können flexible Modellierungstechniken verwenden, um die funktionale Beziehung zu approximieren, z. B. zufällige Wälder (Wortspiel beabsichtigt).

Simulationen

Funktioniert das? Lass es uns versuchen. Ich simuliere Daten Rgemäß den folgenden Ideen. Die Wahrscheinlichkeit, dass ein Eichhörnchen Nüsse sammelt, ist durch . Ein Eichhörnchen kommt dann am ersten Baum an und versteckt Nüsse, wobei und . Es versteckt sich weiterhin bei Nüssen, bis es am Baum ankommt und Nüsse mehr hat. Dies geschieht unabhängig davon, ob Sie es in Phase 1 oder 2 beobachten. In Phase 1 beobachten Sie jedoch alle , während Sie in Phase 2 eine Stichprobe aus n+1nPoisson(20)h1+1h1Poisson(λ)λΓ(60/n,1)1+(h2,...,ht)tht{h1,...,ht}. Wie gesagt, ich davon aus, dass Sie in Phase 2 eine einfache Zufallsstichprobe von Bäumen haben und daher (den von Eichhörnchen j besuchten k-ten Baum) mit der Wahrscheinlichkeit (unten im Code, den ich diese Kürzung nenne) beobachten.hkjp

Ich probiere jetzt 1000 Eichhörnchen in Phase 1. Die folgende Darstellung zeigt die Beziehung zwischen der Gesamtzahl der Bäume und der Gesamtzahl der gesammelten Nüsse. Es ist ersichtlich, dass es in dieser Beziehung über einen Zerfall gibt .t

Geben Sie hier die Bildbeschreibung ein

Ich probiere jetzt in Stufe 2 mit und betrachte drei Schätzer. Zuerst der Schätzer unter Verhältnismäßigkeit. Zweitens erstelle ich einen Schätzer, der das bedingte Mittel von auf jeder beobachteten Ebene von als Schätzung für bei . Für das Benchmarking verwende ich erneut das bedingte Mittel von auf jeder beobachteten Ebene von als Schätzung für , jetzt jedoch für die wahre Anzahl der Bäume in Phase 2. Dieser Schätzer ist in der Praxis natürlich nicht verfügbar.p=0.5n1t1n2t^2n1t1n2t2

Für zwei Stichproben, jeweils eine aus Phase 1 bzw. 2, und die drei Schätzer I kommen zu den folgenden Verzerrungen: 5,61, -0,19 und 0,24. Weiterhin beobachten wir die folgenden quadratischen Mittelwertfehler: 15.3, 4.07, 3.32. Wir sehen, dass der bedingte Mittelwertschätzer mit einer angepassten Schätzung für die Anzahl der Bäume in Phase 2 fast so gut funktioniert wie der Schätzer unter Verwendung der unbekannten wahren Anzahl von Bäumen in Phase 2. Der verbleibende Fehler ist die Varianz, die möglicherweise etwas reduziert werden kann weiter durch Verwendung eines besseren Modells für bei als das nichtparametrische bedingte Mittelwertmodell.n1t1


Hier ist eine Funktion, die die Daten für die von mir erstellte Simulation erstellt.

# A squirrel collects nuts
squirrel_set = function(n, trunc= FALSE){
  nuts = rpois(n, 20) + 1
  nut_seq = list()
  for(i in 1:n){
    j = 1
    nuts_left = nuts[i]
    nuts_hidden = numeric()
    # squirrel hides nuts at tree j
    while(nuts_left>0){
      if(j  == 1) {lambda = rgamma(1,60/nuts_left,1) } 
      if(lambda < 1){ lambda = 1}
      nuts_hidden[j]  = rpois(1, lambda) + 1
      if(nuts_left - nuts_hidden[j] <0){
        nuts_hidden[j] = nuts_left
        nuts_left = 0
      }
      else{ nuts_left =  nuts_left - nuts_hidden[j] }
      j = j+1
    }
    nut_seq[[i]] = nuts_hidden
  } 
  # Truncated sample
  # A squirrel is caught with probability .5 at a tree 
  # (or a random half of the trees are observed and a squirrel is always caught)
  if(trunc == TRUE){
    trees = sapply(nut_seq , length)
    nut_seq_obs = list()
    for(i in 1:length(nut_seq)){
      caught = rbinom(trees[i],1,.5)
      nut_seq_obs[[i]] = nut_seq[[i]][as.logical(caught)]
    }
    return( list(nut_seq,nut_seq_obs) )
  }
  else{
    return(nut_seq)
  }
}

Und hier der in der Analyse verwendete Code:

set.seed(12345)
n = 1000
# Phase 1
nut_seq1 = squirrel_set(n)

# Phase 2
nut_seq2 = squirrel_set(n, trunc = TRUE)
nut_seq2_true = nut_seq2[[1]]
nut_seq2_trunc = nut_seq2[[2]]

# Trees and nuts at phases 1 and 2
t1  = sapply(nut_seq1,length, simplify = TRUE) # Trees seen at phase 1

k   = sapply(nut_seq2_trunc , length) # Trees seen at phase 2
nut_seq2_trunc = nut_seq2_trunc[k>0] # Squirrels with k=0 have avtually not been observed
nut_seq2_true = nut_seq2_true[k>0]
k   = k[k>0]
n1  = sapply(nut_seq1,sum, simplify = TRUE) # Trees seen at phase 1
n2  = sapply(nut_seq2_true,sum, simplify = TRUE) # Trees at phase 2 (unobserved)
t2  = sapply(nut_seq2_true,length, simplify = TRUE) # Trees at phase 2 (unobserved)

# Plot
plot( t1, n1, xlab='Trees at phase 1', ylab='Total number of nuts at phase 1')
mnuts = numeric()
for(i in 1:max(t1)){
  mnuts[i] = mean(n1[t1 == i])
}
lines( 1:max(t1), mnuts, col=2)
legend("bottomright",lty=1, lwd=2, col='2', legend='Conditional mean')

# Estimators
p           = sum(k) / sum(t1) # Estimate of observational probability at phase 2
t2_est      = k/p  # Estimate of total number of trees for each squirrel at phase 2

n2_prop_est = t2_est * mean(sapply(n1,sum, simplify = TRUE)/t1 )  # proportionality

mnuts = numeric()
for(i in 1:max(t1)){
  mnuts[i] = mean(n1[t1 == i]) # Conditional mean at each level of trees at phase 1
}
n2_regest = mnuts[round(t2_est)] # Non-parametric regression estimate of n2
n2_regest_truet2 = mnuts[t2] 

# Bias and Variance
mean( n2_prop_est - n2)
sqrt(mean( (n2_prop_est - n2)^2 ))

mean( n2_regest - n2 , na.rm=TRUE)
sqrt(mean( (n2_regest - n2)^2 , na.rm=TRUE))

mean( n2_regest_truet2 - n2 , na.rm=TRUE)
sqrt(mean( (n2_regest_truet2 - n2)^2 , na.rm=TRUE))
Tomka
quelle
2
Dies ist eine sehr gut geschriebene Antwort, und die Verwendung von Phase 1, um eine Beziehung zwischen und scheint der Weg zu sein. Aber das Problem ist nicht so leicht zu lösen. Das in Phase 2 ist etwas anderes . Es basiert auf Messungen aus einer Teilmenge . Wenn man Glück hat, gibt es einen klaren Zusammenhang zwischen der Anzahl der Nüsse insgesamt und der Anzahl der Nüsse pro Baum. Da diese 'Anzahl der Nüsse pro Baum' in Phase 2 vernünftigerweise geschätzt werden kann.n1it1it2i
Sextus Empiricus
Ihre Nachdenklichkeit und Wortspiele werden geschätzt, und ich mag auch die Idee, Beziehungen zwischen der Anzahl der Nüsse und der Anzahl der Bäume zu finden. @MartijnWeterings ist jedoch korrekt. Eichhörnchen j lagerte Nüsse an mindestens t2j Bäumen. Sie scheinen dies in Ihrem veralteten Entwurf mit "Wir könnten jetzt Phase 1 nur auf die Eichhörnchen betrachten, die Nüsse bei der gleichen Anzahl von Bäumen oder mehr gelagert haben" anzusprechen . Ich finde diese Idee wirklich cool! Es sieht so aus, als würden Sie Teilmutternmessungen mit den Gesamtmutternmessungen simulieren. Hier gingen meine Gedanken hin.
Colorlace
@ Timwiz Danke. Sie und MartijnWeterings haben Recht, dies ist immer noch ein Problem im Regressions- / tn-Modellierungsansatz. Ich habe jedoch eine Idee, wie ich das Problem beheben kann, da ich glaube, dass wir die Wahrscheinlichkeit abschätzen können, dass das Eichhörnchen insgesamt Bäume besucht hat, wenn wir es bei Bäumen gesehen haben. Was die veraltete Idee betrifft: Ja, genau das hatte ich mir vorgestellt. Ich werde zuerst versuchen, den Regressionsansatz zu korrigieren und dann weiter über diese Idee nachzudenken. T2t2j
Tomka
1
@timwiz Ich habe meine Antwort vollständig überarbeitet, um die unbekannte Anzahl von Bäumen in Phase 2 zu berücksichtigen. Ich habe eine Simulation hinzugefügt, die ihre Leistung demonstriert. Ich habe mir auch den Bootstrap-Schätzer angesehen, den ich in einer früheren Version dieser Antwort in der hier nicht gezeigten Arbeit besprochen habe. Dieser Schätzer hatte jedoch eine schlechtere Leistung als der Schätzer, über den ich berichte, und ich diskutiere ihn daher hier nicht (die Antwort ist bereits ziemlich lang und ich wollte den relevanten Befund melden).
Tomka
@timwiz Fehlt etwas in der Antwort oder in offenen Fragen?
Tomka
2

In Phase 1 könnten Sie ein Modell erstellen, das das Verhalten eines Eichhörnchens mit der Gesamtzahl der Nüsse in Beziehung setzt.

In Phase 2 beobachten Sie nicht genau die gleichen vollständigen Informationen wie in Phase 1. Beispielsweise wissen Sie nicht, wie viele Bäume insgesamt von einem bestimmten Eichhörnchen verwendet werden. Sie beobachten jedoch einige Verhaltensweisen des Squirels, nämlich eine Stichprobe aus der Verteilung der Anzahl der Nüsse pro Baum. Daraus können Sie die Verteilung abschätzen und die Parameter, die die Verteilung beschreiben, können für das Modell eingegeben werden.

  • In Phase 1 erstellen Sie also ein Modell, das die Gesamtzahl der Nüsse, die ein Eichhörnchen speichert, mit der Verteilung der Nüsse pro Baum für das Eichhörnchen in Beziehung setzt. Wie genau dies zu modellieren ist, ist schwer zu sagen.

    Wenn Sie der Meinung sind, dass Sie ein mechanistisches Modell erstellen könnten, könnten Sie mit einer explorativen Analyse und früheren Einsichten über das Verhalten von Eichhörnchen beginnen, um eine Vorstellung von einem nützlichen Modell zu erhalten. Mir fehlen die Daten und das biologische Wissen, um dies in dieser Antwort zu tun (Eine offensichtliche Richtung könnte sein, zu sehen, ob mehr Nüsse pro Baum auch insgesamt mehr Nüsse betreffen, und möglicherweise hat dies eine komplexere Beziehung zum Eichhörnchengewicht und Wange und andere Faktoren, wie eine hohe Variation der Nüsse pro Baum, können dazu beitragen, auch einen Hinweis auf die Gesamtzahl der von einem Eichhörnchen verwendeten Bäume zu erhalten.

  • In Phase 2 werden Sie eine Schätzung der Parameter vornehmen, die erforderlich sind, um Vorhersagen mit dem in Phase 1 erstellten Modell zu treffen. Die Parameter, die die Verteilung für die Anzahl der Nüsse pro Baum beschreiben, können aus der am gemessenen Stichprobe geschätzt werden Teilmenge der Bäume.

    Eine einfache Möglichkeit wäre, die Baum-IDs zu ignorieren und einfach die Daten pro Eichhörnchen zu verwenden, um die Verteilungsparameter zu schätzen und sie ab Phase 1 in das Modell einzufügen.

    Ein genaueres Modell würde die Baum-IDs als Zufallsfaktor behandeln, so dass das Verhalten, das speziell dem Eichhörnchen zugeschrieben wird, besser geschätzt werden kann. Um die Bäume als Zufallsfaktor zu behandeln, müssen Sie wissen, wie die Bäume ein Zufallsfaktor sein können. Sie können eine fundierte Vermutung anstellen, aber Sie können auch versuchen, dies aus den Daten zu lernen (ich würde sagen, zuerst mit einer explorativen Analyse, indem Sie die Korrelation zwischen einem Baum und der Anzahl der darin gespeicherten Nüsse pro Eichhörnchen überprüfen und ob dieser Effekt unabhängig ist oder ob einige Bäume eine bestimmte Art von Eichhörnchen anziehen, bevor sie sich etwas Quantitatives einfallen lassen.). In Phase 1 beobachten Sie keine Informationen zu den Baum-IDs, in Phase 2 jedoch und können diese Daten verwenden.

Also auf den Punkt gebracht. Ich denke, Sie benötigen eine explorative Analyse, bevor Sie tatsächlich etwas Quantitatives tun können, das mehr als der einfache Ansatz ist (einfach ignoriert die Baum-IDs in Phase 2 und verwendet nur einfache Verteilungsparameter als Eingabe für das Modell, dessen Koeffizienten in Phase 1 gelernt werden). .


Wie können wir außerdem teilweise gemessene Ergebnisse in das Trainingsset einbringen?

Wenn Sie das Modell in 1 erstellen, indem Sie Parameter verwenden, die die Verteilung der Nüsse pro Baum für ein bestimmtes Eichhörnchen beschreiben, müssen Sie berücksichtigen, dass es möglich sein muss, diese Zahlen in Phase 2 angemessen zu schätzen, und dass Fehler das Modell nicht beeinflussen zu viel. Zum Beispiel könnten Mittelwert und Varianz (oder andere einfache Statistiken) aus den Stichproben in Phase 2 vernünftigerweise geschätzt werden (vorausgesetzt, Ihre Stichprobe ist nicht zu klein), Momente höherer Ordnung jedoch möglicherweise nicht.

Sextus Empiricus
quelle