三. 销量的方差分析

CREATE TABLE temp.dmk_sales_dtl_test as
SELECT substr(a.period_wid,1,6) as period_mon ,a.region_level3_code1 ,a.province_name ,a.city , a.bd_code ,a.brand , a.car_model ,a.car_type , b.new_name,a.qty ,
case when a.new_nature = ‘1’ then ‘个人客户’
when a.new_nature = ‘2’ then ‘政府客户’
when a.new_nature = ‘3’ then ‘企业客户’
when a.new_nature = ‘4’ then ‘社会团体’
when a.new_nature = ‘5’ then ‘事业单位’
when a.new_nature = ‘6’ then ‘合作社’
else ‘其他’
end as new_nature_a,
CASE WHEN b.new_accountlevel = 1 THEN ‘A类’
WHEN b.new_accountlevel = 2 THEN ‘B类’
WHEN b.new_accountlevel = 3 THEN ‘C类’
else ‘空’
END as new_accountlevel_b
FROM dmk.dmk_sal_actual_sales_dtl a
LEFT JOIN
(SELECT d.new_name,t.new_leadsoriginclass_id,t.new_accountid,t.new_accountlevel,t.new_salebu_id,
row_number() OVER (PARTITION BY t.new_accountid,t.new_salebu_id ORDER BY nvl(t.new_accountlevel,-1) desc ) RN
from crm.new_sale_organizationbase t
LEFT JOIN
(SELECT new_leadsoriginclassid,new_name from new_leadsoriginclassbase ) d
on t.new_leadsoriginclass_id = d.new_leadsoriginclassid) b
on a.crm_customer_id = b.new_accountid
and a.bd_id= b.new_salebu_id and b.rn=1
LEFT JOIN crm.new_vechicle_info c
ON a.new_vechicleinfo_id=c.new_vechicle_infoid
WHERE a.bd_code in (‘WZ01’,‘WZ02’,‘WZ03’)
AND a.period_wid >= 20151201

SELECT a.region_level3_code1, a.province_name, a.bd_code, a.brand, a.car_model, a.new_nature_a, a.new_accountlevel_b, a.new_name, sum(a.qty)
from temp.dmk_sales_dtl_test a
GROUP BY a.region_level3_code1 ,a.province_name,a.bd_code ,a.brand ,a.car_model ,a.new_nature_a,a.new_accountlevel_b, a.new_name

方差分析子函数

anovafun<-function(fm){
tab<-summary(fm)
k<-length(tab[[1]])-2
temp<-c(sum(tab[[1]][,1]),sum(tab[[1]][,2]),rep(NA,k))
tab[[1]][“Total”,]<-temp
tab
}

1、导入数据
library(xlsx)
x=read.xlsx(“salesmonclass.xlsx”,sheetIndex=1)
2、方差分析检验

单因素方差分析检验

#各组的样本数
table(xKaTeX parse error: Expected 'EOF', got '#' at position 28: …3_code1) #̲各组均值 aggregate(…qty,by=list(xKaTeX parse error: Expected 'EOF', got '#' at position 31: …ode1),mean) #̲各组标准差 aggregate…qty,by=list(xKaTeX parse error: Expected 'EOF', got '#' at position 28: …3_code1),sd) #̲用Q-Q图检验数据的正态性 q…qty)
#方差齐性检验
leveneTest(x q t y   a s . f a c t o r ( x qty~as.factor(x region_level3_code1),data=lamp)
3、方差分析

单因素方差分析

table(xKaTeX parse error: Expected 'EOF', got '#' at position 47: … #̲各组的样本数 lamp=dat…region_level3_code1,x q t y ) l a m p a o v = a o v ( x qty) lampaov=aov(x qty~x$region_level3_code1,data=lamp)
summary(lampaov)
#调用自编函数以完善该方差分析表
source(“anovafun.R”)
anovafun(lampaov)

双因素方差分析

(XA+B表示不考虑交互作用的双因素方差分析,考虑交互作用应该写为XA*B或者X~A+B+A:B)
amp=data.frame(x r e g i o n l e v e l 3 c o d e 1 , x region_level3_code1,x province_name,x q t y ) l a m p a o v = a o v ( x qty) lampaov=aov(x qty~x r e g i o n l e v e l 3 c o d e 1 + x region_level3_code1+x province_name,data=lamp)
anovafun(lampaov)

发布了30 篇原创文章 · 获赞 0 · 访问量 350

猜你喜欢

转载自blog.csdn.net/hua_chang/article/details/105034064