對問卷資料進行線性分析

2021-08-24 23:40:04 字數 3988 閱讀 8820

library(dplyr)

library(ggplot2)

library(tidyr)

原始資料:

可以看到日期是字串形式,現在將其轉換為數值型

menus
再次觀察:

> head(menus)

品名 日期 銷售額

1 關東煮 2015-03-01 4046

2 關東煮 2015-03-02 3437

3 關東煮 2015-03-03 3191

4 關東煮 2015-03-04 3499

5 關東煮 2015-03-05 3536

6 關東煮 2015-03-06 3841

針對飯糰繪製銷量隨時間的變化曲線

# 篩選行

fantuan % filter(品名 == '飯糰')

# 製作飯糰的時間序列圖

ggplot(fantuan, aes(日期, 銷售額)) + geom_line() + scale_x_date() + ggtitle('飯糰的銷售額')

接下來觀察各個麵條之間銷量的影響,要篩選出所有的麵條,我們需要更加複雜的語句

# 篩選出所有的麵條

noodles % filter(品名 %in% c('義大利面', '烏龍面', '拉麵', '什錦麵'))

> head(noodles)

品名 日期 銷售額

1 烏龍面 2015-03-01 8849

2 烏龍面 2015-03-02 6063

3 烏龍面 2015-03-03 6060

4 烏龍面 2015-03-04 6283

5 烏龍面 2015-03-05 7138

6 烏龍面 2015-03-06 9264

由於相關分析分析的變數需要單獨佔一列,而上述表頭顯然不符合要求,因而我們需要將長表轉為寬表

> noodles2 % spread(品名, 銷售額)

> head(noodles2)

日期 拉麵 什錦麵 烏龍面 義大利面

1 2015-03-01 17644 6245 8849 5947

2 2015-03-02 12756 4469 6063 5010

3 2015-03-03 13764 5159 6060 5263

4 2015-03-04 14670 4399 6283 5150

5 2015-03-05 13371 4791 7138 4883

6 2015-03-06 18845 6039 9264 6410

由於日期也是不相關的因子,因此我們將其去除:

> noodles2[,-1]

拉麵 什錦麵 烏龍面 義大利面

1 17644 6245 8849 5947

2 12756 4469 6063 5010

3 13764 5159 6060 5263

4 14670 4399 6283 5150

5 13371 4791 7138 4883

6 18845 6039 9264 6410

計算相關係數並繪製散點圖矩陣:

> noodles2[,-1] %>% cor

拉麵 什錦麵 烏龍面 義大利面

拉麵 1.0000000 0.9220467 0.9129860 0.9188441

什錦麵 0.9220467 1.0000000 0.9099195 0.9101794

烏龍面 0.9129860 0.9099195 1.0000000 0.8979937

義大利面 0.9188441 0.9101794 0.8979937 1.0000000

> noodles2[,-1] %>% pairs

如下圖所示的散點圖可用來快速分析,找出可能有所關聯的變數

我們可以看到相關因子有0.8,0.9,1.0等等,那我們該如何判斷相關關係大還是小呢?一般來說,有這樣幾條規則:

相關係數

相關程度

-1.0~-0.7

強負相關

-0.7~-0.3

弱負相關

-0.3~0.3

不相關0.3~0.7

弱負相關

0.7~1.0

強正相關

milk % filter(品名 %in% c('飯糰', '牛奶')) %>% spread(品名, 銷售額)

milk %>% ggplot(aes(飯糰, 牛奶)) +

geom_point(size = 2, color = 'grey50') +

geom_smooth(method = "lm", se = true) +

ggtitle('飯糰與牛奶的散點圖')

summary(lm(飯糰~牛奶, data = milk))

接下來重點看一下從summary得到的總結資訊

call:  # 呼叫了哪些函式

lm(formula = 飯糰 ~ 牛奶, data = milk)

residuals: # 殘差,即實際觀察值與估計值(擬合值)之間的差,下面依次是最小值/四分位點/最大值

min 1q median 3q max

-9406.8 -2660.0 -870.2 3016.4 9643.9

coefficients: # 係數

estimate std. error t value pr(>|t|)

# 截距估計值 誤差 t值 p值(p值小於0.05,拋棄零假設即'斜率為零',採信備擇假設)

(intercept) 24125.0042 1238.8045 19.474 < 2e-16 ***

# 斜率估計值 誤差 t值 p值

牛奶 -3.2530 0.4911 -6.624 2.58e-09 ***

---signif. codes: 0 『***』 0.001 『**』 0.01 『*』 0.05 『.』 0.1 『 』 1

residual standard error: 3815 on 89 degrees of freedom

判定係數,越接近1越好,越接近0越差

multiple r-squared: 0.3302, adjusted r-squared: 0.3227

f統計量,p值

f-statistic: 43.88 on 1 and 89 df, p-value: 2.58e-09

相關係數和線性回歸分析通常乙個在前乙個在後,如果確認有較高的相關係數,才能採取回歸分析

php 對問卷結果進行統計

背景 由於具體工作的原因,我做了乙份紙質的問卷調查表,調查表的主要內容是讓使用者對10項要求 編號為a,b.進行優先順序排序,所以我得到的結果是好幾百份類似於a i h g d.等結果。目標 根據使用者的排序結果對這10項要求進行量化考評,最終的結果希望是a 78,b 68,c 70.以找出哪乙個要...

對大資料進行實時分析

大資料分析 bda 包括大資料的採集 儲存 分析 展示。而其中分析是bda的關鍵。說到分析,可以分為歷史分析和實時分析。上次我們著重提過了歷史分析,尤其是互動式歷史分析,當然還有批處理式的歷史分析。這次,我們回過頭來再談談實時分析,包括流處理 cep,等等。說到cep,複雜事件處理 complex ...

對大資料進行實時分析

大資料分析 bda 包括大資料的採集 儲存 分析 展示。而其中分析是bda的關鍵。說到分析,可以分為歷史分析和實時分析。上次我們著重提過了歷史分析,尤其是互動式歷史分析,當然還有批處理式的歷史分析。這次,我們回過頭來再談談實時分析,包括流處理 cep,等等。說到cep,複雜事件處理 complex ...