【问题标题】:Find the F-statistic value for ANOVA first linear model查找 ANOVA 第一线性模型的 F 统计值
【发布时间】:2018-12-08 04:28:48
【问题描述】:

我正在查看有关 python 主题的统计信息。我一只手就被击中了。

问题陈述:

对使用 mtcars 数据集时获得的第一个线性模型执行 ANOVA。 显示 F 统计值

我为问题陈述做了什么:

import statsmodels.api as sm    
import statsmodels.formula.api as smf    
from statsmodels.stats import anova

mtcars_data = sm.datasets.get_rdataset("mtcars").data    
print(mtcars_data.columns)

mt_model1 = smf.ols('mpg ~ cyl', mtcars_data ).fit()    
print(anova.anova_lm(mt_model1))

如何显示上述问题的 F 统计量?

【问题讨论】:

  • 如果只是文本,请不要发布输出的屏幕截图。将输出文本键入/复制到问题中。

标签: python python-3.x machine-learning statistics statsmodels


【解决方案1】:

因此,如果您想从 cyl 属性的 anova 表中获取 F Statistic 值,则类似这样

print(anova.anova_lm(mt_model1).F["cyl"])

【讨论】:

  • 我已经尝试过你的代码,即使测试用例对于问题陈述失败
【解决方案2】:

由于您已经在 mt_model1 中使用所需变量拟合了模型,因此您可以直接调用 F-statistic,

print(mt_model1.fvalue)

当您的模型中有多个预测变量时,也可以使用此方法。

【讨论】:

  • 我已经尝试了上面的行,但问题的测试用例仍然失败
  • 当您询问一种显示 F 统计量的方法时,无法清除问题。但是,如果您需要运行比输出更详细的 ANOVA,您可以尝试 print(mt_model1.summary())
  • 问题陈述是对使用 mtcars 数据集时获得的第一个线性模型执行 ANOVA 并显示 F 统计值。 'mtcars'是一个数据集,使用该数据集生成方差分析模型并显示F-statistic值。
【解决方案3】:

经过多次试验得到了这个。

    import statsmodels.api as sm
    from statsmodels.formula.api import ols

    mtcars = sm.datasets.get_rdataset('mtcars').data

    lm = ols('mpg ~ wt', mtcars).fit()
    av = sm.stats.anova_lm(lm,type=2)
    print(av.F.wt)

【讨论】:

    【解决方案4】:

    请在下面找到对我有用的代码,我通过了handon。 我认为他们只要求提供 wt 变量的 F-statics 值,最后一个 print 语句在输出文件中给出。

    #Write your code here
    import statsmodels.api as sm
    import statsmodels.formula.api as smf
    from statsmodels.stats import anova
    
    mtcars_data = sm.datasets.get_rdataset("mtcars").data
    #mt_model1 = smf.ols('mpg ~ cyl', mtcars_data ).fit()
    
    #print(mt_model1.fvalue)
    
    lm = smf.ols('mpg ~ wt', mtcars_data).fit()
    av = sm.stats.anova_lm(lm)
    print(av.F.wt)
    

    【讨论】:

      【解决方案5】:

      如果您正在寻找基于对数值的模型拟合,除上述之外, 您需要使用 Log 和以下代码来拟合模型。

      import statsmodels.api as sm
      import statsmodels.formula.api as smf
      from statsmodels.stats import anova
      import numpy as np
      
      mtcars_data = sm.datasets.get_rdataset("mtcars").data
      #mt_model1 = smf.ols('mpg ~ cyl', mtcars_data ).fit()
      
      #print(mt_model1.fvalue)
      
      lm = smf.ols('np.log(mpg) ~ np.log(wt)', mtcars_data).fit()
      av = sm.stats.anova_lm(lm)
      print(av.F['np.log(wt)'])
      

      【讨论】:

        猜你喜欢
        • 2016-10-19
        • 2012-09-17
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多