This is an R Markdown
Notebook. When you execute code within the notebook, the results appear
beneath the code.
Try executing this chunk by clicking the Run button within
the chunk or by placing your cursor inside it and pressing
Cmd+Shift+Enter.


#There isn't a clear trend in the linear regression plot as some plots lie in the margin. However, there should be some correlation in the dense area as the slope indicates.
install.packages("car")
Error in install.packages : Updating loaded packages
library(car)
model <- lm(winrate~salarycap+cap_space, data=df)
vif(model)
salarycap cap_space
1.958113 1.958113
#The VIF value is greater than 1.5 which indicates multicollinearity, and so we need to perform multi-linear regression

cust_value_model=lm(formula=winrate~salarycap+cap_space, data=df)
multi_model=cust_value_model$residuals
hist(multi_model)
# Plot the residuals
qqnorm(multi_model)
# Plot the Q-Q line
qqline(multi_model)

# Residual error difference between different models
sqrt(deviance(model)/df.residual(model))
[1] 0.1996184
# Insights from R-squared error
summary(model)$r.squared
[1] 0.03362047
#Discuss
#Win rate is significant because that's what sports is about; this model fit is a linear model as we use it to predict the value of an unknown variable based on independent variables; Residual error difference between different models is almost 0 which implies that the independent variables do a good job of predicting the dependent variable and most of the predictions are very close to the actual values of the dependent variables;the R-squared error is around 3% which reveals that 3% of the variability observed in the target variable is explained by the regression model.
#I will choose linear regression model as final model because my initial purpose is to find the relationship between variables
wine <- read.csv("/Users/lichuqiao/Desktop/INF0310/salary_cap.csv")
dt = sort(sample(nrow(wine), nrow(wine)*.8))
train<-wine[dt,]
test<-data[-dt,]
print(train)
print(test)


