Description Usage Arguments Details Value Examples
Die Funktion Kano()
transformiert Kano-Fragebogen zur Kano-Kodierung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Kano(x, ...)
## S3 method for class 'data.frame'
Kano(x, na.action = na.pass, ...)
## S3 method for class 'formula'
Kano(x, data, subset, na.action = na.pass, ...)
Kano_Auswertung(x, caption = "", note = "", formula = x$formula,
data = x$molten[-1],
digits = options()$stp4$apa.style$prozent$digits[1],
include.n = TRUE, include.percent = TRUE, include.total = TRUE,
include.test = TRUE, include.fong = TRUE, rnd_output = TRUE, ...)
kano_plot(x, main = "", xlim = c(0, 1), ylim = c(0, 1), mar = c(0,
1, 2, 1), legend.position = list(x = "right", y = NULL),
legend.title = NULL, my.lines = "circle", col.bg = "gray95",
col = NA, txt.bg = list(m = "M", i = "I", o = "O", a = "A"),
cex.bg = 12, jitter = TRUE, cex = 1, cex.items = cex * 1,
cex.lab = cex * 1.07, cex.legend = cex * 1.1,
ylab = "Zufriedenheitsstiftung (CS+)",
xlab = "Unzufriedenheitsstiftung (CS-)", center.axis = FALSE,
use.labels = TRUE, use.total.strength = TRUE, use.categorie = TRUE,
use.points = FALSE, ...)
kano_barchart(x, data = x$molten, groups = x$groups[1],
main = "Kano-Analyse", auto.key = list(space = "right"),
prop.table = TRUE, ylab = if (prop.table) "Prozent" else "Anzahl",
col = RColorBrewer::brewer.pal(6, "Dark2")[c(4, 1, 2, 3, 5, 6)],
par.settings = list(superpose.polygon = list(col = col)),
include.Q = TRUE, include.R = TRUE, include.n = TRUE,
levels = c("M", "O", "A", "I", "R", "Q"), ...)
|
x, data |
Daten mit/oder formula |
... |
nicht benutzte Argumente |
na.action |
NA's entfernen odere behalten default ist na.pass Option ist na.omit() |
data |
in kano_barchart molten data |
subset |
an Formula_Data |
caption, note |
Ueberschrift |
formula, data |
intern daten aus Kano-Objekt |
digits |
Nachkommastellen |
include.n, include.percent |
Anzahl, Prozent |
include.total |
N und Total |
include.test, include.fong |
Fong und Chie-Test |
rnd_output |
Intern fuer Plot bei FALSE ausgabe als Zahl |
main |
Header |
mar, xlim, ylim |
Plot Limits |
legend.position, legend.title |
legend.position = list(x="right", y=NULL) Beim Streudiagram die Legende bei Barplot scale=list |
my.lines |
Grafik Element Halbkreis fuer Indiferent |
col |
Farbe der Punkte |
txt.bg, cex.bg, col.bg |
Hintergrund mit den Grossen Buchstaben |
jitter |
Rauschen bei Ueberlappung |
cex, cex.items, cex.lab, cex.legend |
Schriftgroesse |
ylab, xlab |
x-y Beschrifung |
center.axis |
center.axis=FALSE |
use.labels |
use.labels=FALSE Zahlen oder Text als Beschriftung bei den Streudiagrammen |
use.total.strength |
use.total.strength=TRUE groese der Schrift als Indikator fuer Total Strenght |
use.categorie |
use.categorie=TRUE M, O, A, oder I mit in die Labels ausgeben |
use.points |
use.points = FALSE Punkte statt Text |
groups |
in kano_barchart geht nicht |
auto.key |
Kea auf der rechten Seite |
prop.table |
Prozent oder Anzahl |
include.Q, include.R |
Q und R anzeigen |
levels |
Levels haendisch anordnen |
type |
Fragetype entweder vollstaendig (5) oder gekuerzt (3) |
umcodieren |
logical False |
rm_Q |
Remove Q Kategorien Q entfernen Anzahl an erlaubten Qs |
rm_I |
Remove I Kategorien I entfernen Anzahl an erlaubten Is |
methode |
weie sind die Items geornet default = 1 (func dfunk func dfunc func) |
vars_func, vars_dysfunc |
Welche Items sind die Funktionalen/Dys-Funktionalen |
X, grouping |
uebergabe der Daten paarweisen beides sind data.frames |
... |
|
x |
Kano-Objekt |
ylab |
Beschriftung Prozent/Anzahl |
col |
Farben RColorBrewer::brewer.pal(6, "Dark2")[c(4, 1, 2, 3, 5, 6)] |
main, include.n |
Ueberschrift mit N= |
... |
an lattice |
http://www.eric-klopp.de/texte/angewandte-psychologie/18-die-kano-methode https://de.wikipedia.org/wiki/Kano-Modell
Basis-Merkmale (Mustbe) werden vom Kunden Vorausgesetzt schaffen Unzufriedenheit wenn sie nicht vorhanden sind.
Leistungs-Merkmale (One-dimensional) werden vom Kunden verlangt
Begeisterungs-Merkmale (Attractive) Kunde rechnet nicht damit hebt das Produkt vom Konkurrenten ab.
Unerhebliche-Merkmale (Indifferent) werden vom Kunden ignoriert.
Ablehnende-Merkmale (R) werden vom Kunden abgelehnt. Fuehren bei Vorhandensein zu Unzufriedenheit, bei Fehlen jedoch nicht zu Zufriedenheit.
Func/Dyfunc | like (1) | must-be (2) | neutral (3) | live with (4) | dislike (5) |
like (1) | O | A | A | A | O |
must-be (2) | R | I | I | I | M |
neutral (3) | R | I | I | I | M |
live with (4) | R | I | I | I | M |
dislike (5) | R | R | R | R | Q |
Kodierung
Das w<c3><bc>rde mich sehr freuen (1) Das setze ich voraus (2) Das ist mir egal (3) Das k<c3><b6>nnte ich in Kauf nehmen (4) Das w<c3><bc>rde mich sehr st<c3><b6>ren (5)
M O A I R Q Heufigkeit
max Category
M>O>A>I max Category mit Hierarchie M Wichtiger als O usw. also wen der Unterschied zwischen den zwei am hoechsten gelisteten Attributen zwei Kategorien gleich ist, 5
Total Strength als zweite Masszahl gibt an wie hoch der Anteil an bedeutenden Produktmerkmalen ist.
Category Strength ist eine Masszahl die die angibt ob eine Anforderung nur in eine Kategorie gehoert
CS plus Index Positiv CS.plus= (A+O)/(A+O+M+I)
CS minus Index Negativ CS.minus= (O+M)/(A+O+M+I)
Chi-Test ist eigentlich Unsinn, Testet ob die Verteilung von M, A, O und I gleich ist. Wird aber in wissenschaftlichen Arebitengerne angegeben.
Fong-Test Vergleich der zwei Haeufigsten-Kategorien gegenueber der Gesamtzahl Ergebnis ist entweder ein signifikante oder ein nicht signifikante Verteilung. Ich verwende zur Berechnung die Kategorien A,O,M,I und R. Q verwende ich nur f<c3><bc>r die Gesamtsumme
Liste mit:
data: data mit der Kano-Kodierung.
molten: Daten-Lang
scors: Scors sind eine Alternative Codierung zum Zweck der Transformierung zu einer metrischen Skala.
formula, removed=Errorrs, N, attributes, answers
Tabelle als data.frame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | # require(stpvers)
# Projekt("html")
kano_labels <- c( "like",
"must be",
"neutral",
"live with",
"dislike")
DF<-GetData(" Geschlecht Edu f1 d1 f2 d2 f3 d3 f4 d4 f5 d5 f6 d6 f7 d7 f8 d8 f9 d9 f10 d10
1 w med 1 1 1 2 1 3 1 5 1 5 5 1 3 3 5 2 5 1 5 2
2 w med 1 2 2 5 2 3 1 5 1 5 2 5 3 3 2 5 2 5 5 2
3 m med 1 3 3 5 1 5 3 4 1 5 5 1 3 3 5 2 5 1 5 2
4 m med 1 4 4 2 1 5 4 4 1 5 5 1 3 3 5 2 5 1 5 2
5 w med 1 5 5 5 5 3 1 5 1 5 5 1 3 3 5 2 5 1 5 2
6 w med NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
7 m med 2 1 1 5 2 5 1 5 1 5 2 5 3 3 1 5 2 5 5 2
8 w med 2 2 2 5 1 3 1 5 1 5 3 3 3 3 1 4 1 3 5 2
9 m med 2 3 2 5 2 3 1 3 1 5 1 3 3 3 2 4 3 3 5 2
10 m med 2 4 1 5 1 5 1 5 1 5 1 4 3 3 2 5 1 3 5 2
11 w med 2 5 2 5 1 4 1 5 1 5 1 4 3 3 2 5 1 4 5 2
12 m med NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
13 w med 3 1 2 5 3 3 1 5 2 5 1 5 3 3 3 3 3 3 5 2
14 m med 3 2 1 5 1 5 2 5 2 NA 1 5 3 3 2 5 1 5 5 2
15 w med 3 3 2 5 1 3 1 5 1 5 1 3 3 3 2 5 1 3 5 2
16 w low 3 4 2 5 2 5 2 5 1 5 1 4 3 3 2 5 1 3 5 2
17 w low 3 5 2 5 1 5 1 5 2 5 1 4 3 3 2 5 1 4 5 2
18 w low NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
19 m low 4 1 2 5 1 5 2 5 2 5 1 4 2 3 2 5 1 3 5 2
20 w low 4 2 2 5 2 5 2 5 2 5 1 3 3 3 2 5 1 3 5 2
21 w low 4 3 2 5 1 5 2 5 2 5 1 5 1 3 2 5 1 3 5 2
22 m low 4 4 2 5 1 5 2 5 2 5 1 3 3 3 1 3 1 3 5 2
23 w low 4 5 2 5 3 3 2 5 2 5 1 4 1 3 2 5 1 4 5 2
24 w low NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
25 m hig 5 1 1 5 1 5 2 4 1 5 1 3 3 5 2 4 1 3 5 2
26 w hig 5 2 1 5 1 3 1 5 1 5 1 3 1 5 1 5 3 3 5 2
27 w hig 5 3 2 5 3 3 1 4 2 4 1 3 3 5 3 3 5 1 5 2
28 w hig 5 4 2 5 1 4 2 5 1 5 1 3 3 5 2 5 4 1 5 2
29 w hig 5 5 2 5 2 4 2 4 2 5 1 4 1 5 1 5 1 4 5 2
30 m hig NA NA 2 5 1 5 1 3 1 4 1 3 1 5 1 3 1 3 5 2
31 m hig NA NA 2 1 1 5 1 4 3 3 5 2 3 5 NA NA 1 3 5 2
")
DF<- upData2(DF, labels=c(f1="Fahreigenschaften"
,f2="Sicherheit"
,f3="Beschleunigung"
,f4="Verbrauch"
,f5="Lebensdauer"
,f6="Sonderausstattung"
,f7="Schiebedach"
,f8="Rostschutz"
,f9="Design"
, f10= "Rostflecken"
))
# match(DF$f1, 1) & match(DF$f2, 5)
DF %>% Tabelle(Geschlecht, Edu)
kano_res1 <- Kano( ~ . , DF[-c(1,2)])
APA2(kano_res1, caption = "Einzeln")
stp25APA2:::Kano_Auswertung(kano_res1, rnd_output=FALSE)
# kano_plot(kano_res1)
# library(lattice)
# x<-data.frame (xtabs(~ value+variable, kano_res1$molten ))
# barchart(Freq ~value|variable, x, origin=0)
#
DF[-c(1,2)] <- dapply2(DF[-c(1,2)], function(x) factor( x, 1:5, kano_labels))
DF %>% Tabelle2(f1,d1)
kano_res1 <- Kano( ~ . , DF[-c(1,2)])
APA2(kano_res1, caption = "Einzeln")
kano_res <- Kano( .~ Geschlecht, DF[-2])
APA2(kano_res, caption = "Gruppe")
APA2(kano_res, caption = "Gruppe", include.percent=FALSE)
# kano_plot(kano_res,
# legend.position = list(x = .75, y = 1),
# #legend.title= "HAllo",
# cex.legend=1)
kano_res <- Kano( .~ Geschlecht + Edu, DF )
stp25APA2:::Kano_Auswertung( kano_res, rnd_output=FALSE)
# Kontrolle der Logik
kano_res1 <- Kano( ~ . , DF[-c(1,2)], na.action = na.pass)
dat<- na.omit(cbind(DF[c("f1", "d1")], kano_res1$data[2]))
tidyr::spread(dat , d1, Fahreigenschaften)
## End()
#'
graphics.off()
# res1 <- Kano( ~ . , DF[-c(1,2)])
res1$dysfunc
windows(9, 7)
kano_plot_del_bar(kano_res)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.