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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资

發布時間:2025/4/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UA MATH571A R語言回歸分析實踐 一元回歸1 NBA球員的工資

  • 基礎回歸分析

571A另一個系列的文章介紹了回歸分析的理論,這個系列的文章介紹R語言做回歸分析的實踐,但不會涉及R語言編程,只是介紹回歸分析需要的命令、怎么輸入以及怎么解釋輸出。

NBA球員的draft number與他們的工資之間是有一定的關系的。NBA Draft簡單理解就是球隊pick心儀的新球員,players selected number 1 overall相當于就是C位,比如2002年的C位就是姚明,他的draft number就是1。所以我們的一個直覺就是新球員的draft number越小(名次越高),他的工資就應該越高。在這個系列的博文中,我們用2017-2018 NBA draft的數據為例,來驗證一下我們的直覺,這個數據我上傳了的,需要的話可以找來下載。

基礎回歸分析

首先讀取數據,先簡單看一下數據在excel里面的樣子

setwd("D:/Stat PhD/taking course/summer1/ref/regression") Data <- read.csv("Salary1.csv", header = TRUE, sep = ",", quote = "\"",dec = ".", fill = TRUE, comment.char = "") X <- as.numeric(Data[,2]) Y <- as.numeric(Data[,3])

自己嘗試的時候記得用setwd修改工作目錄,讀取數據的時候如果數據存在工作目錄下read.csv第一個輸入的位置可以直接寫filename不用寫文件的路徑,如果數據沒有存在工作目錄下的,就要把文件的路徑寫完整。這個文件讀進來以后可能是變量類型是char,要做回歸的話用as.numeric轉成num就可以了。

接下來用lm命令做線性回歸就可以了,lm是R語言估計線性模型的函數。第一條命令做工資關于名次的回歸,把結果存在ureg01.lm中,第二行輸出結果的一些總結信息。

> ureg01.lm <- lm(Y~X) > summary(ureg01.lm)Call: lm(formula = Y ~ X)Residuals:Min 1Q Median 3Q Max -9901919 -4761884 -1586787 2215989 27551106 Coefficients:Estimate Std. Error t value Pr(>|t|) (Intercept) 10285438 440112 23.37 <2e-16 *** X -139730 11404 -12.25 <2e-16 *** --- Signif. codes: 0***0.001**0.01*0.05.0.1 ‘ ’ 1Residual standard error: 6365000 on 649 degrees of freedom Multiple R-squared: 0.1879, Adjusted R-squared: 0.1866 F-statistic: 150.1 on 1 and 649 DF, p-value: < 2.2e-16

第二行以下的內容就是回歸結果的總結。call后面這個是回歸命令,公式是Y~X,意思就是我們執行了Y關于X的回歸。residual后面的是殘差的描述性統計,從左到右分別是殘差的最小值、25%分位點,中位數,75%分位點以及最大值。Coefficients后面是系數的估計,一元回歸只有截距項和解釋變量X的系數。第一列是系數的估計值,10285438在這個問題下面的解釋是如果有第0名存在,那么工資估計就是這么多,-139730表示名次每降一名,工資平均會降139730,也就是說我們之前的直覺是對的,名次越低工資越低。第二列是系數的估計量的方差,第三列是系數估計量的t統計量,第四列是系數估計量的t檢驗的p值,這里的t檢驗原假設是系數為0,因為這兩個p值都非常小,所以我們可以很自信地拒絕原假設,認同名次越低工資也會越低的假設。倒數第三行是殘差的標準誤(標準差)以及相應的自由度,這里一共有651個樣本,所以總自由度是650,回歸模型占一個自由度,所以誤差自由度是649。倒數第二行是R方的結果,第一個R方是多元回歸的R方,就是根據殘差平方和、回歸平方和以及自由度調整計算出來的,一般看這個R方就可以了,這個0.1879表示這個一元線性回歸模型可以解釋18.79%的工資的變化(也就是說這個模型解釋力其實很低,名次對于球員工資沒有主要的解釋力);第二個R方是考慮到只要我們不斷增加解釋變量,第一個R方根據定義的話它就會不斷變大,但這種變大沒有意義,因為模型可能是過擬合的狀態,所以第二個R方相對于第一個會把模型的復雜度考慮進去,在第一個R方的基礎上,模型越復雜,第二個R方就會越小。最后一行是對模型整體的檢驗,它的原假設是截距與X的系數都為0,這里F統計量是150.1,自由度是1和649,p值非常小,說明我們可以拒絕原假設,認為并非截距和X的系數都是0,也就是說這個模型還是有意義的。

現在我們有了第一個解釋球員工資的模型,它可以用回歸方程表示出來:
Y^=10285438?139730X\hat{Y} = 10285438-139730XY^=10285438?139730X
用這個模型我們可以做一些簡單的擬合與預測。如果某位球員名次是43名,根據這個模型我們可以估計他的工資應該是

> predict(ureg01.lm,newdata = data.frame(X=43),interval = "conf",level = 0.95)fit lwr upr 1 4277046 3726681 4827410

用來做擬合和預測的都是predict函數,輸入第一項是模型對象,我們這個問題的模型對象就是之前估計得到的ureg01.lm,輸入第二項newdata = 后面要接的類型數據框,需要用data.frame做一個轉換,第三項是選擇區間估計的類型,在做predict的時候,區間估計類型有兩種,擬合和預測,擬合用conf表示,預測用predict表示,同樣的置信水平下擬合的置信區間更短,因為預測會把新樣本也看成是隨機變量,會讓Y的估計值方差更大。第四項是置信水平。輸出第一列是fit,也就是擬合值,如果某球員名次是43,那么根據模型估計的工資就是4277046,置信區間是[3726681,4827410],也就是說我們有95%的把握他的工資會在這個區間內。

再多提一下這個數據框,因為不用數據框或者用的數據框和模型對象的不一致就會報錯,如果是多個待擬合對象,我們也要用data.frame把它變成數據框,

> predict(ureg01.lm,newdata = data.frame(X=c(43,44)),interval = "conf",level = 0.95)fit lwr upr 1 4277046 3726681 4827410 2 4137316 3576386 4698245

現在討論預測,假設有一個球員名次是43名,想要預測他的工資大概是多少,我們也用predict,只是區間估計命令換成pred

> predict(ureg01.lm,newdata = data.frame(X=43),interval = "pred",level = 0.95)fit lwr upr 1 4277046 -8232809 16786901

可以發現第一列的結果和擬合是一樣的,只是區間估計的結果不一樣了,相同的置信水平下,預測的置信區間會比擬合的更大,但如果這名球員是沒有被估計模型的樣本包括在內的,一般我們還是需要用預測的。

總結

以上是生活随笔為你收集整理的UA MATH571A R语言回归分析实践 一元回归1 NBA球员的工资的全部內容,希望文章能夠幫你解決所遇到的問題。

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