Stückweise definierte Variable definieren

Fragen zu Stata Syntax und Do-Files.

Stückweise definierte Variable definieren

Beitragvon vermont » So 9. Jun 2013, 16:33

Hallo liebe Stata-Begeisterte!

Ich bin ein relativer Anfänger in STATA und scheitere gerade an einem wahrscheinlich leicht zu lösenden Problem. Ich habe bereits in der STATA-Hilfe nachgeschaut, aber fand dort nicht das Richtige.
Es geht konkret um die Zuzahlung, die ein Patient für Arzneimittel zahlen muss. z sei die Variable, die ich generieren möchte, also die zu leistende Zuzahlung. p sei der Preis des Medikaments. z soll nun wie folgt definiert sein:

z =
5 wenn p<50,
0,1*p wenn 50<=p<=100,
10 wenn p>100.

Der Patient muss also immer mindestens 5€ zahlen, maximal jedoch 10€. Kostet das Medikament zwischen 50€ und 100€, dann muss er immer 10% des Preises zahlen.

Kann es sein, dass man dafür den egen-Befehl verwenden muss zusammen mit replace? Meine bisherigen Versuche scheiterten jedoch...

Vielen Dank schonmal!
vermont
 
Beiträge: 11
Registriert: So 9. Jun 2013, 15:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stückweise definierte Variable definieren

Beitragvon daniel » So 9. Jun 2013, 16:52

Für den Anfang kannst Du das Schritt für Schritt machen

Code: Alles auswählen
g z = .
replace z = 5 if (p < 50)
replace z = 0.1 * p  if (p >= 50) & (p <= 100)
replace z = 10 if (p > 100)
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stückweise definierte Variable definieren

Beitragvon vermont » Di 11. Jun 2013, 11:22

Hat sehr gut geklappt! Vielen Dank! ;)

Um nicht extra einen neuen Thread zu eröffnen, hätte ich noch kurz eine Frage zur Erstellung von Kreuztabellen mit Intervallen.
Ich arbeite gerade mit einem sehr großen Datensatz und wenn ich eine herkämmliche Kreuztabelle zweier Variablen machen möchte a la "ta var1 var2" sagt Stata natürlich, es seien zu viele Werte.
Gibt es eine Möglichkeit, wie bei der Erstellung eines Histogramms, Intervalle zu definieren? Z. B. wenn ich jetzt nähme : ta Zuzahlung Firmentyp, dass ich die Zuzahlung in folgende Intervalle einteilen kann: 5€, 5€-10€, 10€ und übr 10€?

Vielen Dank!
vermont
 
Beiträge: 11
Registriert: So 9. Jun 2013, 15:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stückweise definierte Variable definieren

Beitragvon daniel » Di 11. Jun 2013, 11:52

-tabulate- gibt nur (verarbeitete) werte aus. Intervalle musst Du zuvor "per Hand" bilden (vgl. -help recode-).

Es darf aber die Frage gestellt werden, ob eine Kreuztabelle in diesem Fall dann wirklich sinnvoll ist, oder ob sich eine andree Darstellung besser für das Problem eignet.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stückweise definierte Variable definieren

Beitragvon vermont » Mi 12. Jun 2013, 12:35

Bei zu vielen Einzelwerten ist eine grafische Darstellung sicherlich sinnvoller. Dazu wollte ich ein Histogramm verwenden, an dem man auch die Tendenzen ganz gut ablesen kann. Es fehlen dort jedoch die genauen Prozentangaben. Oder kann man sich die einblenden lassen? Außerdem betrachtet das Histogramm Intervalle. Ich hätte aber für einzelne bestimmte Werte gerne deren Anteil.

Ich habe nun eine neue Variable generiert, die jetzt die Werte 1, 2, 3 oder 4 annimmt, wenn die Zuzahlung 5€, 5€-10€, 10€ und übr 10€ beträgt. Dann hab ich damit in Abhängigkeit von dem Firmentyp eine Kreuztabelle generiert.
Beim ersten Mal hat es geklappt. Ich habe eingegeben: ta zuzahlung firmentyp if firmentyp == soundso. Die Tabelle bestand somit nur aus vier Zeilen.
Jetzt wollte ich das für die anderen Firmentypen auch machen, dann zeigt STATA jedoch nur an:
run "/var/folders/8p/tf15t5c17f5b761mpv5wz5jw0000gn/T//SD02290.000000"
Auch wenn ich es wieder mit dem ersten Firmentyp mache, wird wieder nur run und der Ausdruck dahinter angezeigt.
Heißt das, dass STATA noch am rechnen ist oder es nur noch anzeigt oder wie ist die meldung zu verstehen?
vermont
 
Beiträge: 11
Registriert: So 9. Jun 2013, 15:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stückweise definierte Variable definieren

Beitragvon daniel » Mi 12. Jun 2013, 12:50

Nur überflogen, aber
-run- und -do- sind unterschiedliche Dinge. Wenn Du einen code -run-st, dann unterdrückt Stata jeden output. Wenn Du den code -do-st bekommst Du den output. Vermultich hast Du das falsche Knöpfchen gedrückt.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Stückweise definierte Variable definieren

Beitragvon vermont » Mi 12. Jun 2013, 13:21

Stimmt, ich hab den falschen Button geklickt! Super, danke für die Hilfen! ;)
vermont
 
Beiträge: 11
Registriert: So 9. Jun 2013, 15:56
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste