model = lm(freq ~ ns(day,100)+weekdays,data = y)

model1 = lm(freq ~ ns(day,10)+weekdays,data = y)

model3 = lm(freq ~ ns(day,11)+weekdays,data = y)

model2 = lm(freq ~ ns(day,9)+weekdays,data = y)


summary(model1)
## 
## Call:
## lm(formula = freq ~ ns(day, 10) + weekdays, data = y)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -28032  -2937    683   3075  33248 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    14858.3     1115.5  13.320  < 2e-16 ***
## ns(day, 10)1    5100.1     1311.3   3.889 0.000107 ***
## ns(day, 10)2   13312.7     1677.8   7.935 5.26e-15 ***
## ns(day, 10)3   14772.0     1495.6   9.877  < 2e-16 ***
## ns(day, 10)4   22234.7     1596.5  13.927  < 2e-16 ***
## ns(day, 10)5   21825.4     1543.2  14.143  < 2e-16 ***
## ns(day, 10)6   16527.1     1570.8  10.521  < 2e-16 ***
## ns(day, 10)7   14031.1     1551.9   9.041  < 2e-16 ***
## ns(day, 10)8    6487.2     1300.7   4.988 7.12e-07 ***
## ns(day, 10)9    7551.7     2634.6   2.866 0.004233 ** 
## ns(day, 10)10  -2790.2     1199.5  -2.326 0.020199 *  
## weekdays2       2357.1      622.1   3.789 0.000160 ***
## weekdays3       2589.5      621.1   4.169 3.30e-05 ***
## weekdays4       2959.9      621.1   4.765 2.14e-06 ***
## weekdays5       1279.9      621.2   2.060 0.039600 *  
## weekdays6      -2526.9      621.1  -4.068 5.09e-05 ***
## weekdays7      -3211.7      622.1  -5.162 2.90e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5494 on 1079 degrees of freedom
## Multiple R-squared:  0.6143, Adjusted R-squared:  0.6086 
## F-statistic: 107.4 on 16 and 1079 DF,  p-value: < 2.2e-16
pmodel<- predict(model,newdata = data.frame(day=re2017$day, weekdays = re2017$weekdays))
pmodel2<- predict(model2,newdata = data.frame(day=re2017$day, weekdays = re2017$weekdays))
pmodel3<- predict(model3,newdata = data.frame(day=re2017$day, weekdays = re2017$weekdays))
pmodel1<- predict(model1,newdata = data.frame(day=re2017$day, weekdays = re2017$weekdays))



plot(model)

anova(model1)
## Analysis of Variance Table
## 
## Response: freq
##               Df     Sum Sq    Mean Sq F value    Pr(>F)    
## ns(day, 10)   10 4.5982e+10 4598193116 152.321 < 2.2e-16 ***
## weekdays       6 5.8947e+09  982455750  32.545 < 2.2e-16 ***
## Residuals   1079 3.2572e+10   30187458                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
mean((re2017$freq-pmodel)^2) 
## [1] 39787397
mean((re2017$freq-pmodel1)^2)#########best
## [1] 32456734
mean((re2017$freq-pmodel2)^2)
## [1] 32939864
mean((re2017$freq-pmodel3)^2)
## [1] 33278511
AIC(model,model1,model2,model3)
##         df      AIC
## model  108 21949.33
## model1  18 22005.52
## model2  17 21995.67
## model3  19 21987.15
datas <- data.frame(re2017$freq,re2017$day,pmodel,pmodel2,pmodel1)

ggplot(data=datas,aes(x=datas$re2017.day,y=datas$re2017.freq))+geom_line()+
  geom_line(data=datas,aes(x=datas$re2017.day,y=datas$pmodel2),col="red")