日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

基于Python和R的多元线性回归分析实例

發布時間:2023/12/20 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Python和R的多元线性回归分析实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 實驗目的
  • 實驗內容
    • 分析影響因變量Y的主要影響因素及經濟意義
    • 建立散點圖考察Y與每一個自變量之間的相關關系
      • Python
      • R語言
    • 建立多元回歸模型,并計算回歸系數和統計量
      • Python
      • R語言

實驗目的

  • 掌握一元線性回歸、多元線性回歸模型的建模原理、估計及檢驗方法。
  • 能運用相應的統計軟件(SAS\SPSS\R)進行計算、分析。

實驗內容

  • 某大型牙膏制造企業為了更好地拓展產品市場,有效地管理庫存,公司董事會要求銷售部門根據市場調查,找出公司生產的牙膏銷售量與銷售價格、廣告投入等之間的關系,從而預測出在不同價格和廣告費用下的銷售量。為此,銷售部的研究人員收集了過去30個銷售周期(每個銷售周期為4周)公司生產的牙膏的銷售量、銷售價格、投入的廣告費用,以及同期其它廠家生產的同類牙膏的市場平均銷售價格,見表1(其中價格差指其它廠家平均價格與公司銷售價格之差)。
  • 試根據這些數據建立一個數學模型,分析牙膏銷售量與其它因素的關系,為制訂價格策略和廣告投入策略提供數量依據。

分析影響因變量Y的主要影響因素及經濟意義

  • 對于大多數消費者而言,牙膏作為一種生活的必需品,在購買同類牙膏時,更多的會關心不同品牌之間的價格差,而不是它們的價格本身。
  • 其他廠商平均價格能展現牙膏的市場均價,與自身品牌的價格的差異可能會影響消費者選擇。但是,在研究各個因素對銷售量的影響時,用價格差代替公司銷售價格和其他廠家平均價格,更加直觀和合適。
  • 廣告費用多少決定了廠家對于牙膏的推廣力度,會在一定程度上影響消費者的選擇。較大的廣告推廣力度,會加深消費者對產品的認知并在一定程度上提高產量。

建立散點圖考察Y與每一個自變量之間的相關關系

  • 如圖所示,設銷售量為 ,銷售價格、其它廠家平均價格、廣告費用和價格差分別作為 ,繪制4個散點圖。
  • 此外,如表所示,計算每個自變量與銷售的皮爾遜相關系數。
  • 由上述分析與散點圖可看出,牙膏銷售量與廣告費用和價格差呈線性關系,與其它廠家平均價格、廣告費用和價格差相關程度較高。

Python

import pandas as pd import numpy as np data = pd.read_csv("E:\Code\Jupyter Notebook Code\數學建模\Data\多元線性回歸數據.csv").iloc[:,1:] data.head()

data.corr(method='pearson')

import matplotlib.pyplot as plt import seaborn as snslabel = data.iloc[:,-1].to_numpy() # 銷售量 factor = data.iloc[:,:-1].to_numpy() # 其他廠商平均價格、廣告費用、價格差#用來正常顯示中文標簽 plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示負號 plt.rcParams['axes.unicode_minus']=Falseplt.figure(figsize=(8,8)) plt.subplot(2,2,1) plt.grid() plt.scatter(label,factor[:,0]) plt.xlabel('銷售量',size=15) plt.ylabel('銷售價格',size=15) plt.subplot(2,2,2) plt.grid() plt.scatter(label,factor[:,1]) plt.xlabel('銷售量',size=15) plt.ylabel('其它廠家平均價格',size=15) plt.subplot(2,2,3) plt.grid() plt.scatter(label,factor[:,2]) plt.xlabel('銷售量',size=15) plt.ylabel('廣告費用',size=15) plt.subplot(2,2,4) plt.grid() plt.scatter(label,factor[:,3]) plt.xlabel('銷售量',size=15) plt.ylabel('價格差',size=15) plt.tight_layout() #plt.savefig('1.jpg',dpi=300)

R語言

data = read.csv("E:/Code/R Code/Data/多元線性回歸數據.csv") cor(data[2:6],method = "pearson")

建立多元回歸模型,并計算回歸系數和統計量

  • 記牙膏銷售量為YYY,其它廠家平均價格X1X_{1}X1? ,廣告費為X2X_{2}X2? ,廣告費用為X3X_{3}X3? ,構建多元線性回歸模型:
    Y=β0+β1X1+β2X2+β3X3Y=\beta_{0}+\beta_{1} X_{1}+\beta_{2} X_{2}+\beta_{3} X_{3}Y=β0?+β1?X1?+β2?X2?+β3?X3?
  • 擬合模型,得到β0=7.5891\beta_{0}=7.5891β0?=7.5891β1=?0.7455\beta_{1}=-0.7455β1?=?0.7455β2=0.5012\beta_{2}=0.5012β2?=0.5012β3=2.3577\beta_{3}=2.3577β3?=2.3577 。最終得到多元線性回歸模型:
    Y=7.5891+?0.7455X1+0.5012X2+2.3577X3Y=7.5891+-0.7455X_{1}+0.5012X_{2}+2.3577X_{3}Y=7.5891+?0.7455X1?+0.5012X2?+2.3577X3?

Python

import statsmodels.api as sm label = data.iloc[:,-1].to_numpy() # 銷售量 factor = data.iloc[:,:-1].to_numpy() # 其他廠商平均價格、廣告費用、價格差Y=label X=factor[:,1:] X=sm.add_constant(X) # 添加截距項model = sm.OLS(Y,X).fit() # 擬合OLS模型 model.summary() #

#模型的擬合值 y_train_pred = model.predict(X)#繪制最佳擬合線:標簽用的是訓練數據的預測值y_train_pred plt.figure(figsize=(8,4)) plt.plot(label.reshape(-1,1),color='#00b0ff',label="Observations",linewidth=1.5) plt.plot(y_train_pred,color='#ff3d00',label="Prediction",linewidth=1.5) plt.legend(loc="upper left") plt.grid(alpha=0.6) plt.tight_layout()

R語言

test_data = data.frame(data[3],data[4],data[5],data[6]) colnames(test_data) <- c('X1','X2','X3','Y') model_lm = lm(Y~X1+X2+X3,data=test_data) summary(model_lm)

總結

以上是生活随笔為你收集整理的基于Python和R的多元线性回归分析实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。