if (!"pacman" %in% rownames(installed.packages())) install.packages("pacman")
library(pacman)
pacman::p_load(haven, kableExtra, knitr,
labelled, tidyverse, pricesensitivitymeter)Diese Übung soll die Möglichkeit bieten, sich etwas genauer mit R und RStudio zu beschäftigen. Dies sind Skills im Bereich Datenanalyse, die im Verlauf des weiteren Studiums sehr helfen werden. Es existieren mittlerweile sehr viele Tutorials im Internet hierzu. Daneben existieren gute Bücher (z.B., Chapman and Feit (2019), Field, Miles, and Field (2012)).
1 Vorbereitung
R ist eine kontext-sensitive Sprache, das bedeutet, dass data anders interpretiert wird als Data. Es kommt also auf die Groß- und Kleinschreibung an.
In R werden die meisten Funktionalitäten durch zusätzliche Pakete (sog. Packages) breitgestellt. Die meisten dieser Pakete sind gut Dokumentiert: https://cran.r-project.org/
Der Code unten evaluiert zunächst ob das Paket pacman (Rinker 2022) auf dem Rechner installiert ist. Wenn dies nicht der Fall ist, dann wird R es installieren.
Alternativ könnten Sie dies auch manuell erledigen in dem Sie zunächst ausführen install.packages(“pacman”) und danach fortfahren mit library(pacman).
Die zweite Zeile läd dann das Paket pacman s.
Die dritte Zeile nutzt die Funktion p_load() aus pacman um alle Pakete zu laden (und vorher zu installieren, falls notwendig), welche wir nachfolgend benutzten werden (z.B. pricesensitivitymeter (Alletsee 2021), welches uns Funktionen bereitstellt für die Durchführung einer PSM-Analyse).
Um besser verstehen zu können, welche Argumente eine Funktion erwartet, können wir den Cursor in den Namen der Funktion platzieren und dann ‘F1’ drücken.
Als nächstes Laden wir die Daten aus der Umfrage in der Vorlesung. Hierfür nutzen wir den Befehl read.csv() und schreiben den Datensatz in ein neues Objekt mit dem Namen d. Damit das funktioniert, müssen wir das *.csv file in unserem RStudio Projektordner abgelegt haben.
d <- read.csv("RawExport.csv")Um die Daten herunterzuladen, klicke bitte auf den Button unten.
Um uns den Datensatz einmal näher anzuschauen, können wir View(d) nutzen
View(d)| sys_RespNum | PSMtoocheap | PSMcheap | PSMexpensive | PSMtooexpensive |
|---|---|---|---|---|
| 10 | 3236.75 | 5306.86 | 12294.49 | 21086.15 |
| 11 | 2160.57 | 5647.69 | 12930.40 | 20294.99 |
| 12 | 3333.87 | 5118.20 | 14005.97 | 20441.48 |
| 13 | 2894.90 | 5385.62 | 13744.98 | 20520.73 |
| 14 | 2164.73 | 6542.25 | 12527.14 | 20024.75 |
| 15 | 4428.32 | 5153.53 | 13541.26 | 21723.28 |
| 16 | 2548.10 | 5012.63 | 13080.50 | 21869.15 |
| 17 | 2376.81 | 5318.79 | 12455.65 | 21158.24 |
| 18 | 3413.36 | 5136.11 | 13614.70 | 20387.34 |
| 19 | 2173.34 | 6092.01 | 12664.68 | 22175.22 |
| 20 | 2040.23 | 5465.20 | 12163.98 | 20892.20 |
| 21 | 3798.95 | 6216.57 | 12677.09 | 20878.85 |
| 22 | 2315.57 | 5295.06 | 12318.43 | 20739.63 |
| 23 | 2295.34 | 7535.43 | 12472.11 | 20551.92 |
| 24 | 2995.53 | 5284.38 | 12682.97 | 20200.48 |
| 25 | 2279.14 | 5179.46 | 12487.10 | 20900.18 |
| 26 | 2481.41 | 7901.69 | 13075.55 | 20254.85 |
| 27 | 2235.83 | 5847.98 | 12274.50 | 20233.31 |
| 28 | 2385.15 | 5565.84 | 12597.50 | 20939.01 |
| 29 | 2324.01 | 6030.48 | 13232.71 | 22235.69 |
| 30 | 2577.02 | 5145.90 | 12496.45 | 20738.33 |
| 31 | 2876.11 | 5630.48 | 12753.12 | 22656.56 |
| 32 | 2970.38 | 5197.33 | 12907.80 | 20813.20 |
| 33 | 3312.90 | 5871.50 | 14206.45 | 20883.52 |
| 34 | 4264.21 | 5251.37 | 13892.45 | 20749.50 |
| 35 | 3325.33 | 5422.10 | 13680.56 | 21167.18 |
| 36 | 2520.22 | 7352.87 | 12387.43 | 20316.98 |
| 37 | 2193.46 | 6510.16 | 16150.51 | 20396.00 |
| 38 | 3138.13 | 6268.71 | 12919.34 | 20309.59 |
| 39 | 3336.27 | 5190.62 | 13184.68 | 20807.71 |
| 40 | 3218.09 | 7025.43 | 13506.14 | 21551.21 |
| 41 | 3007.22 | 5493.98 | 12071.72 | 21488.09 |
| 42 | 2377.89 | 5706.31 | 12876.87 | 22174.36 |
| 43 | 2441.94 | 5705.11 | 12183.18 | 23040.04 |
| 44 | 4181.43 | 5579.27 | 13830.74 | 20250.77 |
| 45 | 3410.28 | 6781.64 | 13226.80 | 20575.79 |
| 46 | 2527.88 | 7740.47 | 13865.62 | 23034.22 |
| 47 | 2668.53 | 5127.11 | 12567.35 | 20314.85 |
| 48 | 2985.43 | 5907.83 | 12534.09 | 20589.00 |
| 49 | 2781.61 | 7364.09 | 12535.99 | 22317.39 |
| 50 | 2942.43 | 5124.93 | 12030.84 | 22171.58 |
| 51 | 2176.93 | 5343.09 | 12467.97 | 20192.57 |
| 52 | 2450.55 | 6118.64 | 13255.62 | 21339.97 |
| 53 | 4196.82 | 5184.40 | 13322.15 | 21947.73 |
| 54 | 2514.67 | 5304.67 | 14113.54 | 23458.88 |
| 55 | 2324.68 | 5614.16 | 13505.48 | 20513.40 |
| 56 | 2238.79 | 5419.19 | 13476.42 | 20748.90 |
| 57 | 2984.93 | 5359.00 | 13520.17 | 20762.12 |
| 58 | 3466.35 | 6484.87 | 12807.94 | 20180.85 |
| 59 | 2159.73 | 6109.25 | 12877.48 | 20726.76 |
| 60 | 2897.65 | 6079.16 | 13098.82 | 21559.32 |
| 61 | 2462.71 | 5345.37 | 13254.65 | 20908.77 |
| 62 | 3516.72 | 6257.52 | 14235.34 | 20528.41 |
| 63 | 4533.31 | 5104.61 | 12274.80 | 20892.22 |
| 64 | 3570.46 | 5154.57 | 12778.50 | 22641.23 |
| 65 | 3363.78 | 7573.97 | 12014.86 | 20296.21 |
| 66 | 2891.66 | 6043.10 | 12307.75 | 20785.40 |
| 67 | 3555.20 | 5779.18 | 12784.92 | 21861.92 |
| 68 | 2663.88 | 6234.65 | 12190.18 | 21041.69 |
| 69 | 2472.15 | 5888.94 | 13611.22 | 24553.59 |
| 70 | 3342.52 | 6557.40 | 12753.36 | 22173.90 |
| 71 | 2201.17 | 5525.83 | 14282.07 | 21145.27 |
| 72 | 3194.35 | 6258.64 | 12738.75 | 20273.91 |
| 73 | 3118.19 | 5991.43 | 12505.48 | 20070.44 |
| 74 | 2983.86 | 5252.31 | 12282.41 | 20649.72 |
| 75 | 3113.47 | 5976.21 | 12802.01 | 20032.72 |
| 76 | 3713.88 | 6312.55 | 15308.28 | 22629.68 |
| 77 | 2939.31 | 6415.47 | 13009.16 | 20075.18 |
| 78 | 2062.04 | 5123.62 | 13101.88 | 20325.78 |
| 79 | 2359.71 | 6170.20 | 13526.31 | 21010.56 |
| 80 | 2554.24 | 5455.08 | 12056.88 | 20938.38 |
| 81 | 4972.26 | 5624.99 | 12882.97 | 22477.49 |
| 82 | 2999.59 | 5411.94 | 12365.16 | 20243.05 |
| 83 | 2158.86 | 5401.93 | 12399.15 | 20203.64 |
| 84 | 3448.94 | 6342.41 | 13863.25 | 21169.75 |
| 85 | 2063.16 | 6481.36 | 12895.54 | 21217.71 |
| 86 | 2674.69 | 5198.32 | 12962.05 | 21235.69 |
| 87 | 3635.08 | 5738.66 | 12555.89 | 20789.43 |
| 88 | 2107.29 | 5440.73 | 12321.68 | 20367.03 |
| 89 | 2685.69 | 5712.00 | 13754.11 | 20966.36 |
| 90 | 3721.98 | 5609.93 | 14088.14 | 20474.51 |
| 91 | 2863.49 | 7336.07 | 13651.30 | 20635.46 |
| 92 | 2536.60 | 5486.30 | 12302.82 | 20569.92 |
| 93 | 3968.84 | 5241.29 | 12930.39 | 21540.39 |
| 94 | 3076.24 | 5377.39 | 13186.10 | 20149.18 |
| 95 | 2389.40 | 6997.65 | 13856.71 | 21321.83 |
| 96 | 3850.99 | 6356.22 | 13005.16 | 22259.11 |
| 97 | 2921.16 | 6112.94 | 12872.51 | 21813.29 |
| 98 | 2676.40 | 7078.81 | 13927.29 | 22149.27 |
| 99 | 2296.53 | 5738.98 | 12824.48 | 20235.20 |
| 100 | 2929.99 | 7857.06 | 12604.25 | 20408.84 |
| 101 | 3733.01 | 5509.94 | 12343.00 | 20720.59 |
| 102 | 2241.68 | 5929.68 | 12731.54 | 21150.05 |
| 103 | 2659.33 | 5803.68 | 13820.01 | 20607.95 |
| 104 | 4880.01 | 5460.65 | 12866.42 | 20502.10 |
| 105 | 2063.28 | 5898.29 | 12126.30 | 20577.20 |
| 106 | 3122.44 | 6253.79 | 13035.75 | 21172.60 |
| 107 | 3282.41 | 5686.58 | 12323.60 | 20651.40 |
| 108 | 2308.30 | 8393.17 | 13311.33 | 20077.33 |
| 109 | 2361.36 | 5653.43 | 12893.06 | 20510.00 |
| 110 | 3175.33 | 5924.60 | 14150.76 | 20695.49 |
Wie wir sehen, gibt es in unserem Beispiel insgesamt 5 Variablen und jede Menge Daten in den Zeilen.
die Namen der Variablen können wir ganz einfach auslesen in dem wir names(d) verwenden.
names(d)[1] "sys_RespNum" "PSMtoocheap" "PSMcheap" "PSMexpensive"
[5] "PSMtooexpensive"
Bei den 5 Variablen handelt es sich um:
- sys_RespNum: Die Respondent ID, also eine Identifier Variable.
- PSMtoocheap: Die Variable enthält die Preise, die als zu günstig wahrgenommen wurden.
- PSMcheap: Die Variable enthält die Preise, die als günstig wahrgenommen wurden.
- PSMexpensive: Die Variable enthält die Preise, die als teuer wahrgenommen wurden.
- PSMtooexpensive: Die Variable enthält die Preise, die als zu teuer wahrgenommen wurden.
2 Analyse
Um die Analyse durchzuführen, greifen wir auf das Package pricesensitivitymeter zurück. Es lohnt sich fast immer, einmal die Dokumentation auf CRAN (Comprehensive R Archive Network) anzusehen. Packages in R sind dort in aller Regel gut dokumentiert. Beispielsweise gibt es zu den meisten packages ein Reference manual, in dem die wichtigsten Funktionen eines Pakets anhand von Beispielen erklärt werden.
Wir nutzen unten die Funktion psm_analysis(). Diese Funktion verlangt, in unserem Fall, lediglich nach 4 Variablen als input (zu günstig, günstig, teuer, zu teuer). Wir speichern die Ergebnisse in psm_in_R.
psm_in_R <- psm_analysis(toocheap = d$PSMtoocheap,
cheap = d$PSMcheap,
expensive = d$PSMexpensive,
tooexpensive = d$PSMtooexpensive)Anschließend geben wir die Resultate mittels der summary() Funktion aus.
summary(psm_in_R)Van Westendorp Price Sensitivity Meter Analysis
Accepted Price Range: 4972.26 - 16150.51
Indifference Price Point: 8393.17
Optimal Price Point: 4972.26
---
101 cases with individual price preferences were analyzed (unweighted data).
In der Vorlesung haben wir bereits alle notwendigen Dinge gelernt, um die Ergebnisse interpretieren zu können. Wir sehen, dass die akzeptable Preisspanne für den Online-Masterstudiengang zwischen 4972.26 und 1.615051^{4} € liegt. Der Indifferenzpreis (IDP) liegt bei 8393.17 €. Dies ist der Preis den die TUC langfristig für den Master etablieren könnte. An dieser Schwelle halten gleichviele Befragte den Preis für teuer und billig. Der optimale Preis für die Markteinführung des Masters (OPP) liegt hingegen bei hingegen bei 4972.26 €. Hier empfinden gleichviele Befragte den Preis als zu teuer und zu billig.
3 Darstellung
Nun wollen wir uns noch die typische grafische Darstellung für PSM erzeugen. Wir nutzen die Funktion psm_plot().
default_psm_plot <- psm_plot(psm_in_R)
default_psm_plotAbschließend können wir zumindest noch die Axen sowie den Titel anpassen.
default_psm_plot +
theme_minimal() +
ylab("Prozente") +
xlab("Preis") +
ggtitle("PSM in R") +
theme(plot.title = element_text(hjust = 0.5)
)4 RStudio Cloud als Alternative
Falls Sie noch neu im R universe sein sollten (gerüchteweise gibt es noch solche Leute), ist es eine Alternative den Code dieses Skripts auch in RStudio Cloud/ Posit Cloud auszuführen. Diese Lösung ermöglicht es Daten in RStudio zu analysieren, wobei die gesamte Analyse im Web Browser läuft. Das hat natürlich einige Vorteile:
- Für Studierende ist der Service gebührenfrei (just sign up)
- No need to install R & RStudio
- No need to update R and packages
- Alle notwendigen Pakete sind bereits im korrespondierenden RStudio Cloud project https://rstudio.cloud/content/4905739 vorgeladen.
Stellen Sie sicher, dass eine Kopie des Projekts in Ihrem Account erstellen. Anderenfalls werden Ergebnisse nichts gespeichert.
References
Citation
@misc{dr.marcellichters2022,
author = {Univ.-Prof. Dr. Marcel Lichters and Joshua Schramm},
title = {Vorlesung {Marketinginstrumente:} {Kapitel} 3 - {Price}
{Sensitivity} {Meter} {PSM)} Aka {Van} {Westendorps} Method in {R}},
date = {2022-11-07},
url = {https://rpubs.com/M_Lichters/PSM},
langid = {en}
}