Hilfe beim Chi Quadrat Anpassungstest in R

Fragen, die sich auf kein spezielles Verfahren beziehen.

Hilfe beim Chi Quadrat Anpassungstest in R

Beitragvon phil.scholz » Mo 2. Feb 2015, 22:13

Hallo,

ich hoffe dass mir hier jemand weiterhelfen kann.

Ich versuche bei einem Vektor in R die einzelnen Werte auf eine Bedingung zu prüfen und diese dann zu verbinden.

Bsp:
Vektor1=c(1,2,3,4,5,6)

Jeder einzelne Werte soll nun auf die Bedingung größergleich Fünf geprüft werden.

Die Werte, welche die Bedingung nicht erfüllen, sollen mit dem nächsten Wert addiert werden

D.h. die 1 kann die Bedingung nicht erfüllen, da sie kleiner 5 ist, sie muss demzufolge mit der 2 addiert werden.

Der sich neu ergebene Wert (in dem Fall 3) muss nun wieder die Bedingung durchlaufen.

Da die 3 ebenfalls die Bedingung nicht erfüllt, muss auch diese mit dem nächsten Wert (hier 3) addiert werden.

Der sich nun ergebene Wert (1+2+3=6) erfüllt jetzt die Bedingung.

Jetzt soll der Code zur nächsten Stelle springen, welche nicht für die Summe von 6 genommen wurde (also zu 4).

Auch diese erfüllt die Bedingung nicht und muss daher mit der 5 addiert werden.

Ziel:
Vektor2=(6,9,6)

Alle Werte erfüllen jetzt die Bedingung.

Ich bete, dass mir hier weitergeholfen wird.

MfG
Philipp
phil.scholz
Grünschnabel
Grünschnabel
 
Beiträge: 2
Registriert: Mo 2. Feb 2015, 22:01
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Hilfe beim Chi Quadrat Anpassungstest in R

Beitragvon mango » Di 3. Feb 2015, 15:18

Hi,

ich kann dir keinen gültigen R-Code schreiben aber von der Logik her:

Code: Alles auswählen

if c[1]>=5 {
  d[1]=c[1]
  } else {
  if c[1]+c[2]>=5 {
    d[1]=c[1]+c[2]
    } else {
    if c[1]+c[2]+c[3]>=5 {
      d[1]=c[1]+c[2]+c[3]
      } else {
          ...
      }
    }
}



Vom Prinzip klar? Was Eleganteres fällt mir leider nicht ein, das werden viele Schleifen.
mango
Elite
Elite
 
Beiträge: 330
Registriert: Fr 2. Mai 2014, 16:55
Danke gegeben: 3
Danke bekommen: 55 mal in 55 Posts

Re: Hilfe beim Chi Quadrat Anpassungstest in R

Beitragvon phil.scholz » Di 3. Feb 2015, 16:54

wow danke Mango für die schnelle Antwort aber habe es nun auf diese Weise gelöst:

x <- c(5,3,6,1,2,4)
xs <- (x)
run <- xs
out <- NULL
while(length(run) > 0){
cs <- cumsum(run)
out <- c(out, cs[which(cs >= 5)[1]])
run <- run[which(cs >= 5)[-1]]
}
out


Hättest du noch eine Idee wie es gelingt einen zweiten Vektor entsprechend den neuen Intervallen auf die Länge des neuen Vektors zu reduzieren? Ich kann durch die unterschiedliche Länge der Vektoren nicht mehr mit ihnen rechnen.

Beispiel:

Erster Vektor aus welchem die Intervalle gebildet wurden

x <- c(5,3,6,1,2,4)
Vektor 1 wie bereits geschafft mit dem Code ergibt folgenden neuen Vektor c(8,6,7)


Zweiter Vektor mit den dazugehörigen Häufigkeiten der Stichprobe, soll nun die gleichen Stellen zusammenfassen wie der erste Vektor damit beide wieder die gleiche Länge haben

y<- c(8,2,7,1,2,7)

d.h. Vektor 2 soll abhängig von Vektor 1 zusammengefasst werden

wenn also bei Vektor 1 die Stellen 1 und 2 zusammengefasst werden, sollen auch bei Vektor 2 die Stellen 1 und 2 zusammengefasst werden.

als Ergebnis soll c(10, 7, 10) rauskommen


Bin für jede Hilfe dankbar.
MfG
Philipp
phil.scholz
Grünschnabel
Grünschnabel
 
Beiträge: 2
Registriert: Mo 2. Feb 2015, 22:01
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Hilfe beim Chi Quadrat Anpassungstest in R

Beitragvon bele » Mi 4. Feb 2015, 14:29

Hallo Phil,

phil.scholz hat geschrieben:Jeder einzelne Werte soll nun auf die Bedingung größergleich Fünf geprüft werden.

und
phil.scholz hat geschrieben:x <- c(5,3,6,1,2,4)
Vektor 1 wie bereits geschafft mit dem Code ergibt folgenden neuen Vektor c(8,6,7)

passt für mich nicht. 5 ist größergleich 4 und daher hätte ich als Ergebnis nicht c(8,6,7) sondern c(5,9,7) erwartet. Denkfehler, Tippfehler oder veränderte Aufgabenstellung? Ist Dein Code so in Ordnung oder

phil.scholz hat geschrieben:Zweiter Vektor mit den dazugehörigen Häufigkeiten der Stichprobe, soll nun die gleichen Stellen zusammenfassen wie der erste Vektor damit beide wieder die gleiche Länge haben

Ab ungefähr hier verstehe ich nicht mehr, was Du machen willst. Vielleicht müsste ich mir hier noch mehr Mühe geben, aber vielleicht wäre es einfacher wenn du mal beschreibst, was Du im Gesamtbild erreichen willst. Was ist die Aufgabenstellung, welche Rechnungen erfolgen vorher und welche nachher. Möglicherweise willst Du ja in zwei Schritten machen, was sich leichter in einem Schritt machen lässt? Als zweites könnte es helfen, wenn Du noch zwei Beispiele mit richtigen Lösungen postest, damit man sehen kann, ob man Dich richtig verstanden hat.

Als letztes würde ich Dir gerne noch [code ]-Tags ans Herz legen.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5928
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1403 mal in 1389 Posts

Re: Hilfe beim Chi Quadrat Anpassungstest in R

Beitragvon bele » Mi 4. Feb 2015, 16:30

Hallo,

ich nochmal!

Was die Codierung in R angeht habe ich jetzt gesehen, dass Du das hier schon diskutierst:
http://forum.r-statistik.de/viewtopic.php?f=27&t=6311

"habe es nun auf diese Weise gelöst" ist natürlich eine ziemliche freche Form von "Eduard im anderen Forum hat folgendes programmiert", aber der wird es Dir nicht übel nehmen. Ansonsten hat EDi den Fehler in Deinem Beispiel schon 3 Stunden vor mir entdeckt - hätte ich mir ja keine Gedanken mehr drüber machen müssen. Ich schlage vor, Du diskutierst im R-Forum die Programmierung Deiner Funktion, und wenn Du irgendwann beschreiben willst, was das mit einem Chi-Quadrat-Anpassungstest zu tun hat, dann hier.

Grüße,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5928
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1403 mal in 1389 Posts


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 7 Gäste

cron