Regression linear mudah ialah kaedah statistik yang digunakan untuk mengkaji hubungan antara dua pembolehubah selanjar. Antaranya, satu pembolehubah dipanggil pembolehubah bebas (x) dan pembolehubah lain dipanggil pembolehubah bersandar (y). Kami menganggap bahawa terdapat hubungan linear antara kedua-dua pembolehubah ini dan cuba mencari fungsi linear yang meramalkan nilai tindak balas (y) pembolehubah bersandar dengan tepat berdasarkan ciri-ciri pembolehubah bebas. Dengan memasang garis lurus, kita boleh mendapatkan keputusan yang diramalkan. Model ramalan ini boleh digunakan untuk memahami dan meramalkan bagaimana pembolehubah bersandar berubah apabila pembolehubah bebas berubah.
Untuk memahami konsep ini, kita boleh menggunakan set data gaji, yang mengandungi nilai pembolehubah bersandar (gaji) sepadan dengan setiap pembolehubah bebas (tahun pengalaman).
Gaji dan Pengalaman Tahunan
1.1 39343.00
1.3 46205.00
1.5 37731.00
2.5.00 39891.0 02.9 56642.003.0 60150.003.2 54445.003.2 64445.007. 57189.00
Untuk tujuan umum, kami mentakrifkan:
x sebagai vektor ciri, iaitu x=[x_1,x_2,....,x_n],
y sebagai vektor tindak balas, iaitu y=[y_1,y_2, .. ..,y_n]
untuk n pemerhatian (dalam contoh di atas, n=10).
Plot serakan set data yang diberikan
Sekarang, kita perlu mencari garisan yang sesuai dengan plot serakan di atas yang melaluinya kita boleh meramalkan tindak balas untuk sebarang nilai y atau untuk sebarang nilai x.Garis yang paling sesuai dipanggil garis regresi.
Kod R berikut digunakan untuk melaksanakan regresi linear mudah
dataset=read.csv('salary.csv') install.packages('caTools') library(caTools) split=sample.split(dataset$Salary,SplitRatio=0.7) trainingset=subset(dataset,split==TRUE) testset=subset(dataset,split==FALSE) lm.r=lm(formula=Salary~YearsExperience, data=trainingset) coef(lm.r) ypred=predict(lm.r,newdata=testset) install.packages("ggplot2") library(ggplot2) ggplot()+geom_point(aes(x=trainingset$YearsExperience, y=trainingset$Salary),colour='red')+ geom_line(aes(x=trainingset$YearsExperience, y=predict(lm.r,newdata=trainingset)),colour='blue')+ ggtitle('Salary vs Experience(Training set)')+ xlab('Years of experience')+ ylab('Salary') ggplot()+ geom_point(aes(x=testset$YearsExperience,y=testset$Salary), colour='red')+ geom_line(aes(x=trainingset$YearsExperience, y=predict(lm.r,newdata=trainingset)), colour='blue')+ ggtitle('Salary vs Experience(Test set)')+ xlab('Years of experience')+ ylab('Salary')
Visualkan keputusan set latihan
Atas ialah kandungan terperinci Laksanakan kaedah regresi linear mudah dalam R dan terangkan konsepnya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!