線性關(guān)系其實(shí)是最常見也是最有效苍柏,同時(shí)還是最好解釋的,不過變量間復(fù)雜的關(guān)系我們用多項(xiàng)式回歸做出來可能會(huì)更加的準(zhǔn)確姜贡。剛好有位粉絲的數(shù)據(jù)需要用到多項(xiàng)式回歸试吁,今天就給大家寫寫。
要理解非線性關(guān)系楼咳,首先我們看看線性關(guān)系熄捍,假設(shè)情況如下:商品的價(jià)格為p,銷售量為q母怜,總價(jià)為y余耽,那么qy之間就是線性關(guān)系:
p <- 0.5
q <- seq(0,100,1)
y <- p*q
plot(q,y,type='l',col='red',main='線性關(guān)系')
但是考慮現(xiàn)實(shí)中的情況:一個(gè)商品本來價(jià)格p是0.5苹熏,買的人多了價(jià)格會(huì)上漲碟贾,此時(shí)線性關(guān)系不成了哦:
y <- 450 + p*(q-10)^3
plot(q,y,type='l',col='navy',main='Nonlinear relationship',lwd=3)
如果你得數(shù)據(jù)確實(shí)不是線性關(guān)系轨域,就得考慮數(shù)據(jù)轉(zhuǎn)化或者擬合多項(xiàng)式回歸袱耽。
數(shù)據(jù)模擬
為了更好地給大家演示,我們需要模擬一個(gè)數(shù)據(jù)集出來:
q <- seq(from=0, to=20, by=0.1)
y <- 500 + 0.4 * (q-10)^3
noise <- rnorm(length(q), mean=10, sd=80)
noisy.y <- y + noise
上面的代碼首先模擬200個(gè)銷售量干发,和相應(yīng)的總價(jià)y朱巨,同時(shí)還給y加了一點(diǎn)點(diǎn)噪聲。
我們把模擬數(shù)據(jù)畫出來瞅瞅:
plot(q,noisy.y,col='deepskyblue4',xlab='q',main='Observed data')
lines(q,y,col='firebrick1',lwd=3)
注意我們用lines這個(gè)方法給數(shù)據(jù)串了一條趨勢(shì)線蔬崩,可以很明顯的看出來我們的數(shù)據(jù)不是線性關(guān)系。
多項(xiàng)式回歸
那么對(duì)于我們的數(shù)據(jù)我可以做如下的多項(xiàng)式回歸:
model <- lm(noisy.y ~ poly(q,3))
model <- lm(noisy.y ~ x + I(X^2) + I(X^3))
上面兩種方法都是一個(gè)道理搀暑,但是第一種可以很好的避免多重共線性問題沥阳,你想嘛,x的平方和x的三次方肯定高度相關(guān)啊自点。所以大家用第一種方法哦桐罕,輸出結(jié)果如下:
上面的結(jié)果中沒有系數(shù)的置信區(qū)間桂敛,我們可以:
confint(model, level=0.95)
我么還可以畫出來模型的殘差圖:
plot(fitted(model),residuals(model))
總的來說术唬,我們的模型的R方為0.77薪伏,q的一次項(xiàng)和3次項(xiàng)都是有統(tǒng)計(jì)學(xué)意義的,模型還不錯(cuò)粗仓。
是不是可以用這個(gè)模型做預(yù)測(cè)呢嫁怀?
這又涉及到機(jī)器學(xué)習(xí)了,往下看:
我們可以用訓(xùn)練的這個(gè)模型來預(yù)測(cè)我們的原始數(shù)據(jù):
predicted.intervals <- predict(model,data.frame(x=q),interval='confidence',
level=0.99)
你去查看predicted.intervals的值借浊,你可以看到我們200個(gè)數(shù)據(jù)的預(yù)測(cè)值和置信區(qū)間塘淑。
最好還是給大家可視化一下蚂斤,我們打算把原始的趨勢(shì)線和我們的置信區(qū)間的上下限都畫在同一個(gè)圖上:
lines(q,predicted.intervals[,1],col='green',lwd=3)
lines(q,predicted.intervals[,2],col='black',lwd=1)
lines(q,predicted.intervals[,3],col='black',lwd=1)
可以看到上圖中,我們的磚紅色的線基本都在置信區(qū)間的上下限范圍內(nèi)曙蒸,證明了模型不錯(cuò)捌治。
小結(jié)
今天給大家寫了多項(xiàng)式回歸,這個(gè)東西用的不多逸爵,很容易造成過擬合問題具滴,大家使用時(shí)一定要注意。
感謝大家耐心看完师倔,自己的文章都寫的很細(xì)构韵,代碼都在原文中,希望大家都可以自己做一做趋艘,請(qǐng)關(guān)注后私信回復(fù)“數(shù)據(jù)鏈接”獲取所有數(shù)據(jù)和本人收集的學(xué)習(xí)資料疲恢。如果對(duì)您有用請(qǐng)先收藏,再點(diǎn)贊轉(zhuǎn)發(fā)瓷胧。
也歡迎大家的意見和建議显拳。
如果你是一個(gè)大學(xué)本科生或研究生,如果你正在因?yàn)槟愕慕y(tǒng)計(jì)作業(yè)搓萧、數(shù)據(jù)分析杂数、論文宛畦、報(bào)告、考試等發(fā)愁揍移,如果你在使用SPSS,R次和,Python,Mplus, Excel中遇到任何問題那伐,都可以聯(lián)系我踏施。因?yàn)槲铱梢越o您提供最好的,最詳細(xì)和耐心的數(shù)據(jù)分析服務(wù)罕邀。
如果你對(duì)Z檢驗(yàn)畅形,t檢驗(yàn),方差分析诉探,多元方差分析日熬,回歸,卡方檢驗(yàn)肾胯,相關(guān)碍遍,多水平模型,結(jié)構(gòu)方程模型阳液,中介調(diào)節(jié)怕敬,量表信效度等等統(tǒng)計(jì)技巧有任何問題,請(qǐng)私信我帘皿,獲取最詳細(xì)和耐心的指導(dǎo)东跪。
If you are a student and you are worried about you statistical #Assignments, #Data #Analysis, #Thesis, #reports, #composing, #Quizzes, Exams.. And if you are facing problem in #SPSS, #R-Programming, #Excel, Mplus, then contact me. Because I could provide you the best services for your Data Analysis.
Are you confused with statistical Techniques like z-test, t-test, ANOVA, MANOVA, Regression, Logistic Regression, Chi-Square, Correlation, Association, SEM, multilevel model, mediation and moderation etc. for your Data Analysis...??
Then Contact Me. I will solve your Problem...
加油吧,打工人鹰溜!