Kano: Analyze Kano Type Items.

Description Usage Arguments Details Value Examples

View source: R/kano-kano.R

Description

Die Funktion Kano() transformiert Kano-Fragebogen zur Kano-Kodierung

Usage

 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"), ...)

Arguments

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

Details

http://www.eric-klopp.de/texte/angewandte-psychologie/18-die-kano-methode https://de.wikipedia.org/wiki/Kano-Modell

M Basis-Faktoren (Mussfaktoren)

Basis-Merkmale (Mustbe) werden vom Kunden Vorausgesetzt schaffen Unzufriedenheit wenn sie nicht vorhanden sind.

O Leistungs- Faktoren

Leistungs-Merkmale (One-dimensional) werden vom Kunden verlangt

A Begeisterung-Faktoren

Begeisterungs-Merkmale (Attractive) Kunde rechnet nicht damit hebt das Produkt vom Konkurrenten ab.

I Unerhebliche- Faktoren

Unerhebliche-Merkmale (Indifferent) werden vom Kunden ignoriert.

R Rueckweisende- Faktoren

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

Value

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

Examples

  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)

stp4/stp25APA2 documentation built on May 24, 2019, 9:59 p.m.