以北京市居民对传统食品的喜爱程度为因变量,取值 1-5,分别为非常不喜爱、不喜爱、
一般、喜爱、非常喜爱。影响因变量取值的有 16 个解释变量,X1-X16,分别代表:购买的
便捷性、食品的安全性、知名度、网络营销、社交需求、价格、包装、从众的消费心理
(社会主流影响)、添加剂、口味、对于传统食品的情怀、身边人(对北京传统食品的)
态度、职业、月收入、性别、年龄。数据集共有 606 条观测。
程序示例
> library(readxl)
> tradional <- read_excel("C:/Users/acer/Desktop/2019 大创/tradional.xlsx")
> View(tradional)
> analyse<-na.omit(tradional)
> View(tradional)
> x<-model.matrix(喜好程度~., tradional)[,-1]
> y<- tradional $喜好程度
> library(lars)
Loaded lars 1.2
> lar1<-lars(x,y,type = "lasso")
> lar1
#Call:
lars(x = x, y = y, type = "lasso")
R-squared: 0.486
Sequence of LASSO moves:
> set.seed(1)
> train<-sample(1:nrow(x),nrow(x)/2)
> test<-(-train)
> y.test<-y[test]
> library(glmnet)
#载入需要的程辑包:Matrix
#载入需要的程辑包:foreach
Loaded glmnet 2.0-18
> grid<-10^seq(10,-2,length=100)
> lasso.mod<-glmnet(x[train,],y[train],alpha = 1,lambda = grid)
> plot(lasso.mod,main="The lasso")
> set.seed(1)
> cv.out<-cv.glmnet(x[train,],y[train],alpha=1)
> plot(cv.out)
> bestlam<-cv.out$lambda.min
> lasso.pred<-predict(lasso.mod,s=bestlam,newx=x[test,])
> mean((lasso.pred-y.test)^2)
[1] 0.9086756
> out<-glmnet(x,y,alpha = 1,lambda = grid)
> lasso.coef<-predict(out,type="coeBcients",s=bestlam)[1:17,]
> lasso.coef