第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

獲得警告:“'newdata'有1行但找到的變量有32行”在predict.lm上

獲得警告:“'newdata'有1行但找到的變量有32行”在predict.lm上

智慧大石 2019-08-13 16:51:13
獲得警告:“'newdata'有1行但找到的變量有32行”在predict.lm上我在R中使用預(yù)測和lm函數(shù)時(shí)發(fā)現(xiàn)了特性。我對相同數(shù)據(jù)的數(shù)據(jù)幀和向量得到了不同的結(jié)果。DataFrame代碼:data(mtcars)fitCar<-lm(mtcars$mpg~mtcars$wt)predict(fitCar,        data.frame(x=mean(mtcars$wt)),        interval="confidence")輸出:     fit       lwr      upr1  23.282611 21.988668 24.576552  21.919770 20.752751 23.086793  24.885952 23.383008 26.388904  20.102650 19.003004 21.202305  18.900144 17.771469 20.028826  18.793255 17.659216 19.927297  18.205363 17.034274 19.376458  20.236262 19.136179 21.336359  20.450041 19.347720 21.5523610 18.900144 17.771469 20.0288211 18.900144 17.771469 20.0288212 15.533127 14.064349 17.0019013 17.350247 16.104455 18.5960414 17.083024 15.809403 18.3566415  9.226650  6.658271 11.7950316  8.296712  5.547468 11.0459617  8.718926  6.052112 11.3857418 25.527289 23.927797 27.1267819 28.653805 26.519252 30.7883620 27.478021 25.554415 29.4016321 24.111004 22.715653 25.5063522 18.472586 17.319886 19.6252923 18.926866 17.799465 20.0542724 16.762355 15.452833 18.0718825 16.735633 15.423002 18.0482626 26.943574 25.112491 28.7746627 25.847957 24.198041 27.4978728 29.198941 26.963760 31.4341229 20.343151 19.242185 21.4441230 22.480940 21.268498 23.6933831 18.205363 17.034274 19.3764532 22.427495 21.219818 23.63517警告信息:'newdata'有1行,但找到的變量有32行當(dāng)我將兩個(gè)數(shù)據(jù)分成向量時(shí),我得到了不同的答案矢量代碼predict(fit,data.frame(x=mean(x)), interval="confidence")輸出:    fit   lwr   upr1 20.09 18.99 21.19造成這種差異的原因是什么?
查看完整描述

3 回答

?
素胚勾勒不出你

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是在您data和您之間使用不同名稱的問題,newdata而不是使用向量或數(shù)據(jù)幀之間的問題。


當(dāng)您使用該lm函數(shù)擬合模型然后用于predict進(jìn)行預(yù)測時(shí),predict嘗試在您的上查找相同的名稱newdata。在您的第一個(gè)案例名稱x沖突,mtcars$wt因此您得到警告。


在這里看到我說的一個(gè)例子:


這是你做的,沒有得到錯(cuò)誤:


a <- mtcars$mpg

x <- mtcars$wt


#here you use x as a name

fitCar <- lm(a ~ x) 

#here you use x again as a name in newdata.

predict(fitCar, data.frame(x = mean(x)), interval = "confidence") 


       fit      lwr      upr

1 20.09062 18.99098 21.19027

在這種情況下,您可以使用名稱x來擬合模型,并使用您的名稱x進(jìn)行預(yù)測newdata。這樣你就不會(huì)得到任何警告,而這正是你所期望的。


讓我們看看當(dāng)我適應(yīng)模型時(shí)將名稱更改為其他內(nèi)容時(shí)會(huì)發(fā)生什么:


a <- mtcars$mpg

#name it b this time

b <- mtcars$wt 


fitCar <- lm(a ~ b) 

#here I am using name x as previously

predict(fitCar, data.frame(x = mean(x)), interval = "confidence") 


         fit       lwr      upr

1  23.282611 21.988668 24.57655

2  21.919770 20.752751 23.08679

3  24.885952 23.383008 26.38890

4  20.102650 19.003004 21.20230

5  18.900144 17.771469 20.02882

Warning message:

'newdata' had 1 row but variables found have 32 rows 

我現(xiàn)在做的唯一的事情就是更改名稱x擬合模型的時(shí)候b,然后預(yù)測使用該名稱x的newdata。正如您所看到的,我遇到了與您的問題相同的錯(cuò)誤。


希望現(xiàn)在很清楚!


查看完整回答
反對 回復(fù) 2019-08-13
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

在lm函數(shù)的公式中,不要使用datasetname $ variablename模式引用變量。而是使用variablename + variablename ...這不會(huì)拋出警告:'newdata'有nrow(測試)行,但找到的變量有nrow(train)行。


查看完整回答
反對 回復(fù) 2019-08-13
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

解決這個(gè)問題的方法是使用以下方法:

fitCar<-lm(mpg ~ wt, mtcars) #here you use x as a namepredict(fitCar,data.frame(wt=mean(mtcars$wt)), interval="confidence")


查看完整回答
反對 回復(fù) 2019-08-13
  • 3 回答
  • 0 關(guān)注
  • 1937 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號