newdata = data.frame(salarycap=220000000,cap_space=9000000)
predict(model,newdata)
1
0.5014351
newmodel <- lm(winrate~salarycap+cap_space, data=test)
summary(newmodel)
Call:
lm(formula = winrate ~ salarycap + cap_space, data = test)
Residuals:
Min 1Q Median 3Q Max
-0.39339 -0.11502 -0.03239 0.14493 0.44503
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.170612 1.694209 1.281 0.21
salarycap -0.007447 0.007517 -0.991 0.33
cap_space -0.003422 0.005953 -0.575 0.57
Residual standard error: 0.1996 on 29 degrees of freedom
Multiple R-squared: 0.03362, Adjusted R-squared: -0.03303
F-statistic: 0.5045 on 2 and 29 DF, p-value: 0.609
#Interpret
#I think the model appear to be overfitting the data because it performs well on the training data butpoorly on test data
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gCgpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ21kK1NoaWZ0K0VudGVyKi4gCgpgYGB7cn0KIyB3aW5fcmF0ZSh5KSB2cyBzYWxhcnlfY2FwKHgpCiMgd2luX3JhdGUoeSkgdnMgY2FwX3NwYWNlKHgpCgpzYWxhcnljYXA9YygyMzIuODYyOTY3LDIzMS42Njg5NTEsMjMwLjg4MDUxMywyMjguNTczOTU0LDIyNS4wOTIxOTQsMjI0LjA5MTg0NiwKICAgICAgICAgICAgIDIyMy45ODkwOTIsMjIzLjUzNzQ1NCwyMjIuNzg5NTg1LDIyMi41NzIyNTgsMjIyLjI5NTg3OCwyMjEuNTg4NjIxLAogICAgICAgICAgICAgMjIxLjQwMTExMCwyMjEuMjY0MjE2LDIyMC45MDI3NDYsMjIwLjU0ODk2NywyMjAuNDU4MjkwLDIyMC4zMjYwNjQsCiAgICAgICAgICAgICAyMTkuNjY1MjQxLDIxOS41MDY0MTUsMjE5LjUwMTQ5NCwyMTkuMzUxNjUwLDIxNy4xODgzODYsMjE2LjY0ODI3MywKICAgICAgICAgICAgIDIxNi4xMTg3ODAsMjE1Ljc1NjM0NywyMTUuNTMxODA0LDIxNC40NDgzODcsMjEzLjg0NTg3MCwyMTMuNjU0ODc0LAogICAgICAgICAgICAgMjExLjIxMjQxMSwxOTYuOTcwNzEyKQpjYXBfc3BhY2U9YygxLjg5MDcwMywxLjIzNDkwMCw3LjI3MTQxOSwzLjg2NDkwMiw0LjEzNDk1MSwxMC45MDk0MjIsNy40MzA5ODMsCiAgICAgICAgICAgIDQuMzA3NTY5LDQuNjQzMjI4LDQuNjM3NDQ0LDkuODc2NDk3LDQuMTIyOTc0LDguMjE5NDQzLDExLjYzOTYzNSwKICAgICAgICAgICAgOS40NjY5MjEsNS45NzE5OTcsOC4xMjI0MjAsMy44MzUxMDMsMi43MTUwMDcsNy4yMjA5MDIsMTEuMzk3NTQwLAogICAgICAgICAgICA3LjQzMTA3MCw3LjY3OTkyNiw2Ljk2MzYxMiw0LjMyOTAxMywzNi4wMTU0ODcsMTMuNzY3NzM3LDE2LjgwMzUxMywKICAgICAgICAgICAgNy43Mzg2NzIsMTIuNzYyODY2LDEwLjQ4NDU5Miw0MC41NDk1NTYpCndpbnJhdGU9YygwLjg3NSwwLjM3NSwwLjE0MywwLjI1MCwwLjU3MSwwLjM3NSwwLjQyOSwwLjYyNSwwLjQyOSwwLjc1MCwwLjM3NSwKICAgICAgICAgICAwLjc1MCwwLjI1MCwwLjcxNCwwLjUwMCwwLjQyOSwwLjU3MSwwLjUwMCwwLjI1MCwwLjc1MCwwLjQyOSwwLjI4NiwKICAgICAgICAgICAwLjM3NSwwLjc1MCwwLjc1MCwwLjU3MSwwLjEyNSwwLjM3NSwwLjU3MSwwLjcxNCwwLjUwMCwwLjYyNSkKcGxvdChzYWxhcnljYXAsd2lucmF0ZSx4bGFiID0gJ3NhbGFyeWNhcChtaWxsaW9uKScpCnBsb3QoY2FwX3NwYWNlLHdpbnJhdGUseGxhYiA9ICdjYXBfc3BhY2UobWlsbGlvbiknKQpgYGAKCmBgYHtyfQojVGhlcmUgaXNuJ3QgYSBjbGVhciB0cmVuZCBpbiB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gcGxvdCBhcyBzb21lIHBsb3RzIGxpZSBpbiB0aGUgbWFyZ2luLiBIb3dldmVyLCB0aGVyZSBzaG91bGQgYmUgc29tZSBjb3JyZWxhdGlvbiBpbiB0aGUgZGVuc2UgYXJlYSBhcyB0aGUgc2xvcGUgaW5kaWNhdGVzLgpgYGAKCmBgYHtyfQojIGNoZWNrIHRoZSBjb2xsaW5lYXJpdHkgCmluc3RhbGwucGFja2FnZXMoImNhciIpCmxpYnJhcnkoY2FyKQptb2RlbCA8LSBsbSh3aW5yYXRlfnNhbGFyeWNhcCtjYXBfc3BhY2UsIGRhdGE9ZGYpCnZpZihtb2RlbCkKYGBgCgpgYGB7cn0KI1RoZSBWSUYgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIDEuNSB3aGljaCBpbmRpY2F0ZXMgbXVsdGljb2xsaW5lYXJpdHksIGFuZCBzbyB3ZSBuZWVkIHRvIHBlcmZvcm0gbXVsdGktbGluZWFyIHJlZ3Jlc3Npb24KYGBgCgpgYGB7cn0KY3VzdF92YWx1ZV9tb2RlbD1sbShmb3JtdWxhPXdpbnJhdGV+c2FsYXJ5Y2FwK2NhcF9zcGFjZSwgZGF0YT1kZikKbXVsdGlfbW9kZWw9Y3VzdF92YWx1ZV9tb2RlbCRyZXNpZHVhbHMKaGlzdChtdWx0aV9tb2RlbCkKIyBQbG90IHRoZSByZXNpZHVhbHMKcXFub3JtKG11bHRpX21vZGVsKQojIFBsb3QgdGhlIFEtUSBsaW5lCnFxbGluZShtdWx0aV9tb2RlbCkKIyBSZXNpZHVhbCBlcnJvciBkaWZmZXJlbmNlIGJldHdlZW4gZGlmZmVyZW50IG1vZGVscwpzcXJ0KGRldmlhbmNlKG1vZGVsKS9kZi5yZXNpZHVhbChtb2RlbCkpCiMgSW5zaWdodHMgZnJvbSBSLXNxdWFyZWQgZXJyb3IKc3VtbWFyeShtb2RlbCkkci5zcXVhcmVkIApgYGAKCmBgYHtyfQojRGlzY3VzcwojV2luIHJhdGUgaXMgc2lnbmlmaWNhbnQgYmVjYXVzZSB0aGF0J3Mgd2hhdCBzcG9ydHMgaXMgYWJvdXQ7IHRoaXMgbW9kZWwgZml0IGlzIGEgbGluZWFyIG1vZGVsIGFzIHdlIHVzZSBpdCB0byBwcmVkaWN0IHRoZSB2YWx1ZSBvZiBhbiB1bmtub3duIHZhcmlhYmxlIGJhc2VkIG9uIGluZGVwZW5kZW50IHZhcmlhYmxlczsgIFJlc2lkdWFsIGVycm9yIGRpZmZlcmVuY2UgYmV0d2VlbiBkaWZmZXJlbnQgbW9kZWxzIGlzIGFsbW9zdCAwIHdoaWNoIGltcGxpZXMgdGhhdCB0aGUgaW5kZXBlbmRlbnQgdmFyaWFibGVzIGRvIGEgZ29vZCBqb2Igb2YgcHJlZGljdGluZyB0aGUgZGVwZW5kZW50IHZhcmlhYmxlIGFuZCBtb3N0IG9mIHRoZSBwcmVkaWN0aW9ucyBhcmUgdmVyeSBjbG9zZSB0byB0aGUgYWN0dWFsIHZhbHVlcyBvZiB0aGUgZGVwZW5kZW50IHZhcmlhYmxlczt0aGUgUi1zcXVhcmVkIGVycm9yIGlzIGFyb3VuZCAzJSB3aGljaCByZXZlYWxzIHRoYXQgMyUgb2YgdGhlIHZhcmlhYmlsaXR5IG9ic2VydmVkIGluIHRoZSB0YXJnZXQgdmFyaWFibGUgaXMgZXhwbGFpbmVkIGJ5IHRoZSByZWdyZXNzaW9uIG1vZGVsLgojSSB3aWxsIGNob29zZSBsaW5lYXIgcmVncmVzc2lvbiBtb2RlbCBhcyBmaW5hbCBtb2RlbCBiZWNhdXNlIG15IGluaXRpYWwgcHVycG9zZSBpcyB0byBmaW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB2YXJpYWJsZXMKYGBgCgpgYGB7cn0KI1NwbGl0IHRoZSBkYXRhc2V0CndpbmUgPC0gcmVhZC5jc3YoIi9Vc2Vycy9saWNodXFpYW8vRGVza3RvcC9JTkYwMzEwL3NhbGFyeV9jYXAuY3N2IikKZHQgPSBzb3J0KHNhbXBsZShucm93KHdpbmUpLCBucm93KHdpbmUpKi44KSkKdHJhaW48LXdpbmVbZHQsXQp0ZXN0PC1kYXRhWy1kdCxdCnByaW50KHRyYWluKQpwcmludCh0ZXN0KQpgYGAKCgpgYGB7cn0KIyBTZXQgdXAgMiB4IG4gcGxvdHRpbmcgZ3JpZApuIDwtIG5jb2wodHJhaW4pCnBhcihtZnJvdyA9IGMoMiwgY2VpbGluZyhuLzIpKSkKIyBDcmVhdGUgaGlzdG9ncmFtcyBvZiBhbGwgY29sdW1ucwpmb3IgKGkgaW4gMTpuKSB7CiAgaGlzdCh0cmFpblssIGldLCBtYWluID0gY29sbmFtZXModHJhaW4pW2ldLCB4bGFiID0gIiIsIGNvbCA9ICJza3libHVlIikKfQpgYGAKCgpgYGB7cn0KIyBTZXQgdXAgMiB4IG4gcGxvdHRpbmcgZ3JpZApuIDwtIG5jb2wodHJhaW4pCnBhcihtZnJvdyA9IGMoMiwgY2VpbGluZyhuLzIpKSkKIyBDcmVhdGUgYm94cGxvdHMgb2YgYWxsIGNvbHVtbnMKZm9yIChpIGluIDE6bikgewogIGJveHBsb3QodHJhaW5bLCBpXSwgbWFpbiA9IGNvbG5hbWVzKHRyYWluKVtpXSwgY29sID0gInNreWJsdWUiKQp9CmBgYAoKYGBge3J9CiMgR2VuZXJhdGUgcHJlZGljdGlvbnMgb24gdGVzdCBkYXRhCm5ld2RhdGEgPSBkYXRhLmZyYW1lKHNhbGFyeWNhcD0yMjAwMDAwMDAsY2FwX3NwYWNlPTkwMDAwMDApCnByZWRpY3QobW9kZWwsbmV3ZGF0YSkKYGBgCmBgYHtyfQojQ29tcHV0aW5nIFJTRSZSLXNxdWFyZWQKbmV3bW9kZWwgPC0gbG0od2lucmF0ZX5zYWxhcnljYXArY2FwX3NwYWNlLCBkYXRhPXRlc3QpCnN1bW1hcnkobmV3bW9kZWwpCmBgYApgYGB7cn0KI0ludGVycHJldAojSSB0aGluayB0aGUgbW9kZWwgYXBwZWFyIHRvIGJlIG92ZXJmaXR0aW5nIHRoZSBkYXRhIGJlY2F1c2UgaXQgcGVyZm9ybXMgd2VsbCBvbiB0aGUgdHJhaW5pbmcgZGF0YSBidXRwb29ybHkgb24gdGVzdCBkYXRhCmBgYAoK