使用二进制,非二进制变量的多元线性回归

时间:2019-06-03 03:08:53

标签: python pandas machine-learning scikit-learn

我希望就采用这种方法的最适当方法获得一些反馈。我有一个df,其中包含收入数据和各种相关变量。我希望确定哪些变量可以预测收入。尽管这些变量都是二进制和非二进制的

我将在下面显示一个示例df并讨论我的想法:

import pandas as pd

d = ({
    'Date' :    ['01/01/18','01/01/18','01/01/18','01/01/18','02/01/18','02/01/18','02/01/18','02/01/18'],
    'Country' :    ['US','US','US','MX','US','US','MX','MX'],
    'State' :    ['CA','AZ','FL','BC','CA','CA','BC','BC'],
    'Town' :    ['LA','PO','MI','TJ','LA','SF','EN','TJ'],    
    'Occurences' :    [1,5,3,4,2,5,10,2],   
    'Time Started' :    ['12:03:00 PM','02:17:00 AM','13:20:00 PM','01:25:00 AM','08:30:00 AM','12:31:00 AM','08:35:00 AM','02:45:00 AM'],    
    'Medium' :    [1,2,1,2,1,1,1,2],    
    'Revenue' :    [100000,40000,500000,8000,10000,300000,80000,1000],                  
 })

df = pd.DataFrame(data=d)

出局:

       Date Country State Town  Occurences     Time      Medium  Revenue
0  01/01/18      US    CA   LA           1  12:03:00 PM       1   100000
1  01/01/18      US    AZ   PO          10  02:17:00 AM       2    40000
2  01/01/18      US    FL   MI           3  13:20:00 PM       1   500000
3  01/01/18      MX    BC   TJ           4  01:25:00 AM       2     8000
4  02/01/18      US    CA   LA           2  08:30:00 AM       1    10000
5  02/01/18      US    CA   SF           5  12:31:00 AM       1   300000
6  02/01/18      MX    BC   EN          10  08:35:00 AM       1    80000
7  02/01/18      MX    BC   TJ           2  02:45:00 AM      2     1000

因此,影响收入的具体变量为MediumTime StartedOccurrences。我也有可以使用的位置组,例如CountryStateTown

多元线性回归在这里合适吗?我应该以某种方式标准化自变量吗? Medium将始终为12。但是我应该将Time StartedOccurrences分组吗?时间将落在20小时(8AM - 4AM)之间,而发生次数将落在1-10之间。是否应将这些变量分配给虚拟变量。

1 个答案:

答案 0 :(得分:1)

一些想法:您可以应用logit媒介转换,从所有“时间”值中减去最早的开始时间,然后将其转换为小时。然后standardize以某种方式对所有三个变量进行跟踪,并进行多元线性回归。

在进入这种复杂模型之前,您可以尝试针对收入和彼此绘制每个变量,并查看是否有有趣的模式。