首页 家电百科 实时讯息 常识
您的位置: 首页 > 常识 >

相关系数怎么算(C++编程:高中数学_相关系数_计算)

相关关系的定义:

高中数学中,成对数据的统计分析是选修三的最后一章。在非函数关系的两个量中,一个量的变化,与另一个量有一定关系,但是还受到其他因素的影响,比如孩子身高与父母身高, 二者有一定关系,但是又不是精确决定的关系,这种关系称为相关关系(correlation)

正相关和负相关:如果一个变量增加时,另一个变量也增加,这两个变量称为正相关,反之则称为负相关。

样本相关系数(correlation coefficient)计算公式:

图1 样本相关系数的计算公式

如何用C++编程来计算相关系数?

假设样本数据保存在一个文件中(第一列为航班准点率,第二列为投诉量):

图2 样本数据

C++代码如下:

void correlationCoefficient();

//保存数据对的结构体
struct PointF
{
    float x;
    float y;
};

int main()
{
    correlationCoefficient();
    return 0;
}

/* --从文本文件中,逐行读出文本数据"x  y",
 * 并分割两个浮点型数据float x, flaot y,
 * 计算二者的相关系数(correlation coefficient)
 */
void correlationCoefficient()
{
    const int nPoints = 10; //数据对的个数

    ifstream inData;      //创建读取文件的流对象inData
    PointF points[nPoints];  //保存读取数据对的数组

    inData.open("XX3_CH8_P104_2.txt");   //打开文本文件

    if(!inData)  //打开文件失败
    {
        cout<<"Error: could not open file."<<endl;
        exit(1);
    }else cout<<"File opened."<<endl;  //打开文件


    string line;
    int i = 0;

    cout<<"Data pairs read from file:"  << endl;
    while(std::getline(inData, line)) //逐行读取文件内容
    {
       cout << line << endl;
       //sscanf()的第一个参数是要分割的字符串,第二个参数是格式化,后面的参数是分割之后的变量的地址
       //strtok () C语言的分割字符串函数
        sscanf(line.c_str(), "%f %f", &(points[i].x), &(points[i].y));
        i++;
    }


    cout<<"Data pairs stored in array points[" << nPoints <<"]:" << endl;
    for(int k = 0; k<nPoints; k++)
    {
        cout << points[k].x <<"  "<<points[k].y << endl;
    }

    //计算x的平均数,y的平均数。
    float averageX = 0;
    float averageY = 0;
    float sumX = 0;
    float sumY = 0;

    for(int i = 0; i<nPoints; i++)
    {
        sumX += points[i].x ;
        sumY += points[i].y ;
    }
    averageX = sumX/nPoints;
    averageY = sumY/nPoints;

    //
    float Lxy = 0;  //反映x和y相关程度的量Lxy
    float Sx = 0;   // Sx/nPoints 为x的方差
    float Sy = 0;   // Sy/nPoints 为y的方差
    for(int i = 0; i < nPoints; i++)
    {
        Lxy += (points[i].x - averageX)*(points[i].y - averageY);
        Sx += pow(points[i].x - averageX,2);
        Sy += pow(points[i].y - averageY,2);
    }

    Sx = sqrt(Sx);
    Sy = sqrt(Sy);

    float correlation = Lxy/(Sx*Sy);

    cout<<"correlation = " << correlation << endl;
    inData.close();  //关闭数据文件
}

程序输出:

图3 程序输出:从样本数据文件中读取数据并计算相关系数

USATON锅炉售后服务号码及其服务网点介绍实时反馈全+境+到+达

2025-06-21 09:16:56
USATON锅炉的售后维修电话是:400-883-2086。USATON锅炉作为智能家居市场的佼佼者,以其先进的技术和优质的产品赢得了广大消费者的青睐。再优质的产品也难免会在使用过程中出现一些问题,因此售后服务的质量就显得尤为重要。为了保障用户的使用体验,USATON锅炉提供了专业的售后维修服务,其

前5月广东规上工业增加值同比增长3.5%

2025-06-21 08:09:00
南方日报讯 (记者/黄叙浩)6月20日,省统计局发布前5月广东经济运行简况。随着各项宏观政策持续落地见效,全省经济运行总体平稳。工业生产保持稳定增长,1—5月全省规上工业增加值同比增长3.5%,制造业增长4.0%。民用无人机、工业机器人、新能源汽车产品等高技术产品产量继续保持两位数的较好增势。值得关

太太乐集成灶24小时全国售后热线实时反馈全+境+到+达

2025-06-21 08:08:50
太太乐集成灶24小时售后服务电话号码:400-883-2086太太乐集成灶不仅技术维修力量雄厚、维修面广、设备先进、有较为丰富的管理经验,而且特别注重质量、意识等方面的培训和承诺。首先在意识的培训方面,我们教育员工要高度树立“让每一次都能使客户满意”的宗旨,要求员工做到用语文明、着装统一、实事求

清大博士太阳能售后服务号码24小时实时反馈全+境+到+达

2025-06-21 07:46:48
清大博士太阳能售后服务电话:400-883-2086(以产品说明书或保修卡电话为准) 随着生活水平的提高,人们对洗衣机的要求也越来越高。作为一家享有盛誉的家电品牌,清大博士太阳能为广大用户带来了切实可靠的产品,以其先进的技术和卓越的品质而备受赞誉。然而,就算再好的产品,也难免会出现一些故障或

卡迪燃气灶全国24小时服务热线400统一客服服务热线

2025-06-21 06:01:00
尊敬的用户,感谢您选择卡迪燃气灶。在您使用过程中,如遇到问题,请随时联系我们。售后服务热线:400-883-2086(参考使用说明书),我们将24小时为您提供服务。以下为卡迪燃气灶常见故障及维修方法,希望能为您提供帮助。卡迪燃气灶全国24小时服务热线400统一客服服务热线日常使用故障及处理方